После переноса старого Эффектора на платформу 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 Загрузок)_
Здравствуйте GetChiper!
Скоро новый год и я опять достал ту самую гирлянду чтобы довести ее до ума.
На одном известном радиолюбительском сайте наткнулся на статью про RGB гирлянду и выяснил следующее: «Для каждого типа светодиода, необходимо проверить особенности его передачи данных, например для WS2812 используется последовательность GRB, а для WS2811 – RGB. Отличие между ними — это небольшая разница в таймингах и последовательность байтов. Для правильной работы гирлянды необходимо поменять местами красный и зеленый цвета.»
Вот оказывается в чем была причина не правильной работы моей гирлянды..
Зеленого цвета нет из-за того, что в палитре «пламя» я его не использую (с зеленым цветом смотрится неестественно)
Здравствуйте, для начала, выражаю огромную благодарность за проделанный труд, автору сия детище, дай Вам Бог здоровья, собрал проект,все работает, все здорово, у меня маленький вопрос, почему в эффектах нет зеленого цвета, только когда притягиваю к земле 6 strip_G, или радугу, а просто в звуковой визуализации или просто в эффектах его не наблюдаю? Ардуино НАНО на Атмеге328, Китайская лента DC5V 5 м WS2812B RGB индивидуально адресуемых Smart LED, ссылка на ленту
https://ru.aliexpress.com/item/DC5V-1m-4m-5m-WS2812B-Smart-led-pixel-strip-Black-White-PCB-30-60-144-leds/32337440906.html?spm=a2g0s.9042311.0.0.kCa47J
Тогда вот это устройство должно подойти http://www.getchip.net/posts/099-rasshirennoe-upravlenie-nagruzkami-pri-pomoshhi-ik-pulta-na-attiny2313/
Просто хочу сделать чтобы он через пульт по ик сигналу работал.
Тогда зачем контроллер? Собрать элементарный регулятор тока на lm317 (две детали) и всех делов!
Я перерыл весь Али и с питанием от 3.7 вольт ничего не нашел. А если мне нужен не эффектор, а просто регулятор яркости и включения/выкл
Устройство этой статьи и есть, по сути, контроллер. Правда для умных светодиодов.
Если нужен контроллер для обычных светодиодов, самый простой путь — купить у китайцев готовый контроллер с пультом.
Если хочется что-то собрать самому, то подобный устройству этой статьи есть и под обычные светодиоды http://www.getchip.net/posts/112-arduffector-ehffektor-za-5-minut-bez-payalnika-i-programmatora/
Добрый день. У меня вопрос от чайника.
Немного предыстории.
Я собираю «звездочки» из дерева и устанавливаю в них светодиоды, как ночник. Питаю от аккумулятора 18650, туда же ставлю microusb для зарядки этого аккумулятора и диммер обычный для регулировки яркости и включения/выключения. Сейчас хочу сделать диммер который будет от инфракрасного порта работать, ну и пультик на Али прикупить с 3 кнопками (вкл/выкл и яркость). Светодиоды обычные как с гирлянды белого или тёплого света.
Вопрос:
Как и из чего собрать контроллер? Если можно, то поподробнее. Я ещё раз повторю чайник, причем старый, не электрический)))
Со светильником будет все нормально — будет и с кнопок и с пульта (ну и со смартфона тоже) 😉
Я считаю управление светильником при помощи смартфона не совсем правильным, это либо на каждый светильник надо свой пульт, либо каждому члену семьи надо покупать смартфон, устанавливать туда программу управления светильником. А попробуй объяснить как управлять бабушке или ребенку. Светильник надо делать либо с помощью сенсорной клавиатуры, либо от ik пульта. Я его хотел поставить на балкон, вот и думал чтобы была функция типа бегущих огней.
Лента обновляется несколько десятков раз за секунду. В принципе можно подключится в любой момент.
По поводу светильника — я делаю отдельное устройство с управлением со смартфона.
Я же не смогу ленту менять местами для каждого случая. Цыкл выключать нельзя?
Можно ли сделать, чтобы при нажатии одной или нескольких кнопок загорался постоянно Белый свет! Получилось бы два в одном: светильник- световые эффекты.
Рисунок эффекта повторяется циклически и если куски будут соответствовать длине цикла — эффект будет непрерывным на всей ленте.
Но тогда не получиться общего эффекта.
Разделяете на куски и подключайте параллельно (можно физически даже не резать ленту — просто заводить сигнал управления в нужные места ленты.
Подскажите как увелисить количество светодиодов до 300 (10 метров)
В различных ардуиновских проектах упоминается 800 KHz WS2812 LEDs и 400 KHz WS2811 drivers. Правда там используются готовые библиотеки, может там про тайминги написано?
Модификации для WS2811 у повторявших конструкцию читателей работали (сам не могу проверить так как таких пикселей нет).
Может есть различия в WS2811 и WS2811S, но я не нашел даташита на последний.
Никакой информации не попадалось на глаза с таймингами для WS2811S ?
Пробовал, не помогло…
Попробуй модификации
http://www.forum.getchip.net/viewtopic.php?f=24&t=654&p=10994&hilit=Mod%23122#p10994
http://www.forum.getchip.net/viewtopic.php?f=24&t=783&p=14724&hilit=Mod%23122#p14724
в них изменены параметры сигналов для WS2811
Попробовал залить вот это https://www.parallax.com/downloads/ws2812b-rgb-led-module-arduino-code все три цвета кажет и красный тоже. Может там скорость маловата? Я в программировании к сожалению не силен..
Нужно тогда попробовать варьировать длительности периодов сигналов данных для WS2811S
Взял другую абсолютно новую ардуино, залил прошивку, результат такой же только зеленым и синим вперемешку моргает, иногда белым загорается. Значит красный подхватывает, микросхемы WS2811S китайские.
Подпаял резисторы на управляющие входа, ничего не изменилось..
Сделал модификацию http://www.forum.getchip.net/viewtopic.php?f=24&t=709
Я про эту программу спрашивал
Про какую программу идет речь?
Новая прошивка записывается поверх старой.
Если программа эффектов которая записывается из программы на ПК — то я даже не пробовал эту возможность — не уверен что оно осталось работать со старого варианта эффектора
Евгений.Скачал прошивку МОД#122 плавная настройка палитры.Снял кнопки R G B,установил потенциометры 4К7 на выводы А4 А6 А7 как на схеме.Включил-не регулируются никак новые потенциометры,все остальное работает.Перед этим стояла базовая прошивка.
При установке новой программы старая автоматически удаляется? Подскажите
Виталий
В этой конструкции такого не предусмотрено. Есть в планах на будущее.
dimaris
В программе ничего не менялось? Попробуй подтянуть все управляющие входа (4-12) к питанию (резисторами по 1 кОм)
Здравствуйте GetChiper!
Я тоже сделал этот эффектор на ардуине и ws2811, пикселы смп травил и паял. По началу испробова работоспособность на одном пикселе, все вроде работало, а когда доделал всю гирлянду то она перестала выдавать красный цвет, только синий и зеленый. В чем может быть причина?
А как добавить смену эффектов по звуку?
Не сочтите за рекламу ютуба, просто хвастаюсь, первый опыт с ардуино,
лента WS2812 122 эффекта
https://www.youtube.com/watch?v=R6EFN6L_3vI
Готово.
http://www.forum.getchip.net/viewtopic.php?f=24&t=783
Если заработает -с тебя видео )
если нет, в топике форуме пиши
завтра подправлю
Снял видео с дефектом положил на облако
https://cloud.mail.ru/public/W2DL/RMJ9GFVqr
Добрый день. Даташит на микросхему не нашёл.Зато нашёл китайский контроллер , который отлично работает с лентой.Снял с этого контроллера протокол.
Китаец T0H-0.44us , T0L-0.975us ; T1H-0.990us , T1L-0.4us
Ваша прошивка Ws2811 T0H-0.5us ,T0L-2us ;T1H-1.21us,T1L-1.29us
Можно подправить Вашу прошивку? Или скажите сколько куда нопов ,я сам поправлю…..
Видео на ютуб а ссылку сюда.
Попробуй даташит найти на GS1903 — иначе долго можно переделывать …
Да лента у меня на 8 ногой микросхеме GS1903(хотя китайцы говорят Ws2811)?
как и где отправить видео?
залил вашу прошивку ws2811. После вкл. моргает светодиод 4 раза(лента не светит.
Нажимаю кнопки 2или 3 загораются произвольные статические «картинки»(иногда на всю ленту иногда на несколько пикселей) на резисторы не реагирует.
Привет!
Уже делал модификацию
http://www.forum.getchip.net/viewtopic.php?f=24&t=654&hilit=mod%23122
только опробовать не получилость
Добрый день. Собрал эффектор для умной ленты. У меня лента на чипе Ws2811 и походу работает не так…..
Цвета вроде есть но постоянно лента моргает…Я так понимаю надо поправить «процедуру передачи данных ленте»
Так вот вопрос ? Сколько «нопов» и куда поставить? (пытался посчитать ваши нопы ,но не как не получаются значения из даташита) . Вот время для 2811
T0H-0.5 us T0L-2us T1H- 1.2us T1L- 1.3us
ПОДСКАЖИТЕ ПОЖАЛУЙСТА СКОЛЬКО И КУДА ПОСТАВИТЬ NOP?
Можно пробовать любой ИК-приемник
по дальности приема будет видно подойдет или нет
отлично. и ещё вопрос, вместо TSOP3836 можно использовать VS18388 ?????
Любая ардуина подойдет с мегой328 на борту
Приветствую. Возможно ли использовать Pro mini на 328меге? Собираю матрицу 9х28.
Уже в новых устройствах дребезг подавляется — как дойдут руки и здесь подправлю.
А в чём проблема подавления дребезга? Можно ведь после отпускания Learn просто подождать с пол секунды, и только тогда начать слушать команды. Для пущего эффекту можно ещё светодиодом мигнуть, типа можно жать пульт.
Да! все увидел, все нашел. Ничего не понимаю, буду разбираться! )
Запросто!
Исходник находится в архиве 122-Effector-WS2812.zip
открывается вот этой штукой http://algrom.net/russian.html