Нужен скетч для управления адресной лентой WS2812B с помощью ардуино

sheff
Offline
Зарегистрирован: 14.11.2017

https://www.youtube.com/watch?v=GUa6GV0Ld-Q

Хочу собрать устройство как на видео, ищу исполнителя для написания скетча.

Теперь пожелания:

15 лент по 60 светодиодов, управление на ардуино, смена режимов автоматически/ручную.

Эффекты которые интересуют:

Метеор(как из видео) 

Возможность менять скорость, длину хвоста, цвет.

Звезды(случайные вспышки на всех лентах)

Возможность менять частоту и интенсивность вспышек, цвет.

Остальное при общении.

sadman41
Offline
Зарегистрирован: 19.10.2016

Там же скетч выложен вроде как. Только выйдет ли на миньке это сделать - вопрос, конечно. 

sheff
Offline
Зарегистрирован: 14.11.2017

sadman41 пишет:

Там же скетч выложен вроде как. Только выйдет ли на миньке это сделать - вопрос, конечно. 

Скетч попробовал, изменил количество лент, диодов на ленту, поигрался .....
Почему то не могу добиться чисто белого цвета.
15 лент по 60 светодиодов запихнул только в мегу и то, проскакивают артефакты.
Чтобы добавить еще эффектов не хватит ни памяти ни моих знаний...поэтому написал сюда.

sadman41
Offline
Зарегистрирован: 19.10.2016

Ну так да, 15*60=900 - нетривиальненько для задачки, собираемой "на коленке". Чисто белого можете не добиться. Для "белого" используют RGBW ленты, а не RGB.

sheff
Offline
Зарегистрирован: 14.11.2017

sadman41 пишет:

 Для "белого" используют RGBW ленты, а не RGB.

Возможно я не разобрался в скетче, но скетчи из примеров от FastLED и AdafruitNeopixel дают чистый белый цвет.

sadman41
Offline
Зарегистрирован: 19.10.2016

А... я посмотрел - там в HSV-пространстве какие-то преобразования происходят. Наверное при преобразовании грабли лезут. В фастледе я видал артефакты при неаккуратном обращении с HSV.

karamzin01
Offline
Зарегистрирован: 08.03.2018

р е а л и з у е м о - maslachenko767@mail.ru , консультации, подбор компонентов бесплатно, гарантии

sadman41
Offline
Зарегистрирован: 19.10.2016

Не разорвись токо одной рукой "ёлку" делать, другой - подогреватель для бака, третьей - андроид программить ))

bwn
Offline
Зарегистрирован: 25.08.2014

sadman41 пишет:

Для "белого" используют RGBW ленты, а не RGB.

Отсель можно поподробней?  Для опытов схватил RGBW 4100 на 6812, поюзал, белый от отдельного светика более теплый чем от ленты. По яркости, что так, что эдак, х-ня полная. Заказал в итоге RGB на 2812, был неправ?

sadman41
Offline
Зарегистрирован: 19.10.2016

sheff пишет:

Почему то не могу добиться чисто белого цвета.

15 лент по 60 светодиодов запихнул только в мегу и то, проскакивают артефакты.

Вобщем, если сам умеешь что-то делать - могу проконсультировать за артефакты (если это то, с чем я сталкивался).  Такого количества лент у меня нет, поэтому браться за работу с непроверяемым результатом я не хочу. wrk.sadman@gmai.com

sadman41
Offline
Зарегистрирован: 19.10.2016

bwn пишет:

Отсель можно поподробней?  Для опытов схватил RGBW 4100 на 6812, поюзал, белый от отдельного светика более теплый чем от ленты. По яркости, что так, что эдак, х-ня полная. Заказал в итоге RGB на 2812, был неправ?

Да всё это крайне субъективно - вопросы цвета и зрения. Есть же теплый белый, холодный белый... один в желтое сваливается, другой - в синее. Поменяйте на мониторе 9300 на 6500 или наоборот. Первое время будете поражены белизной, а потом свыкнитесь. 

Или вспомните телевизоры европейской сборки и азиатской. Азиатская всегда краснила. Так у них устроены глаза настройщиков ))

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

ku-ku
Offline
Зарегистрирован: 14.11.2018

sadman41 пишет:
Ну так да, 15*60=900 - нетривиальненько для задачки, собираемой "на коленке". Чисто белого можете не добиться. Для "белого" используют RGBW ленты, а не RGB.

на getchip, насколько помню, метеор писался на почти ассемблере и там был параллельный вывод - на каждый метеор своя нога. Это для фастледа прокачать 900 штук 2812 - там фпс будет 20 наверно в лучшем случае.

ТС могу предложить глянуть на https://github.com/jasoncoon/esp32-fastled-webserver

На 32-й ЕСП вроде есть параллельный вывод. Не уверен насчет 12-ти, но штук 6 ног должно быть.
А в коде - просто убрать ненужные процедуры из массива процедур засветки а к метеору привязать теже cooling/sparking переменные, переназвав их для удобства. В итоге получится очень удобный вариант колупания настроек через вэб-морду.
Если чо - я esp32 звавести в своей ардуино-ИДЕ не смог, так что этот сервер не пробовал. А на базе серва под обычную есп - очень удачно получается.

p.s. 15*60 = 900/170 = 6 юниверсов для E1.31. Это 2 штуки eps8266. Плюс можно не только метеоры, а кучу всяких анимаций юзать, а в будущем расширить знатно. Но нужен генератор - или ББ, или распбери. Теоретически можно и с карты памяти, но я не пробовал.
Применимость этого зависит от физической конфигурации зоны засветки.

sadman41
Offline
Зарегистрирован: 19.10.2016

Не знаю на каком там ассемблере метеор писался, но под видео скетч на чистейшем wiring'e и даже почти без циклов.

Токо топикстартеру, наверняка, надо успеть к Новому Году, а не полгода изучать способы оптимизации вывода и обработки данных на восьмибитном процессоре с 2кб памяти. Тоись нужен быстрый и эхфективный способ заметеорить.

ku-ku
Offline
Зарегистрирован: 14.11.2018

sadman41 пишет:
Тоись нужен быстрый и эхфективный способ заметеорить.

ему только многоножье поможет, при таком количестве диодов. Или брать тинсю да диоды апы102.

А для многоножья - это не фастлед точно!

по поводу вайринга - проект с сайта гэтчип и там есть этот проект. Алгоритм-билдер, во, вспомнил! Вроде на нем автор писал. И благодаря этому он смог выжать 12 метеоров на одну ардуину. Давно было, могу и напутать. Но на фастледе, да на ардуине, да чтобы 900 штук тормознутых 2812 - да ни в жисть!

p.s. артефакты часто лечатся банальным кондером побольше на питание. Плюс БП помощнее. мой бп на компе хоть и брендовый, но ему уже лет 10. Кондеры посохли, помехи серет по 5В так, что даже отдельный кондер перед лентой не спасает. Взял древний бп нонейм от ББ - на нем лента показует отлично!

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Тут нужно слить куски летны в одну. Нет смысла вешать отрезки на разные ножки, это жрет озу. 

ku-ku
Offline
Зарегистрирован: 14.11.2018

brokly пишет:

Тут нужно слить куски летны в одну. Нет смысла вешать отрезки на разные ножки, это жрет озу. 

фпс пострадает. насколько помню - 2812 желательно не более 600 штук вешать подряд для достижения фпс в районе 30 кадров. Шина у 2812 тормознутая.

sadman41
Offline
Зарегистрирован: 19.10.2016

ku-ku пишет:
Давно было, могу и напутать. Но на фастледе, да на ардуине, да чтобы 900 штук тормознутых 2812 - да ни вжисть!

Скоко фпс нужно метеору на фасаде дома - вопрос исключительно философский.

У меня китайская паутина висит на окне - так там при диминге так шим работает, что глаза на лоб лезут. Но ничего, продажам (китайцами паутин) не мешает.

ku-ku
Offline
Зарегистрирован: 14.11.2018

sadman41 пишет:
вопрос исключительно философский.

жлобство уже философией стало )))

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

Нет предела совершенству ))

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Шина то как раз быстрая, но последовательная :(

А какой тут нужен фпс ? Если 50 Гц (только нужно ли ?) то куски ленты не имеют права быть длиннее 60 диодов.

Тогда действительно 15 ног. И сильно сомневаюсь, что хватит скорости проца.

Тут ключевой вопрос - а нужно ли 50 фпс ?

Ну а по памяти, только мега... Но есп наверное будет лучше :) Всякие библиотеки выбросить нахрен. Все ручками.

ku-ku
Offline
Зарегистрирован: 14.11.2018

brokly пишет:

Шина то как раз быстрая, но последовательная :(

а если сравнить с APA102 ? )) На порядок шустрее, и всего в два раза дороже :D

sadman41
Offline
Зарегистрирован: 19.10.2016

ku-ku пишет:

sadman41 пишет:
вопрос исключительно философский.

жлобство уже философией стало )))

Не понимаю реплики. Я не продаю никому метеор с 2фпс, рассказывая, что это нормально.

Является ли топик-стартер пчелой, которой 120 мало, или же ему достаточно бегущих огней - я понятия не имею. 

ku-ku
Offline
Зарегистрирован: 14.11.2018

sadman41 пишет:
Не понимаю реплики.

я говорю о том, что хотелка автора находится на границе возможностей железа. И тут просто поменять количество диодов в коде - не выйдет.

По поводу фпс - я лишь в общем заметил! Кто-то, глядишь, на ус намотает и получит +2 к экспириенсу. Разве это плохо?

sadman41
Offline
Зарегистрирован: 19.10.2016

ku-ku пишет:

sadman41 пишет:
Не понимаю реплики.

я говорю о том, что хотелка автора находится на границе возможностей железа. И тут просто поменять количество диодов в коде - не выйдет.

Вот, кстати, можете выступить исполнителем. Заодно оцените как это - с другой стороны находиться.

Железо у вас есть, опыт какой-никакой - тоже. На метеор и спаркл вполне хватит, полагаю.

ku-ku
Offline
Зарегистрирован: 14.11.2018

sadman41 пишет:
Вот, кстати, можете выступить исполнителем.

так фастлед не прокачает. Ради интереса соберу щас на ЕСП сервере Джейсона и гляну ФПС )
только метеор на все 900 будет ездить. Мне сильно много думать придеццо, чтобы это дело раскидать на 15 отрезков. Я ж не программер, а влезший в дебри юзверь, испачкавшийся в коде этом вашем, но упорно продолжающий колупаться )) упоротый, чо уж и говорить!

sadman41
Offline
Зарегистрирован: 19.10.2016

Можете попробовать убедить заказчика, что он не прав и ему нужно другое железо... Или написать на чем-то другом, чтобы завестись на МК заказчика. Заодно оцените свою работу, не начиная ее ;) А потом постараетесь не уйти в минус при выполнении. Ну и уложиться в срок, конечно же.

ku-ku
Offline
Зарегистрирован: 14.11.2018

был неправ: FPS 34

это метеор от Крейгсмана на 900 диодов. Смотрю лишь по приборам, ленту не когтил! Интересненько!

https://cloud.mail.ru/public/ESN8/ABHAVzCDL тут проект. Регулируется скорость, ширина, шанс случайных всполохов. Для есп. Шьется, в сериал серет, что с лентой - не смотрел. При чистке папки я проект увалю, оттого и название такое. Кому надо - забирайте и смотрите.
На основе этого кода - легко вкрячить других процедур засветки, наплодить переменных, которые через вэбморду можно тягать туда-сюда. При этом ненужно править жаву или хтмл. Только в ардуине, а вэбморда сама отпарсит что рисовать. Палитры не задействованы вроде, но не стал выпиливать. Они могут еще пару кадров пожирать. Обновка по воздуху должна работать тоже.

sheff
Offline
Зарегистрирован: 14.11.2017

Вобщем немного поковырял скетч, в некоторых местах методом научного тыка добился нужного мне результата и запихнул всё это дело в мегу. Даже вроде работает, одновременно подключить все ленты еще не могу, так как они только дня через 3 приедут, но игрался с двумя кусками ленты по 60 светиков, переставляя их в разные пины - работают.
 

Скетч использует 24678 байт (9%) памяти устройства. Всего доступно 253952 байт.
Глобальные переменные используют 4127 байт (50%) динамической памяти, оставляя 4065 байт для локальных переменных. Максимум: 8192 байт.
sadman41
Offline
Зарегистрирован: 19.10.2016

Я бы запараллелил часть страйпов (наврядли кто-то будет прямо всматриваться в них) и, может даже, завелся на Микро Про. А может и на Нанке. Но если по габариту ограничения нет, то для быстрого метеоризма и мега подойдет ))

Если быстродействие удовлетворяет, то спарклы добавить - дело техники.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

brokly пишет:

Если 50 Гц (только нужно ли ?) то куски ленты не имеют права быть длиннее 60 диодов.

Соврамши... Каюсь 600 диодов. Можно заюзать с фпс 50.

sadman41
Offline
Зарегистрирован: 19.10.2016

Эхвы... Чуть не заставили человека сервер купить под метеоры ))

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Ага :) 

sheff
Offline
Зарегистрирован: 14.11.2017

sadman41 пишет:

Я бы запараллелил часть страйпов (наврядли кто-то будет прямо всматриваться в них) и, может даже, завелся на Микро Про. А может и на Нанке. Но если по габариту ограничения нет, то для быстрого метеоризма и мега подойдет ))

Если быстродействие удовлетворяет, то спарклы добавить - дело техники.

Сначала так и хотел сделать, но в нано можно загрузить только пять лент и то выдается сообщение, что память перегружена и могут быть сбои, ставить три нано как-то не охота, вот и вытащил на свет мегу.

А вот с техникой беда....постоянно заниматься и учиться некогда, это больше так сказать хобби.
Сейчас главное запустить к новому году, а потом по наличию времени довести до ума готовое устройство.
Всем спасибо за участие. Можно закрывать тему......если, конечно не будет интересных предложений :)

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

А че тут мучаться. Достаточно прикинуть , что на один RGB диод нужно три байта озу, при этом хотя бы 25% должно оставаться под остальные переменные. В ATmega328 всего 2к озу, 1500 - максимальный буфер для светодиодов, значит максимум 500 диодов. У 2560 уже 8к оперативки, значит она  потянет.

sadman41
Offline
Зарегистрирован: 19.10.2016

sheff пишет:

Сейчас главное запустить к новому году, а потом по наличию времени довести до ума готовое устройство.

Всем спасибо за участие. Можно закрывать тему......если, конечно не будет интересных предложений :)

Имейл я выше дал. В той концепции, которую предлагает оригинальный скетч, спарклы я за минут 15 добавил. Колхозно, но моргает на моем квадратике 8x8. Нужно - пиши. Рокерный переключатель присобачишь к меге - будет два режима.

Но, если делать серьёзно, то мне за такой код с дилеем стыдно )) 

sheff
Offline
Зарегистрирован: 14.11.2017

sadman41 пишет:

Имейл я выше дал.  

Написал на мыло.

sadman41
Offline
Зарегистрирован: 19.10.2016

Карамзину, поди, написал )) 

Мне ничего не свалилось в ящик.

P.S. белого в том скетче крутилками не добиться, потому что цвет хардкодом на максимальную насыщенность (saturation) выставляется. А для белого ее минималить надо. Т.е. много там чего надо перековыривать.

karamzin01
Offline
Зарегистрирован: 08.03.2018

р е а л и з у е м о - maslachenko767@mail.ru , консультации, подбор компонентов бесплатно, гарантии

sheff
Offline
Зарегистрирован: 14.11.2017

sadman41 пишет:

Карамзину, поди, написал )) 

Мне ничего не свалилось в ящик.

P.S. белого в том скетче крутилками не добиться, потому что цвет хардкодом на максимальную насыщенность (saturation) выставляется. А для белого ее минималить надо. Т.е. много там чего надо перековыривать.

Отправил вот сюда wrk.sadman@gmai.com у меня в отправленных, значит ушло....смотри у себя спам.

sadman41
Offline
Зарегистрирован: 19.10.2016

Я все понял. В гмейле буква l потерялась. Нужно gmail.com, а не gmai

 

sheff
Offline
Зарегистрирован: 14.11.2017

sadman41 пишет:

Я все понял. В гмейле буква l потерялась. Нужно gmail.com, а не gmai

 

Точняк, не досмотрел. Отправил.