ESP, IoT WiFi лампа-будильник. Обсуждение прошивки от GUNNER47

ЗДЕСЬ ОБСУЖДАЕМ ТОЛЬКО ДАННУЮ ПРОШИВКУ
ВСЕ ЧТО НЕ ПО СИЯ ТЕМЕ И ПРОШИВКЕ, ВСЕ СНОСИТСЯ НА@@@!

Очень просим не делать репост "ЦИТИРОВАНИЕ" сообщений! Делать только в КРАЙНЕЙ необходимости, удаляя лишний текст (у нас не ЧАТ)!
Иначе опять будет 160 страниц и 0 пользы ....

Для ответа КОНКРЕТНОМУ пользователю, достаточно нажать " ОТВЕТ"

При описании проблемы обязательно, как можно подробнее, описывайте ход своих действий до ее возникновения. Телепатов (как я думаю) среди участников нет. Потом 20 постов будет только для того, чтобы Вас понять.
Если Вы считаете ваше сообщение важным и его нужно поднять в шапку, пишите мне в личку с пометкой "Сообщение в шапку"


ПО ВОПРОСАМ РАБОТЫ ПРИЛОЖЕНИЯ ОТ KOTEYKA ИДЕМ В ЭТУ ТЕМУ

Голосовое управление лампой Гайвера, через Яндекс Алису (прошивка Gunner47).

Яндекс диск Файл ПДФ. Актуально на 27.01.2020г
наш сервер НЕ ОБНОВЛЯЕТСЯ, от 27.01.2020г
Прошивка gunner47 v.2 "86 эффектов в 1" или уже больше - разработку ведет @Сотнег
Прошивка gunner47 v.2.X_web : веб-интерфейс (без необходимости перепрошивки) - разработку ведет @alvikskor
Прошивка от Shaitan с поддержкой mp3 и пульта (тут не обсуждается. Обсуждается в теме прошивки)
Прошивка FireLamp with Remote Control - разработку ведет @SlingMaster

Для тех у кого умный дом Home Assistant есть отличный компонент

ВНИМАНИЕ! Если у вас не компилируется или не загружается скетч - значит вы сделали что-то неправильно. Специально для вас созданы две темы:
ESP8266, проблема с компиляцией скетча
ESP8266, проблема с загрузкой скетча
Читайте (ЧИТАЙТЕ! Не пишите!) эти темы, там уже есть решение вашей проблемы.
Здесь подобные вопросы считаются оффтопом и молча удаляются, а авторы получают баллы нарушений.
 
Изменено:

Комментарии

mechanic

★★★★✩✩✩
Команда форума
31 Июл 2018
403
206
ЗДЕСЬ ОБСУЖДАЕМ ТОЛЬКО ДАННУЮ ПРОШИВКУ
ВСЕ ЧТО НЕ ПО СИЯ ТЕМЕ И ПРОШИВКЕ, ВСЕ СНОСИТСЯ НА@@@!

Очень просим не делать репост "ЦИТИРОВАНИЕ" сообщений! Делать только в КРАЙНЕЙ необходимости, удаляя лишний текст (у нас не ЧАТ)!
Иначе опять будет 160 страниц и 0 пользы ....

Для ответа КОНКРЕТНОМУ пользователю, достаточно нажать " ОТВЕТ"

При описании проблемы обязательно, как можно подробнее, описывайте ход своих действий до ее возникновения. Телепатов (как я думаю) среди участников нет. Потом 20 постов будет только для того, чтобы Вас понять.
Если Вы считаете ваше сообщение важным и его нужно поднять в шапку, пишите мне в личку с пометкой "Сообщение в шапку"


ПО ВОПРОСАМ РАБОТЫ ПРИЛОЖЕНИЯ ОТ KOTEYKA ИДЕМ В ЭТУ ТЕМУ

Голосовое управление лампой Гайвера, через Яндекс Алису (прошивка Gunner47).

Яндекс диск Файл ПДФ. Актуально на 27.01.2020г
наш сервер НЕ ОБНОВЛЯЕТСЯ, от 27.01.2020г
Прошивка gunner47 v.2 "86 эффектов в 1" или уже больше - разработку ведет @Сотнег
Прошивка gunner47 v.2.X_web : веб-интерфейс (без необходимости перепрошивки) - разработку ведет @alvikskor
Прошивка от Shaitan с поддержкой mp3 и пульта (тут не обсуждается. Обсуждается в теме прошивки)
Прошивка FireLamp with Remote Control - разработку ведет @SlingMaster

Для тех у кого умный дом Home Assistant есть отличный компонент

ВНИМАНИЕ! Если у вас не компилируется или не загружается скетч - значит вы сделали что-то неправильно. Специально для вас созданы две темы:
ESP8266, проблема с компиляцией скетча
ESP8266, проблема с загрузкой скетча
Читайте (ЧИТАЙТЕ! Не пишите!) эти темы, там уже есть решение вашей проблемы.
Здесь подобные вопросы считаются оффтопом и молча удаляются, а авторы получают баллы нарушений.
 
Изменено:

Сотнег

★★★★★★★
15 Янв 2020
4,339
1,492
но возьмитесь наконец и за удобство управления. С этим что-то нужно делать. Однокнопочный режим себя изжил ещё на оригинальной прошивке,
@Koteyka 🐱 сделал удобство управления.
Кнопка - для вкл и выкл. Такая концепция.
 

Сотнег

★★★★★★★
15 Янв 2020
4,339
1,492
На видео выглядит так впечатляюще, что я ещё раз перепроверил у себя на лампе.
Замедлил и даже перевернул.

Не помогло.
Не знаю, почему, но смотрится это очень убого на медленной скорости.
Возможно, причина в размере нашей матрицы.
Так что всё-таки Вихри!


Кстати, почти полный показ всех эффектов в проекте Аврора:
Остальные по-отдельности тоже у автора на канале лежат.
 
Изменено:

EGORka

★✩✩✩✩✩✩
15 Мар 2020
87
37
@Сотнег, поставил прошивку , повтыкал в эффекты. Разнообразие это хорошо, вот несколько мыслей появилось некомпетентных:
Заметил три одинаковых эффекта, отличающихся только оттенками цвета, все остальное почти одинаковое - Плазма , Безумие и Радуга. Отличаются они тем , что в плазме преобладают теплые цвета, в безумии - холодные, а радуга всех цветов.Понятно, что все идет от родоначальной прошивки, но может обозвать три эффекта Плазмой, первая Плазма горячая, вторая Плазма холодная , третья Плазма цветная ну или RGB.
Пульс. Есть медленный и быстрый, хотя скоростью их регулировать можно и так и эдак, а отличаются тем, что в первом цвета меняются по спектру красный-желтый-зеленый-синий-фиолетовый. А во втором хаотично. Быстрый и медленный - обозначения для различия таких эффектов малоинформативно.
Комета 2 и комета 3. Возможно ли количество комет менять масштабом, все равно этот параметр не используется, но цвет чтоб был у комет разный, а эффект будет 1- типа "кометЫ".
Парящий огонь, верховой огонь . Возможно ли положение полоски огня менять параметром масштаб ? Он тоже не используется в этом эффекте.
Понятно что большое количество эффектов писалось под автоперебор и плазмы с пульсами можно самому переименовать, если найти книжку - "переименование эффектов для чайников" Но вот с Кометами и Огнем -это теоретически реально ? :)
 

Сотнег

★★★★★★★
15 Янв 2020
4,339
1,492
Заметил три одинаковых эффекта, отличающихся только оттенками цвета, все остальное почти одинаковое - Плазма , Безумие и Радуга. Отличаются они тем , что в плазме преобладают теплые цвета, в безумии - холодные, а радуга всех цветов.Понятно, что все идет от родоначальной прошивки, но может обозвать три эффекта Плазмой, первая Плазма горячая, вторая Плазма холодная , третья Плазма цветная ну или RGB.
Названия оригинальных (изначальных) эффектов проекта я считаю нужным оставить.


можно самому переименовать, если найти книжку - "переименование эффектов для чайников"
Можно только в "Реестре" менять названия.
Они в приложение передаются. Остальные упоминания - это комментарии для программистов.


Есть медленный и быстрый, хотя скоростью их регулировать можно и так и эдак, а отличаются тем, что в первом цвета меняются по спектру красный-желтый-зеленый-синий-фиолетовый. А во втором хаотично.
Ну вот такой я фантазёр.
Это был мой лучший вариант для названий.


Комета 2 и комета 3. Возможно ли количество комет менять масштабом, все равно этот параметр не используется
В данной версии прошивки нет цели сворачивать несколько эффектов в один, чтобы потом выбирать их Масштабом.
Идея в том, чтобы один раз настроил, и забыл.


Парящий огонь, верховой огонь . Возможно ли положение полоски огня менять параметром масштаб ?
Парящий языки пламени извергает и вверх и вниз,
Верховой только вниз.
Регулировку положения в теории сделать можно, но смысла не вижу.

update:
Сделаю им регулировку длины "языков пламени". Смотрится неплохо.
 
Изменено:
  • Лойс +1
Реакции: Belokota и EGORka

Сотнег

★★★★★★★
15 Янв 2020
4,339
1,492
@Palpalych,
интересный прикол: после замены в эффектах Кометы
XY(x, y)
на
getPixelNumber(x, y)
прошивка перестала компилироваться без указания причины.

Хотя в Огне2018 это прекрасно работает.
 

Palpalych

★★★★★✩✩
24 Дек 2019
766
405
@Сотнег, Возможно зависит от связанной функции прорисовки, возможно повторное использование, либо отличное от оригинального. Свою XY(x, y) дорабатывал, чтобы она не пестирила на повернутых матрицах - она в разных проектах аппаратозависимая.

Потом, учти, что Аврора использует перевернутую систему координат, где y = 0 - это вверх, а 31 - это низ. Многие эффекты с Boid() будут неправильно работать.
 

Сотнег

★★★★★★★
15 Янв 2020
4,339
1,492
@Palpalych
Оказалось, что прошивка перестаёт компилироваться только если удалить саму функцию
uint16_t XY()
А использовать её не обязательно.

Библиотека FastLED изобилует таким:
C-like:
// Forward declaration of the function "XY" which must be provided by
// the application for use in two-dimensional filter functions.
uint16_t XY( uint8_t, uint8_t);// __attribute__ ((weak));
 
Изменено:

Palpalych

★★★★★✩✩
24 Дек 2019
766
405
@Сотнег, Вот именно для этого я начал собирать библиотеку LEDraw, чтобы избежать повторного декларирования, а тем самым экономить память )))

Потом, посмотри как у меня реализовано, понимаешь теперь разницу? (все завязано на тип матрица/лента, а так же на ее положение и угол подключения)
C++:
// *** Функция быстрого расчета координат точки на матрице.
// Нужна для совместимости с некотороми внутренними функциями FastLED
uint16_t XY(uint8_t x, uint8_t y)
{
#if (MATRIX_DIRECTION & 1U)
  if ((THIS_X % 2 == 0) || MATRIX_TYPE) // если чётная строка
    return (uint16_t)THIS_X * _SEGLENGTH + THIS_Y;
  else // если нечётная строка
    return (uint16_t)THIS_X * _SEGLENGTH + HEIGHT_d - THIS_Y;
#else
  if ((THIS_Y % 2 == 0) || MATRIX_TYPE) // если чётная строка
    return (uint16_t)THIS_Y * _SEGLENGTH + THIS_X;
  else // если нечётная строка
    return (uint16_t)THIS_Y * _SEGLENGTH + WIDTH_d - THIS_X;
#endif
}
 

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
Я вообще убрал использование XY() в прошивке.
 

Сотнег

★★★★★★★
15 Янв 2020
4,339
1,492
@Palpalych, лови ещё способ оптимизации для функции чётный/нечётный :ROFLMAO:
(внизу там смотри)
C-like:
// ************* НАСТРОЙКА МАТРИЦЫ *****
#if (CONNECTION_ANGLE == 0 && STRIP_DIRECTION == 0)
#define _WIDTH WIDTH
#define THIS_X x
#define THIS_Y y

#elif (CONNECTION_ANGLE == 0 && STRIP_DIRECTION == 1)
#define _WIDTH HEIGHT
#define THIS_X y
#define THIS_Y x

#elif (CONNECTION_ANGLE == 1 && STRIP_DIRECTION == 0)
#define _WIDTH WIDTH
#define THIS_X x
#define THIS_Y (HEIGHT - y - 1)

#elif (CONNECTION_ANGLE == 1 && STRIP_DIRECTION == 3)
#define _WIDTH HEIGHT
#define THIS_X (HEIGHT - y - 1)
#define THIS_Y x

#elif (CONNECTION_ANGLE == 2 && STRIP_DIRECTION == 2)
#define _WIDTH WIDTH
#define THIS_X (WIDTH - x - 1)
#define THIS_Y (HEIGHT - y - 1)

#elif (CONNECTION_ANGLE == 2 && STRIP_DIRECTION == 3)
#define _WIDTH HEIGHT
#define THIS_X (HEIGHT - y - 1)
#define THIS_Y (WIDTH - x - 1)

#elif (CONNECTION_ANGLE == 3 && STRIP_DIRECTION == 2)
#define _WIDTH WIDTH
#define THIS_X (WIDTH - x - 1)
#define THIS_Y y

#elif (CONNECTION_ANGLE == 3 && STRIP_DIRECTION == 1)
#define _WIDTH HEIGHT
#define THIS_X y
#define THIS_Y (WIDTH - x - 1)

#else
#define _WIDTH WIDTH
#define THIS_X x
#define THIS_Y y
#pragma message "Wrong matrix parameters! Set to default"

#endif

uint16_t XY(uint8_t x, uint8_t y)
{
  if (!(THIS_Y & 0x01) || MATRIX_TYPE)               // Even rows run forwards
    return (THIS_Y * _WIDTH + THIS_X);
  else                                                  
    return (THIS_Y * _WIDTH + _WIDTH - THIS_X - 1);  // Odd rows run backwards
}
 
Изменено:

Palpalych

★★★★★✩✩
24 Дек 2019
766
405
@Сотнег, Ты мне то же самое скинул, но только с неоптимизированными расчетами, и к жестко прописанной конфигурации матрицы. О чем постами выше говорил. Я тебе не весь код скидывал.... Потом, есть матрица в виде змейки, где зигзаг расположен горизонтально, теперь - расположи его вертикально. Как у тебя будет работать представленная функция? Правильно - никак! А я этот этап еще месяц назад прошел...

@kDn, А как тогда работает blur2d() ?
 
Изменено:

Сотнег

★★★★★★★
15 Янв 2020
4,339
1,492
Ты мне то же самое скинул, но только с неоптимизированными расчетами, и к жестко прописанной конфигурации матрицы.
@Palpalych, с чего вдруг?
Твоё для нечётных:
return (uint16_t)THIS_Y * _SEGLENGTH + WIDTH_d - THIS_X;
Моё для нечётных:
return (THIS_Y * _WIDTH + _WIDTH - THIS_X - 1);


Я вообще предлагал тебе определитель чётности взять более быстрый.
Твой:
(THIS_X % 2 == 0)
Мой:
(THIS_Y & 0x01)
 

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
@kDn, А как тогда работает blur2d() ?
Поторопился сказать, что работает... Оказалось что функция-то у меня всеж-таки определена была))). Спасибо, теперь исправил:

C++:
uint16_t XY(uint8_t x, uint8_t y)
{
  myLamp.getPixelNumber(x,y);
}
 

Palpalych

★★★★★✩✩
24 Дек 2019
766
405
@Сотнег, А... ты про это, ну костыль, не мой еще. (я, кстати, обычно, не сравниваю значения с нулем в условиях)
К тому же THIS_X % 2 == 0 не равно THIS_Y & 0x01 - а это придется переписывать логику всей процедуры. возможно, что придется учитывать направление намотки ленты

Я к тому, что много раз используется полное значение величины ширины/высоты, когда для расчетов нужно на единицу меньше. И так, в каждом цикле... проще вычислить константу и использовать ее там постоянно
 
Изменено:

Palpalych

★★★★★✩✩
24 Дек 2019
766
405
@kDn, нужно теперь проверить getPixelNumber() на совместимость к повернутым матрицам ))) А то много будет вопросов непонятных от последователей
 

Rampart

★✩✩✩✩✩✩
15 Дек 2019
12
10
стоило отлучиться на несколько дней, тут и тему почистили и шапку оформили, и приложение написали и кучу эффектов...
карантин животворящий?:)

собрал еще одну лампу, работает. но проявился глюк - на многих (но кажется не всех) эффектах в случайный момент времени происходит моментальная вспышка матрицы. ярко, белым цветом. В силу кратковременности даже не понятно все светодиоды вспыхивают или только те что не потушены.
Сталкивались с таким? Что это, помеха по питанию?
 

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
@kDn, нужно теперь проверить getPixelNumber() на совместимость к повернутым матрицам ))) А то много будет вопросов непонятных от последователей
Так у меня уже проверили пользователи прошивки, как минимум у одного была матрица из кусков, а у другого - 32*8 :)
Благодаря им были отловлены некоторые баги в эффектах и выводе текста.
Вот единственное что только что добавил в функцию - поддежку сегментов, там где пиксель состоит из нескольких светодиодов. Правда это будет не совсем корректно работать с тем же размытием, по вполне понятным причинам. Но если уж сильно прижмет - то всегда можно будет переписать :)
 
Изменено:

Palpalych

★★★★★✩✩
24 Дек 2019
766
405
@kDn, Ну почему же не корректно? Если пиксель вычисляется правильно, то все должно нормально работать.... Другой вопрос - возникновение "гребенки" или "шахмат" при неправильном определении "змейки"
 

EGORka

★✩✩✩✩✩✩
15 Мар 2020
87
37
Можно только в "Реестре" менять названия.
Они в приложение передаются. Остальные упоминания - это комментарии для программистов.
Это где ? То есть если я там перед прошивкой имя эффекта поменяю, потом, в приложении, загрузив эффекты из лампы, я получу в списке исправленное название ? Нашел в трех местах два в constant.h и одно в effect ticker. во всех трех одинаковое имя ставить ?
 
Изменено:

Palpalych

★★★★★✩✩
24 Дек 2019
766
405
В общем, разобрался с координатами. Я в своих проектах использовал 2 функции - getPixelNumber() и XY() - вторую оставил исключительно для встроенных функций FastLED. В частности для обеспечения работы blur2d(). Причем математика исчисления координат "x" и "у" у них прямо противоположная. Блюр исходит из положения, что змейка матрицы строго горизонтальная. У меня же - вертикальная )))
Поэтому у меня 2 функции ))) ... и поэтому эффект размытия при неправильных исчисления в другом пространстве выглядит не так )))
 

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
@kDn, Ну почему же не корректно? Если пиксель вычисляется правильно, то все должно нормально работать.... Другой вопрос - возникновение "гребенки" или "шахмат" при неправильном определении "змейки"
Да потому что функция возвращает индекс одного светодиода, а в случае сегментов это будет пулл из нескольких светодиодов 2+, о чем совершенно не догадывается та же функция размытия :). Т.е. пока сегмент состоит из 1 RGB-светодиода - все нормально, но как только 2+ уже будут артефакты... Насколько сильные - нужно тестировать.
 

Palpalych

★★★★★✩✩
24 Дек 2019
766
405
@kDn, ну да, с сегментам все сложно (((
но, размытие можно переписать тогда, там не сложная функция. Или поковыряться в фастледе - может в нем есть настройка поддерживать сегменты? или еще момент - может ленту (вернее не ленту, и если есть возможность) перепаять на 1 выход = 3 входа?
 

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
@kDn, ну да, с сегментам все сложно (((
но, размытие можно переписать тогда, там не сложная функция. Или поковыряться в фастледе - может в нем есть настройка поддерживать сегменты? или еще момент - может ленту (вернее не ленту, и если есть возможность) перепаять на 1 выход = 3 входа?
Я цеплять несколько лент параллельно не пробовал, так что не знаю как себя поведут. В принципе сегменты это специфические случаи, когда планируется использование сразу 100500 светодиодов, но так как подавляющее большинство участников используют стандартную матрицу 16*16, то я по большей мере ориентируюсь на нее. Все остальные случаи буду рассматривать индивидуально и по отдельному запросу. В любом случае я сейчас микрофон прикрутил и занят цветомузыкой на основе лампы.
 
  • Лойс +1
Реакции: kostyamat и ssp1971

Сотнег

★★★★★★★
15 Янв 2020
4,339
1,492
Прошивка 60 эффектов в 1
Добавлен эффект Огонь 2018,
добавлена настройка регулятором Масштаб в эффектах 2-3 Кометы, Парящий огонь.

Это бета-версия. Я не уверен, что она корректно работает.
У меня почему-то при выключенной лампе (когда эффекты не демонстрируются)
приложение не может к лампе подцепиться.
Выкладываю, чтобы понять, это у меня локальный глюк, или проблема в прошивке.
https://download.ru/files/irFvlHj6 (не качайте. эта глючная, наверное. нормальная ниже)

Нашел в трех местах два в constant.h и одно в effect ticker. во всех трех одинаковое имя ставить ?
Я уже писал, что имя можно менять только в "Реестре".
Остальные упоминания - это комментарии для программистов.
 
Изменено:
  • Лойс +1
  • Красота! +2
Реакции: Belokota, ssp1971 и Burai