После переноса старого Эффектора на платформу Arduino (ATmega328P) стало возможно развивать проект дальше. И вот теперь к Эффектору я подключил умную ленту (NeoPixels) WS2812.
При этом новый Эффектор WS2812 не просто выводит свои эффекты на умную ленту вместо обычных светодиодов, но еще и обзавелся внушительным количеством нового функционала.
Новые плюшки:
— переделан алгоритм формирования уровней, теперь яркость каналов имеет 255 градаций (по сравнению с 8 в предыдущем варианте)
— переделаны встроенные эффекты, теперь они стали плавней
— количество встроенных эффектов увеличено с 8 до 16.
Правда из программы управления Эффектор-12 доступны, как и в предыдущем варианте, только 8 (не стал переделывать программу, дабы осталась совместимость со всеми вариантами Эффекторов), но с самого Эффектора и пульта можно переключать все 16
— как и в предыдущем Эффекторе осталось управление от ИК-пульта, но добавились новые команды управления, связанные с умной лентой
— так как умная лента цветная, то для формирования разных цветов от монохромных сигналов уровня каналов, были задействованы палитры цветов. Можно выбрать одну из 8 палитр (включая динамическую палитру переливающихся цветов)
— теперь Эффектор может быть участником сети ЗиЧип как сателлит
Эффектор может выдавать информацию о каналах для других сателлитов или управляться другим устройством в сети. Этим я планирую воспользоваться для апдейта моей супергирлянды, подружив ее с программой Эффектор 12 (об этом будет отдельная статья)
— количество отображаемых пикселей на умной ленте может быть произвольным, вплоть до 255 пикселей
— можно регулировать общую яркость ленты
— рисунок 12 каналов не просто располагается на 12 пикселях ленты, а может быть масштабирован (растянут) на любое количество пикселей
— рисунок на ленте длинней чем12 пикселей циклически повторяется
— большинство формируемых эффектов являются циклическими и на ленте создается непрерывная картинка эффекта (невозможно определить границы области эффекта)
— для не циклических эффектов предусмотрен зеркальный вариант повторения каналов, что создает непрерывную картинку и в этом случае
— рисунок по ленте можно сдвигать на произвольное количество пикселей
— линии управления (те, к которым подключены кнопки) реализованы по принципу «монтажного ИЛИ» — это значит, что, управляя устройством посредством пульта, можно получать на этих линиях сигналы управления (прижатия к земле) которые можно использовать, например, для управления своими устройствами.
Как это выглядит вживую.
Как видно на видео, по сравнению с предыдущим Arduffector-ом, у которого все эффекты стремительные и резкие, новый Эффектор выдает плавную и неспешную картинку эффектов. Вообще, эта модификация Эффектора прошла у меня под девизом «Smooth».
Сборка
Так как устройство работает на готовой плате Arduino Nano (или Uno), собирать/паять ничего особо и не придется. Достаточно подключить к Ардуине умную ленту (к выводу 13), залить прошивку (через стандартный ардуиновский USB шнур) и устройство заработает.
Если у Вас количество пикселей WS2812 не превышает 2-3 десятка, то и блока питания отдельного не понадобится – все будет работать от USB-порта. Если лента длинная — USB-порт не сможет обеспечить нужный ток. В этом случае понадобится внешний мощный блок питания 5 вольт.
Для демонстрационного ролика на Ютубе я собрал на макетке необходимый мне минимум и уложил ленту в пластиковый кабельный канал (он подсвечиваясь изнутри создает связную картинку скрывая свечение отдельных пикселей).
Если хотите получить от устройства большего – добавляете переменные резисторы, кнопки и TSOP т.д.
Ленту на пробу мне предоставил магазин DiyLab.com.ua Если Вам понравится устройство и Вы захотите его повторить, то ленту в Украине можно приобрести в этом-же магазине — ссылка на ленты. Для России ее можно приобрести еще у одного моего партнера TIXER.RU (обещались в ближайшее время пополнить ассортимент).
Описание работы
Работает устройство подобно своему предшественнику, но есть и нововведения. Пройдусь по органам управления.
Кнопки:
– 0 All Off – отключает все эффекты и гасит ленту
– 1 EE-series – запускает последовательность эффектов сохраненных в EEPROM (их всего 4 и их можно изменять из программы Эффектор-12)
– 2 Flash-series — запускает случайную последовательность эффектов встроенных в устройство (их 16, изменить их нельзя, период смены эффекта 10 секунд)
– 3 Next – запускает следующий эффект, при этом он остается работать постоянно, кроме того, после перезапуска Эффектора этот эффект продолжит работать
– 4 strip_Mirror – при удержании на «земле» этой линии, 12 каналов Эффектора начинают располагаться на ленте переодично-зеркально (т.е. A-L,L-A,A-L,…), вместо периодичного расположения по умолчанию (т.е. A-L,A-L,A-L,…)
– 5 strip_R, 6 strip_G, 7 strip_B – эти три линии задают текущую палитру, в которой отображается рисунок эффектов на ленте
в варианте «радуга» цвет постоянно циклически меняется
– 8 strip_IR Out — при удержании этой линии прижатой к «земле» начинают передаваться в ИК-сеть (излучатель IR-LED) информация о состоянии каналов (в отдельной статье об этом будет подробней).
Новым способом управления в этом устройстве являются аналоговые входа (АЦП). Посредством напряжения на них (в пределах 0 – 5 вольт) можно изменять картинку, отображаемую на ленте. Линии АЦП подтянуты к 5 вольтам, то есть если к линии ничего не подключено, устройство воспринимает это как максимальный уровень.
– strip_Pixels Number – количество пикселей в ленте, воспроизводящих картинку (5 вольт – 255шт., 0 – 0)
– strip_Scale – масштабирование картинки на ленте (5 вольт – масштаб 1канал:1пиксель, 0 – на всей ленте проецируется 1 канал)
– strip_Offset – смещение рисунка по ленте
– strip_Bright – общая яркость свечения ленты (5 вольт – максимум, 0 – минимум)
Управление посредством уровня напряжения открывает новые возможности использования устройства. Например, если подключить к входу strip_Pixels Number аналоговый сигнал с усилителя, то мы получим линейку-индикатор уровня. Еще, задействовав палитру огня и подключив к strip_Bright сигнал с градусника можно визуализировать температуру и т.д.
Управление устройством посредством бытового пульта.
Для управления устройством подойдет любой бытовой пульт (возможно, будут проблемы со специфическими пультами с обратной связью, например, как у пульта от кондиционера).
Для изучения кнопок необходимо:
1 –нажать (и удерживать) кнопку «Learn»
2 – сбросить Ардуину штанной кнопкой сброса (при этом индикаторный светодиод LED должен несколько раз моргнуть)
3 – отпустить кнопку «Learn».
Из-за того, что в данном алгоритме невозможно организовать подавление дребезга контактов кнопки «Learn», нужно контролировать момент отпускания кнопки. Если в этот момент моргнет индикаторный светодиод LED, то процедуру обучения нужно начать заново (дребезг контактов создает сигнал подобный сигналу пульта, который и запоминается как первая кнопка)
4 – последовательно нажать на пульту 9 кнопок в очередности функций (кнопок устройства 0 All Off … 8 strip_IR Out)
5 – после этого устройство автоматически начинает работать в штатном режиме
Каждое нажатие кнопки на пульте будет подтверждаться индикаторным светодиодом.
Если какая либо кнопка не нужна в устройстве (например, 8 strip_IR Out советую пока не задействовать), то в процессе ее изучения нужно нажимать ранее изученную клавишу.
Как я уже писал выше, новой особенностью этого устройства является то, что входа управления для кнопок, одновременно являются еще и выходами, если управление осуществляется от пульта. При нажатии на кнопку пульта, соответствующая линия управления будет прижата к земле. Это можно использовать для контроля нажатий кнопок пульта или управления Вашими устройствами. Линии от «0 All Off» до «3 Next» при нажатии кнопок на пульту будут прижаты к земле кратковременно, а линии от «4 strip_Mirror» до «8 strip_IR Out» работают как триггер (раз нажал – прижалась, еще раз нажал – отпустилась)
Управление устройством посредством программы Эффектор-12.
Несмотря не значительные изменения, устройство осталось совместимым с программой Эффектор-12 (за исключением некоторых нюансов, связанных с палитрами и дополнительным функционалом). Встроенный в Ардуину USB-UART, позволяет без каких либо проблем, подключить устройство к компьютеру и управлять им. Напомню, что программа управления умеет управлять каналами и эффектами устройства в ручном режиме, визуализировать музыку (с возможностью самостоятельно создавать различные способы визуализации), выполнять различные действия по времени и т.д. Подробней читайте в соответствующей статье.
122-Effector-WS28121.zip (16167 Загрузок)_
Добрый день.
Может ли кто мне подсказать последовательно и если можно на пальцах (картинках) Как залить прошивку ?
Какие файлы использовать , при работе с AVRDude ?
Вопросы звучат понимаю, некорректно, приношу свои извинения.
С крышкой.
Белый кабельный канал прекрасно рассеивает свет от пикселей, создавая непрерывную картинку.
Сделал. Все получилось. Спасибо!
Еще вопрос: Вы написали, что все установили в кабельный канал. Канал без крышки? Ведь он не прозрачный.
Если ее закоротить — режим будет работать постоянно
При включении нужно каждый раз нажимать эту кнопку, или режим запоминается?
Происходит. Переключатель 1 и 2 выбирают вариант серии эффектов.
Подскажите, в автоматическом режиме смена эффектов не происходит?
Привет!
Программа управления эффектором должна «увидеть» источник звука из системы
Честно говоря еще не пробовал на 10ке это делать, но вроде по отзывам работало.
Посмотри здесь — есть рекомендации для вин7 и 8
http://www.getchip.net/posts/113-obnovlenie-programmy-ehffektor-12-skhemy-svetomuzyki-i-virtualnye-svetilniki/
Ленты можно комбинировать различными способами — тут проблем не возникнет
Респект бро! Есть такая тем делаю себе студию у меня звуковая карта audigy 2 с неё выводится звук на блютуз трансмиттер с него на колонки. Это так сделано чтобы задержки не было с синтезатора и гитары т.к. если просто на блютуз то идёт через direct sound и обработку с операционной системы получается слышимая задержка. А программа в которой пишу музыку на звуковую карту выводит звук напрямую через ASIO драйвер. Суть в том, что всё стараюсь делать без проводов даже гитара через блютуз и мидиклавиатура через роутер и по вайфай, оставил только кабель 220в с катушкой (из пылесоса) до компа и всё . Ещё есть наушники блютуз. Вот я не нашёл по тексту откуда берется звук для анализа спектра в эффектор? Со звуковухи или откуда как запараллелить чтобы и с блютуз и со звуковухи и любого устройства? Или идёт с того которое в системе по умолчанию? А если ASIO драйвер то будет работать? И ещё хотел бы сделать себе такую систему 2 ленты длиной по 4.6м и 2 по 3.4м реально? Или к примеру квадрат с эффектом тоннеля 2х2 м. какую ленту брать? количество диодов ограничено или нет? И можно на плату подать питание отдельное и вывод на ардуино сделать без кабеля через блютуз или вайфай и как это сделать? подскажи будь любезен, очень надо.
Прошивка делалась для нано 328.
На 168 не пробовалась — нет в наличии такой платы.
После заливки файла в ардуина нечего не происходит . Все как в инструкции выход на ленту 13 пин через резистор . Плата нано 168 .
Для обучения они не нужны.
GetChiper, спасибо, так понятнее. И еще — остальные кнопки монтировать для обучения пульта не обязательно?
Learn — это кнопка на устройстве — посмотрите вторую схему. Она устанавливается на ножках ИК-приемника.
GetChiper , а теперь еще раз — что за кнопка такая? Learn? на пульте такой нет. Понимаю, что звучит глупо, но представьте, что вы беседуете с человеком «в танке»)
distress
Konstantin
Привет!
Нужно делать все как написано в статье
1 –нажать (и удерживать) кнопку «Learn»
2 – сбросить Ардуину штанной кнопкой сброса (при этом индикаторный светодиод LED должен несколько раз моргнуть)
3 – отпустить кнопку «Learn».
4 – последовательно нажать на пульту 9 кнопок в очередности функций (кнопок устройства 0 All Off … 8 strip_IR Out) Каждое нажатие кнопки на пульте будет подтверждаться индикаторным светодиодом.
5 – после этого устройство автоматически начинает работать в штатном режиме
После этой процедуры нажатие кнопок на пульту будет иметь аналогичное действия кнопкам на устройстве.
Здравствуйте! При обучении Ардуино пультом нужно нажимать кнопки только на пульте? Или соответственно нужно нажимать и на Ардуино?
GetChiper , а что должно произойти? подключил, лента светится, диод на ИК-приемнике срабатывает на нажатие пульта и всё
Подключите как на видео, только один ИК-приемник и попробуйте.
GetChiper, пульт без ленты с датчиком реагирует, проверял с помощью IRemote. Потом подключаю к второй ноге ардуины кнопку (через резистор 1кОм) и ИК-приемник и на этом всё. Подозреваю что схему не так собираю, потому что светодиод на ик-приемнике (1838b) постоянно светится. Нет ли возможности сделать подробное фото с подключением на макетке, то что в теме, мне не очень помогло?
Привет!
Если все делать как написано в разделе «Управление устройством посредством бытового пульта.» — что происходит в процессе?
Доброго времени суток! Может кто-то подробней объяснить человеку далекому от вопроса суть шаманств с подключением кнопок и ИК-приемника? Ленту подключил, всё работает, но как подружить ее с пультом? что за кнопка Learn? почему на моей Uno при нажатии reset не мигает диод… слишком много вопросов и ни одного ответа… Заранее спасибо!
Почему 6-й? Следующий эффект — это 7-й пин на ардуине?
Добрый день. Установил прошивку, подключил ленту на 120 светодиодов, работает, но только один режим. Замыкание 6-го пина ни на что не влияет. Пробовал перешивать и на другую плату, на ATmega328P — эффект аналогичен. Подскажите, в чем может быть дело ? Никакой дополнительной обвязки пока не подключал.
Нога 3 предназначена для будущей реализации передачи информации для ленты по ИК-каналу. Это чтобы с компьютером была дешёвая связь без проводов. (что я позже и реализовал http://www.getchip.net/posts/124-ik-izluchatel-dlya-upravleniya-ustrojjstvami-po-ik-kanalu/ , но в виду особенностей TSOP и слишком плотного потока данных, связь получилась на очень короткое расстояние)
— ничего на эту ногу навешивать не нужно.
По поводу TSOP4836 — можно пробовать ставить разные приемники
Можно ли заменить TSOP4836 на другой приёмник? Они различаются рабочими частотами и расположением выводов. Или схема настроена только на работу с частотой TSOP4836?
Здравствуйте, мне не понятно назначение цепи от ноги №3 Ардуино, то есть зачем нужен излучатель IR Led? Ведь для управления от пульта нужен только приёмник(TSOP4836). И, если эта цепь необходима, то куда должен «смотреть» IR Led?
Привет!
Да, все должно заработать.
Всем добрый день! С прошедшими вас праздниками, С новым годом и Рождеством! Скажите пожалуйста, возможно ли реализовать такое имея в наличии: С загрузчик Nano 3.0 контроллер совместим для Arduino Nano электронного DIY Kit CH340 драйвера usb (без кабеля) ATMEGA328P
http://s.aliexpress.com/uYzA7biU?fromSns=Копировать ссылку
(from AliExpress Android) и светодиодную ленту WS2812 на 5 вольт 144 диода на метр, ее у меня 4, метра, использовать хотелось бы где 570 диодов. И применив бок питания 4V 60A 300W. Заранее спасибо за ответ, я, признаться, в этом деле новичок, и мне было бы приятно, если бы вы ответили подробно.
Спасибо.
Фьюзы должны быть аналогичные ардуиновским
Можно посмотреть здесь http://www.getchip.net/posts/104-proshivka-lyubogo-hex-fajjla-v-arduino-pri-pomoshhi-shtatnogo-zagruzchika-bootloader/
А какие должны быть фьюзы?
Собрал на ардуине. Гирлянда очень понравилась. Есть пару мег 168, хочу на ней собрать.
Теоретически должно заработать и так.
Мега168 — это Ардуина? Если нет, тогда фьюзы нужно не забыть установить как у ардуины.
Менять что-то нужно?
Влезет.
Здравствуйте. В 168мегу влезет эфектор?
Для антидребезга кнопок можно применить библиотеку Bounce2
Пульты поддерживаются разные (не зависит от типа протокола), разве что какие интелектуальные не подойдут.
Среда программирования http://algrom.net/russian.html
Здравствуйте! Подскажите в какой программе можно отредактировать под себя прошивку, и в какой работали вы меня интересует смогу ли я под свой пульт переделать.
добрый вечер,
а может кто то этот вариант в хек перекинуть
https://www.hackster.io/bigboystoys13/led-emergency-lights-using-ws2812-rgb-led-module-9800de
спасибо
to Dmitry
Зачем осциллограмма? Я уже про это писал http://www.getchip.net/posts/119-umnye-svetodiody-ws2812b-neopixels/
И да, хоть даташит и нормирует длительность низкого уровня в сигнале, но по факту он может варьироваться в очень больших пределах.
to Igo
— eeprom заливать не нужно
— фьюзы ардуиновские менять не нужно
— в идеале просто заливается прошивка при помощи родного загрузчика (например вот этим http://www.getchip.net/gcmanager/) — и все
По поводу того что слетела прошивка — этого у меня еще не было (разве что умирал МК). Мог еепром слетать, но для эффектов и работы в целом он не используется.
правильные ?
Fuses OK (E:05, H:DE, L:FF)
Добрый день, купил две желизяки
hhttps://ru.aliexpress.com/item/Free-Shipping-Glitcher-V1-with-Big-IC-for-x360-high-quality-30PCS-LOT/1665783181.html?spm=a2g0s.9042311.0.0.d0WoDF
ttps://ru.aliexpress.com/item/Tenstar-8-WS2812-5050-RGB/32832958662.html?spm=a2g0s.9042311.0.0.d0WoDF
залил прошивку + епром работает моргает
включил — выключил — включил ( из юсб ) не работает
Вы могли бы дать ссылку на осцилограмму с логического анализатора передачи данных в ленту? Надо полагать, что определяющими являются длительности импульсов высокого уровня, т.к. между посылками байтов будут задержки, т.е. длительность импульсов низкого уровня нет возможности жестко нормировать?
Можно просто разделить ленты на равные части и включить их в параллель.
У каждого куска должен быть свой 300 Ом резистор на DIN, а все резисторы должны подключатся к выходу ардуины.
Имеется лента на 300 диодов. но работают не все, а как предполагаю 255
Подскажите. Как можно изменить количество пикселей на 300 штук?
Да, на UNO тоже выход 13.
Резистор 300 Ом ставить не обязательно (но желательно — он защитный).
WS2811 могут не заработать так как у них протокол немного отличается от WS2812
Скажите пожалуйста, на UNO также 13 выход? Подключаю ws2811 ничего не происходит. Резистор 300 Ом обязателен?