Управление RGB светодиодами WS2811 + датчик освещенности
- Войдите на сайт для отправки комментариев
Всем привет!
Собираю себе объемные буквы для вывески с RGB подсветкой. Помимаю что я хочу но еще слабо понимаю что для этого нужно, подскажите что мне все-же нужно.
Идея такова:
Всего будет 14 букв. В каждой букве в среднем 9 RGB модулей на WS2811.
Буквы будут переливатся разнами цветами, эффект волны с разных мест на букве и еще какнибуть. В зависимости от солнечного света должна изменятся яркость свечения светодиода. К примеру если солнце светит ярко то светодиод работает на 100%, а по мере захода солнца дион уменьшает свою яркость, а ночью работает на 40%. Примерно так.
Сейчас имеем 117 модулей WS2811 и блок питания на 300ват с тремя линиями питания.
Для реализации полагаю мне понадобится:
Arduino Mega 2560 (что-бы подключить каждую букву отдельно к ШИМ выходу)
BH1750FVI или APDS-9930 (для определения освещенности)
какой-либо модуль радио или ик для смены программы подсветки и тд.
Правильные ли компоненты я выбрал? Может еще что-то нужно\не нужно?
2811 не нужен PWM. В остальном набор названий деталей соответствует описанной словами задаче.
Деревенская дискотека, наверное.
2811 не нужен PWM. В остальном набор названий деталей соответствует описанной словами задаче.
Спасибо. Еду значит покупать. Вот только про PWM не понял... Разве яркостью не по PWM управляется 2811?
Мне кажется что будет удобнее написать программу для каждой буквы отдельно.
Спасибо. Еду значит покупать. Вот только про PWM не понял... Разве яркостью не по PWM управляется 2811?
PWM исполняет сам чип WS2811.
Вот как... Тогда выходит Arduino можно взять и по проще.
Можно и сенсор попроще взять - на фоторезисторе, например. И соединять попроще. Все от задачи зависит. Она же у вас в голове, а не у нас.
Вот как... Тогда выходит Arduino можно взять и по проще.
Можно-то оно можно, но если Вы не профессиональный программист, то может лучше взять несколько ардуин (маленьких, типа pro-micro) по одной на букву? 117 светодиодов, особенно если хочется плавного изменения (а значит полное обновление всех светодиодов 50 раз в секунду), - существенно забьёт контроллер. Я делал на 140 светодиодов на Nano - это потребовало реально серьёзного программирования. После прототипирования я сделал на голой 328-ой микросхеме с кварцем на 20МГц - стало полегче.
Может Вам сначала на маленьком примерчике попробовать, чтобы оценить что получается.
Извиняюсь если криво как-то обьесняю. Вот видио которое меня сподвигло на эту затею: https://www.youtube.com/watch?v=emJGG3u0IYU
Так думаю понятнее. Плюс к этому яркость должна регулироватся по датчику, дабы не лупила всегда на полную.
Почему думаю каждую букву вешать на свой канал? Опять-же думается что написать программу будет проще для каждой буквы отдельно и сигнал для каждого модуля будет доходить быстрее. Может и ошибаюсь конечно или сильно заморачиваюсь.
Программированием Arduino не занимался никогда, сижу вот изучаю.Сегодня надеюсь куплю контроллер и буду эксперементировать.
Где криво думаю, поправьте пожалуйста.
Женя! Пользуясь темой и твоим опытом: не подскажешь, где поискать примеры красивых эффектов?
Я, к Новому Году, себе беседку украшаю модулями WS2811, но придумать ничего, кроме "метеоров" и "пусть переливается" - не могу, не дизайнер. Может где-то есть источник вдохновения? Просто поглядеть и подумать.
Поправить можно человека, который уже попрограммировал что-то. В противном случае надо сесть рядом с ним и неделю расжевывать все, что касается реализуемой задачи. Иначе вы начнете фантазировать насчет того, что "проще", метаться "а может так", "или так", "этак делаем?" и бедный "консультант" начнет волосы на себе рвать.
Женя! Пользуясь темой и твоим опытом: не подскажешь, где поискать примеры красивых эффектов?
Не Женя, но могу подсказать - FastLed library examples, Arduino Neopixel Examples. Под фастлед я видел какой-то проект с кучей спецэффектов, но они однотипненькие были.
Можно-то оно можно, но если Вы не профессиональный программист, то может лучше взять несколько ардуин (маленьких, типа pro-micro) по одной на букву? 117 светодиодов, особенно если хочется плавного изменения (а значит полное обновление всех светодиодов 50 раз в секунду), - существенно забьёт контроллер.
По проще значит не пойдет, не подумал об этом. Разделить буквы по контроллерам... Кажется вылезут проблеммы с синхронизацией потом
где поискать примеры красивых эффектов?
К сожалению, не знаю - у самого это вечная проблема. Ну, вот не зудожник я. Иногда смотришь как делают люди с хорошим художественным вкусом, используя даже самые тривиальные программные приёмы - зависть гложет
Fastled ориентируется на 60FPS в своих экзамплах. Так что теоретически можно погнать с хорошей скоростью, но, опять же - надо быть готовым к урезанию осетра.
Поправить можно человека, который уже попрограммировал что-то. В противном случае надо сесть рядом с ним и неделю расжевывать все, что касается реализуемой задачи. Иначе вы начнете фантазировать насчет того, что "проще", метаться "а может так", "или так", "этак делаем?" и бедный "консультант" начнет волосы на себе рвать.
Тогда беру комплектуху как наметил изначально. Подсоеденяю 1 модуль пробую настроить, потом букву и мучаю её, далее еще 2-3 и тд. Так наверно будет правильно. А дальше будет видно надеюсь
...а из своего ёлочного опыта могу сказать, что все эти мегаэффекты интересны только до второго тоста.
Потом уже главное чтобы просто "было красиво" и "не мельтешило" ))
Тогда беру комплектуху как наметил изначально. Подсоеденяю 1 модуль пробую настроить, потом букву и мучаю её, далее еще 2-3 и тд. Так наверно будет правильно. А дальше будет видно надеюсь
В принципе - да. Ардуину сменить в таком наборе самая простая операция. Взял мегу, накидал... На затраты по ресурсам посмотрел - если влезает в миньку, поставил ее в устройство, а на меге дальше тренируешься.
Кажется вылезут проблеммы с синхронизацией потом
Вот Вам и надо решить, что есть бОльшая проблема.
С одним контроллером имеем ( https://cdn-shop.adafruit.com/datasheets/WS2811.pdf ).
1. передача данных для одного светодиода 2,5х24 = 60 микросекунд
2. Всего светодиодов у Вас 117, значит для всех - 60*117 = 7020 микросекунд
3. В конце нужен сигнал reset - ещё 50, итого 7070 микросекунд.
Всего же у Вас есть 20 миллискунд (чтобы 50 раз в секунду обновлять).
Итого имеем, что при идеальном программировании, у Вас 7,07 миллисекунды уходит только на передачу данных, которую прерывать нельзя и 12,93 миллисекунды остаётся на всё остальное (вычисления эффектов, снятие показаний с датчиков и т.п.). Это при идеальном. При реальном будет чуть хуже.
Так что решайте, что бОльшая пролема - синхронизация или вот такая загрузка процессора.
Потому я и советую побаловаться на маленьком примере для разминки и лучшего понимания.
Женя! Пользуясь темой и твоим опытом: не подскажешь, где поискать примеры красивых эффектов?
Не Женя, но могу подсказать - FastLed library examples, Arduino Neopixel Examples. Под фастлед я видел какой-то проект с кучей спецэффектов, но они однотипненькие были.
Садман41, дорогой! Не обижай старичка, мне не коды нужны, а видео с примерами. С кодами, я уж, с грехом пополам, как-нибудь, понемножку...
Fastled ориентируется на 60FPS в своих экзамплах.
Ну от экзампла же не требуется делать что-то ещё :)))
Реальные тайминги я расписал чуть выше. Вот пусть ТС и чешет репу.
Сам я делал на 20МГцах руками (безо всяких фастледов) на асссемблере - тайинги выдерживал идеально (с точностью до аккуратности кварца) - длительность исполнения команд в тактах учитывалсь и т.п.. При этом я полностью отделил логику от показа - по сути был массив rgb данных, которые показываются сами по себе постоянно, а основная программа только меняла в нём данные как и когда ей надо. Всё работает, но сказать, что это просто не могу, не просто это. Я полдня на эту фигню потратил.
Ну, а что проще взять экземпл, залить и посмотреть на натуре, а не в каком-то кривом видеоролике с вертикальной ориентацией? Или в ютубике набрать "fastled effects", к примеру. Эффекты надо искать ближе к либам, а не у дизайнеров, которые их только на бумаге и умеют нарисовать))
Ну от экзампла же не требуется делать что-то ещё :)))
Так по описанной задаче реалтайм видео и не требуется выводить. По опыту могу судить, что скорее всего дальше стандартных переливов дело-то и не пойдет. А когда пойдет - наши советы уже и не нужны будут.
Садман! Ну ты ж давно с нами. Ни я ни Евгений не станем пользоваться Фастледом... ну просто в голову не придет.
Я, кстати, поглядел на него (на фастлед). В идее - весьма профессионально написано, но именно то, о чем был недавно пост в "Отвлеченных". Это монстр - на все случаи жизни. Под четыре платформы, под все контроллеры. Это и есть беда современного программирования! Для охоты на воробьев потратим стопицот дохуярдов денег и разработаем суперпушку, с самонаведением, самозарядом, контролем безопасности, ИИ для колнтроля за оператором. Красивый цвет, эргономика кабины и все дела. Само-собой - создадим учебные центры подготовки пушкарей. Никто не спорит - воробьев будет бить - АФИГЕННО! Но из рогатки, все равно проще, если умеешь, так?
Да, господи, что за идиосинкразия? Я что, с ножом у горла заставляю фастлед использовать? На эффекты посмотрели (тот же самый Fire2012) и хоть в инструкциях процессора его переписывайте, хоть на 174-й логике паяйте ))
А топикстартеру посоветую таки датчик 1750. Он хотя бы в нечестных люксах выдает освещенность, а не в условных единицах АЦП.
что за идиосинкразия?
"Неприличными словами не выражацца!"
А топикстартеру посоветую таки датчик 1750. Он хотя бы в нечестных люксах выдает освещенность, а не в условных единицах АЦП.
Его и оформил. Сейчас поеду собирать все по городу...
LED Controller T1000S хороший для этой задачи. Правда, вы будете .... с arduino
в нечестных люксах выдает освещенность, а не в условных единицах АЦП.
А мне в попугаях больше нравится.
А мне в попугаях больше нравится.
Особенно в тушённых неплохо... Однако, я сейчас вот с ADPS9960 вожусь... Ну выдает он цифры какие-то, да, но как определить - отражают ли они действительность или просто Integration Time неудачно взят - вопрос, конечно. Люксы-то хоть с люксметром каким-нить можно паралелльно померять.
LED Controller T1000S хороший для этой задачи. Правда, вы будете .... с arduino
Да, похоже бы подошло... Но вы правы, я буду с arduino :)
Все купил, через пару часов буду пытатся что-то изваять.
Мозг кипит но что-то начинает получатся...
Заглядывая похоже в далекое будующее, регулировку яркости по датчику можно будет прикрутить в любое время?
Как я понимаю он грубо будет подставлять нужный параметр #define BRIGHTNESS по достижению определенных показателей.
Заглядывая похоже в далекое будующее, регулировку яркости по датчику можно будет прикрутить в любое время?
В принципе - да.