ARDUINO FastLED и нестандартная поверхность светодиодов

Shuster

★✩✩✩✩✩✩
4 Сен 2021
50
11
Всем привет.

Мне нужно сделать прошивку на нестандартную поверхность светодиодов.
Допустим вывеска на баре, с надписью собственно BAR.

Что я имею в виду под понятием нестандартная поверхность светодиодов.
Это ни лента в обычном понимании, ни матрица, а отдельно расположенные светодиоды.

Может есть какие-то программы, в которых можно создать визуальные эффекты нестандартных поверхностей с экспортом в код?

Я взял программу lededit в ней создаются эффекты, но как эти эффекты сохранить себе в прошивку?

Что можете посоветовать?
 

bort707

★★★★★★✩
21 Сен 2020
3,056
910
Для упрощения монтажа все равно лучше взять матрицу или кусочки лент.
Ну а "эффекты" - какие особо эффекты можно вывести в статичную надпись? Только переливание цветов, имхо.

Опять же, не совсем понятен вопрос, "как сохранить эффект в прошивку"?
Прошивка, очевидно, вам понадобится своя, поэтому никаких готовых средств "сохранить эффекты в прошивку" нет и быть не может. Придется писать программу на Си. Эффекты можно взять из "лампы" и адаптировать
 

Shuster

★✩✩✩✩✩✩
4 Сен 2021
50
11
Да, наверное это поможет.

Эффекты можно взять из "лампы" и адаптировать
Так и делаю, но в лампе матрица, а не лента.

Опять же, не совсем понятен вопрос, "как сохранить эффект в прошивку"?
Вопрос простой. Я запустил в lededit режим перелива цветов. Вот и вопрос, как это сохранить в код, чтобы добавить эффект в мою прошивку.
 

Shuster

★✩✩✩✩✩✩
4 Сен 2021
50
11
все равно не понял... Написать код эффекта на Си не предлагать?
Предлагать )
Допустим куда копать, чтобы сделать эффект такой как на видео, что я в пером посте выложил.

p.s. Копаю вот сюда сейчас https://macetech.github.io/FastLED-XY-Map-Generator/
То что мне нужно, там сделать не получается, но смотрю по аналогии смогу создать такую XYTable руками.
Отличный пинок. Спасибо.

Если есть другие варианты, не стесняйтесь :)
 

Сотнег

★★★★★★★
15 Янв 2020
4,364
1,494
Так и делаю, но в лампе матрица, а не лента.
На вашем видео уже скорее матрица с 70% "битых пикселей", чем лента.

Удобнее будет взять прошивку от лампы и использовать в ней этот самый XY-Map.
Эффект переливания цветов там уже есть. Называется "Радуга".
 
  • Лойс +1
Реакции: Shuster

Shuster

★✩✩✩✩✩✩
4 Сен 2021
50
11
На вашем видео уже скорее матрица с 70% "битых пикселей", чем лента.

Удобнее будет взять прошивку от лампы и использовать в ней этот самый XY-Map.
Эффект переливания цветов там уже есть. Называется "Радуга".
У меня лента на 100 диодов.
Расположение типа такого как я показал в видео.
То есть мне кажется воспринимать как матрицу с "битыми пикселями" гораздо проще чем лента разложенная хрен пойми как.

XY-Table по аналогии сделал, но у меня массив выходит в 300 пикселей, а как выше писал их только 100 на самом деле.

Запустить пока не могу, но вообще я в правильном направлении?
 

poty

★★★★★★✩
19 Фев 2020
3,230
940
@Shuster, не очень понимаю, чего Вы хотите добиться от здесь присутствующих? Сомневаюсь, что кому-то потребовалось, ради экономии в несколько долларов на "лишние" светодиоды, разрабатывать программу для преобразования "эффекта" к пользовательской конфигурации их размещения.
Т.е., преобразование из "матрицы" в вашу "конфигурацию" Вам всё равно придётся делать самостоятельно (т.е., в коде). В принципе - если умещается два массива для светодиодов, сделать это легко: один массив наполняете как "матрицу" из известного эффекта, в другой переписываете из первого только те элементы, которые у Вас имеются, и отображаете получившееся.
 

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
В принципе - если умещается два массива для светодиодов, сделать это легко: один массив наполняете как "матрицу" из известного эффекта, в другой переписываете из первого только те элементы, которые у Вас имеются, и отображаете получившееся.
Именно для этого и нужен мапинг. Есть виртуальная матрица X*Y c которой работают все эффекты как с обычной матрицей и есть таблица/форумула преобразования которая из виртуальной матрицы берет лишь нужные пиксели в правильном порядке, далее все это отсылается на светодиоды. Позиция светодиодов может быть произвольной, но должна быть вписана в виртуальную матрицу, все они соединяются последовательно. Ничего сложного в задаче нет.
 
  • Лойс +1
Реакции: Shuster

bort707

★★★★★★✩
21 Сен 2020
3,056
910
маппинг - обозвали черти как, а всего то нужно вывести на ленту лишь определенные пиксели.
Мне кажется, ТС хотел найти какой-то готовый инструмент, который с одной стороны принимает его "маппинг", а с другой - выдает процедуры эффектов, полностью готовые для добавления в прошивку.
Задачка интересная, конечно, но "вручную" пишется проще, кмк
 
  • Лойс +1
Реакции: Shuster

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
маппинг - обозвали черти как, а всего то нужно вывести на ленту лишь определенные пиксели.
Мне кажется, ТС хотел найти какой-то готовый инструмент, который с одной стороны принимает его "маппинг", а с другой - выдает процедуры эффектов, полностью готовые для добавления в прошивку.
Задачка интересная, конечно, но "вручную" пишется проще, кмк
Еще раз - все процедуры отрисовки эффектов остаются как есть, ничего менять не нужно, нужно лишь одна функция преобразующая виртуальную матрицу в реальную ленту/последовательно подключенные светодиоды. А для создания данного вида функций как раз есть генераторы, см. ссылки выше, либо то же самое можно вручную сделать.

Вот пример:
1633438854584.png
Код отрисовки эффектов работает с матрицей 16*5 и весь обсчет идет ориентируясь на эту матрицу, а реально будет отображаться лишь то, что формирует буквы "TEST", если они подключены в виде ленты, т.е. в том порядке, который указан.

Эта функция есть во всех прошивках с FastLed, т.к. она является обязательной функцией для работы FastLed и без ее создания попросту не будет компилироваться проект.
 
  • Лойс +1
Реакции: Shuster

bort707

★★★★★★✩
21 Сен 2020
3,056
910
Эта функция есть во всех прошивках с FastLed, т.к. она является обязательной функцией для работы FastLed и без ее создания попросту не будет компилироваться проект.
неправда.
Открываете самый первый пример в библиотеке : FastLED/examples/AnalogOutput и убеждаетесь, что никакой функции XY в примере нет.
Эта функция вообще используется в одном единственном примере - matrixXY.ino.
Основной код библиотеки отлично работает без нее.
 

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
неправда.
Открываете самый первый пример в библиотеке : FastLED/examples/AnalogOutput и убеждаетесь, что никакой функции XY в примере нет.
Эта функция вообще используется в одном единственном примере - matrixXY.ino.
Основной код библиотеки отлично работает без нее.
Да, поправлюсь - некоторые функции (к примеру blur2d) FastLed попросту не будут работать без мапинга. :)
Но это не имеет никакого отношения к утверждениям выше, для создания нестандартных матриц инструмент и способ сделать это есть. Можно конечно использовать свой порядок соединения светодиодов (как удобнее), но далее это все равно нужно отобразить в виртуальный массив матрицы через мапинг и затем работать с этим массивом как с обычной матрицей светодиодов (не смотря на то, что какая-то часть из них попросту будет отсутствовать).

* Примеры я не смотрел если что, в общем-то и не собираюсь.
 
Изменено:

Shuster

★✩✩✩✩✩✩
4 Сен 2021
50
11
Вроде разобрался с XYTable.
Кое как сделал прошивку, и как только пытаюсь запустить радугу, у меня ничего не работает. Тормоза страшные, что даже пиксели не светятся.
Думаю, ну это я наговнокодил.

Начал искать готовые прошивки с матрицами под arduino nano.
Пока ставлю 8x8 10x10 всё работает.

Но когда устанавливаю свои параметры (30x10) при компиляции показывает использование памяти 148%-160%.
Всего у меня используется только 100 диодов, но разложенные на матрице это 300.

Как быть? Что посоветуете?
 

bort707

★★★★★★✩
21 Сен 2020
3,056
910
300, в принципе, должно поместится в память Нано. Если нет - можно взять МК помощнее - мегу, есп, стм

А насчет "посоветуйте" - либо продолжайте осваивать матрицы, либо закажите исполнителю... не знаю что тут еще посоветовать
 

Shuster

★✩✩✩✩✩✩
4 Сен 2021
50
11
Создал тему по заказу.
 

IamNikolay

★★★✩✩✩✩
15 Янв 2020
820
175
@Shuster, посоветую купить контроллер мощнее, это будет дешевле чем разработка своего алгоритма с эффектами под память нано и указанную матрицу
 
  • Лойс +1
Реакции: kostyamat и Shuster

Shuster

★✩✩✩✩✩✩
4 Сен 2021
50
11
@Shuster, посоветую купить контроллер мощнее, это будет дешевле чем разработка своего алгоритма с эффектами под память нано и указанную матрицу
Какой посоветуете?
Нет возможности заказать быстро, а время уже на исходе, не хотелось бы через пару недель понять, что заказал не то что нужно.
 

Lumenjer

★★★✩✩✩✩
10 Дек 2020
220
112
@Shuster, Берите ESP32 (ну или ESP8266, тоже хватит), точно не прогадаете, памяти валом (в сравнении с Nano), да и по цене не намного дороже
 
  • Лойс +1
Реакции: Shuster

kDn

★★★★★✩✩
18 Ноя 2019
1,103
437
Но когда устанавливаю свои параметры (30x10) при компиляции показывает использование памяти 148%-160%.
Основные потребители памяти - буфер светодиодов и массив мапинга (его нужно хранить в PROGMEM) - если правильно писать, то памяти нано хватит.
 
  • Лойс +1
Реакции: Shuster

IamNikolay

★★★✩✩✩✩
15 Янв 2020
820
175
@Shuster, есп/меги хватит для такой задачи, если код большой и есть сомнения в настройках можно выбрать контроллер и скомпилировать под него % занятой памяти при этом отобразится
 
  • Лойс +1
Реакции: Shuster

Сотнег

★★★★★★★
15 Янв 2020
4,364
1,494
@Shuster, под esp8266 (NodeMCU и Wemos) прошивок много уже готовых (для ламп и гирлянд),
под esp32 намного меньше.
 
  • Лойс +1
Реакции: Shuster