ARDUINO Реализация эффектов адресной лены ws2812b для ArduinoMega

andyMsk

✩✩✩✩✩✩✩
26 Авг 2020
5
0
Требуется исполнитель :
Россия/СНГ
Надо изготовить :
Необходимо написать скетч, который по UART принимает команду включения или выключения эффектов на 19 различных кусках ленты, также придумать как эти 19 кусков ленты соединить между собой для удобного управления и для минимизации количества проводов, подробное описание в тз
Планируемый бюджет :
5000руб, готов обсуждать, предлагайте.
Сроки :
2-3 недели
Оплата :
как угодно вам
Для связи :
форум
 

Вложения

andyMsk

✩✩✩✩✩✩✩
26 Авг 2020
5
0
эффекты уже реализованы в проектах на этом сайте- исходники на гитхабе- сам их запускал- смотрел
 

Старик Похабыч

★★★★★★★
14 Авг 2019
4,263
1,301
Москва
Посмотрел ТО.
По сути.
Мега та же нано, только с большей памятью, а это значит, что как и нано ее только только хватит на эквалайзер на экране.
Все эффекты рассчитаны на сольное исполнение, а это значит, что не будет возможности их использовать хором. Когда мигает окно "кассир из реди" больше ничего не работает. Условно. Пару мест потянет, но это значит, что все эффекты надо переписывать.
 

b707_2

★★✩✩✩✩✩
22 Июл 2020
182
51
Все эффекты рассчитаны на сольное исполнение, а это значит, что не будет возможности их использовать хором. Когда мигает окно "кассир из реди" больше ничего не работает. Условно. Пару мест потянет, но это значит, что все эффекты надо переписывать.
соглашусь
Как решение можно рассмотреть такой вариант - вместо одной Меги взять три Нано или Мегу + 2 Нано. Но тогда придется добавить к задачке вопрос коммуникации между ардуинами
 

andyMsk

✩✩✩✩✩✩✩
26 Авг 2020
5
0
По факту одновременно будет работать 2 зоны- зона 0 на 630 диодов- эту зону я запускал на меге, разные эффекты- работает, и зона 1-21 - она будет по факту как 1 кусок- и эффекты будут применятся по очереди к ней всей либо ее части(я понимаю что эффект на части ленты потребует столько же ресурсов что и эффект на всем куске, т.к. все равно нужно будет загружать информацию цепочкой для каждого диода).
Я думаю что мега справится с прогрузкой одновременно 630+416 диодов. На крайнем варианте- возьму еще 1 нано- и от меги через второй/третий юарт будут прокидывать команды от хоста в нано. Вопрос коммутации мег, оставляю вне этой задачи.

Еще вопрос, кто-нибудь знает, в Протеусе можно для эмуляции добавить мегу и адреску? чтобы можно было отладку эффектов "без железа" делать?

UPD Загуглил- можно
 

b707_2

★★✩✩✩✩✩
22 Июл 2020
182
51
На крайнем варианте- возьму еще 1 нано- и от меги через второй/третий юарт будут прокидывать команды от хоста в нано. Вопрос коммутации мег, оставляю вне этой задачи.
если не рассматривать вопрос коммуникации - не понятно, в чем задача текущего исполнителя. По отдельности вопрос вывода эффектов на ленту и вопрос работы с Сериал - задачи тривиальные, вопрос только в правильном их совмещении в одном коде. Если вопрос коммуникации не рассматривать - возьмите просто готовые примеры из скетче гайвера да и все
 

andyMsk

✩✩✩✩✩✩✩
26 Авг 2020
5
0
Основная задача- применять эффект не к последовательному куску ленты, а к ее кускам, например нужно бегущий по кругу огонек применить к диодам 1-14 и 70-84 например, чтобы это выглядело так, как будто вся лента состоит из этих 28 диодов, т.е. нужно решить вопрос с адресацией зоны, которая по факту находится в разных участках общего куска ленты+ систематизировать все эффекты, собрать в кучу

Всем спасибо, товарищ https://community.alexgyver.ru/members/kto-to-tam.11347/ взялся за этот проект.
 

Эдуард Анисимов

★★★★★★✩
23 Сен 2019
2,407
976
58
Марий-Эл
Как решение можно рассмотреть такой вариант - вместо одной Меги взять три Нано или Мегу + 2 Нано. Но тогда придется добавить к задачке вопрос коммуникации между ардуинами
Как решение - не пороть горячку а применить другой контроллер Что упёрлись в эту мегу?
STM позволяет управлять адресными диодами без вмешательства ядра. Ядро вмешивается в процесс только при смене эффекта.
 

b707_2

★★✩✩✩✩✩
22 Июл 2020
182
51
Как решение - не пороть горячку а применить другой контроллер Что упёрлись в эту мегу?
STM позволяет управлять адресными диодами без вмешательства ядра. Ядро вмешивается в процесс только при смене эффекта.
Насчет "не пороть горячку" - согласен.
Но ... ТС хочет разбить ленты на три независимые ветки. В любом случае это проще всего решается тремя отдельными контроллерами.
 

b707_2

★★✩✩✩✩✩
22 Июл 2020
182
51
В STM таймеров столько, что на одном микроконтроллере можно собрать 3 ветки свободно.
не надо пороть горячку, как сказал кто-то раньше в этой же ветке.
Я знаю три способа работы с адресными диодами на СТМ через DMA (это чтобы без использования ядра). Ни один из этих методов не позволит вывести эффекты на три разные ветки диодов такой длины как у ТС. Можно, конечно, попытаться использовать для каждой ветки свой метод - но это уже точно не назовешь "свободно"
Если хотите, можем обсудить подробнее,правда это уже немного оффтоп в этой теме. Не исключено что я ошибаюсь.
 

andyMsk

✩✩✩✩✩✩✩
26 Авг 2020
5
0
Спасибо за подсказки, я читал о том что стм реально имеет более широкие возможности, но я писал до этого под ардуино и под atmega128 и сейчас я исходил из того, что исходники нужных эффектов есть только под ардуино(или я ошибаюсь?), переводить их под стм, будет стоить других денег, и займет больше времени, а мне нужно за 2 недели, и меги у меня "валяются". В дальнейшем я возможно нарисую pcb под stm и закажу перевод кода из ардуино в stm, чтобы это было компактнее и логичнее.. В любом случае огромное спасибо за подсказки, особенно в области, в которой я не работал до этого.. Может еще кто еще чего подскажет..