Светодиодная гирлянда для ёлки на базе WS2812

Опубликовал | 04.12.2017

Поздравительное

Первым делом, поздравляю всех с наступающими праздниками и Новым Годом!

Вступительное

В связи с наступающим Новым Годом из дальних углов была вытащена на свет новогодняя ёлка.
Многим должен быть известен тот факт, что ёлка хочет быть наряжена новогодними игрушками, гирляндами и прочей бижутерией. Ведь иначе это не ёлка, а непонятно что, да ещё и с иголками.

Исследовательское

С игрушками вроде проблем нет, а вот со светящейся гирляндой была одна небольшая сложность в связи с её полным отсутствием.
Эту оплошность было решено уладить покупкой подходящей светодиодной ленты с управлением от микроконтроллера что бы сделать процесс веселее.
После небольших исследований и взвешиваний разных вариантов выбор пал на RGB ленту с индивидуальным управлением каждого светодиода.

Подготовительное

На просторах интернета был найден подходящий вариант с RGB светодиодами. Особенность его в том, что каждый светодиод выполнен в отдельном корпусе, который защищён от влаги и пыли. Всё это хозяйство висит на достаточно длинном проводе и как раз подходит на роль гирлянды для ёлки.

Каждый светодиод выполнен в виде обычного RGB светодиода и 8-лаповой микросхемы, которая принимает управление в виде хитрого сигнала и зажигает соответственные цвета у светодиода.
Микросхемы не промаркирована, но очень похоже на WS2811.


Главная особенность этих светодиодов в том, что каждый из них имеет встроенный контроллер, который позволяет адресовать каждый светодиод индивидуально. То есть, каналы R/G/B и их яркость можно управлять на каждом светодиоде.
Единственный недостаток — такой лентой кто-то должен управлять. То есть, обязательно нужен управляющий контроллер. В данном случае в этой роли выступает недорогой микроконтроллер.
Как-то давным-давно я собирал нечто похожее на Teensy 3.1, но сейчас у меня этой Teensy нет (кстати, очень классный модуль), но есть ESP8266. По этой причине на ближайшем собрании и после короткого голосования управляющим контроллером был выбран ESP8266. Приятным бонусом можно получить управление по WiFi если есть желание. Спасибо, Espressif.

Железное

За вечер «прототип» был собран (в кавычках, потому что прототип, конечно же, будет финальным вариантом как обычно).
Для подключения светодиодной гирлянды были выбраны такие компоненты:

  • Гвоздь программы — светодиодная лента на базе WS2812
  • Управляющий модуль на базе ESP8266
  • Блок питания 12В, 2А
  • Понижающий DC-DC преобразователь на 5 вольт для питания ленты
  • Небольшая пластиковая коробка, что бы спрятать все «ужасы нашего городка»
  • Ответный 5.5mm/2.1mm разъём для блока питания с установкой внутри коробки
  • 4-контактный разъём для подсоединения светодиодной ленты

Получилась такая непритязательная конструкция:

Тут всё просто: слева — вход для питания, а справа — выход для подключения светодиодной ленты.

Если собирать с нуля, то по ценам получается примерно так:

Для ESP8266 модуля я планировал использовать модуль NodeMCU, но нашёл более компактный Wemos D1 Mini и поэтому использовал его. Вообще люблю почти все штуки от Wemos, прямо как для меня делают.

Блок питания взял от какого-то маршрутизатора или чего-то аналогичного. 12 вольт — достаточно популярное напряжение и поэтому найти было не проблема.

С понижающим DC-DC было требования, что бы можно было эффективно запитать всю ленту. Конкретно я использовал SD200 с переделкой под 5 вольт (выкинуть стабилитрон и напаять 12К резистор). Этот модуль может питать нагрузку до 3 Ампер.
Рассматривался более популярный вариант KIS-3R33S (3A) или KIW-3312S (2 * 5A), но я их сходу не нашёл у себя в закромах.

Все компоненты сложил в коробку, добавил немного проводов, залил тонким слоем олова и подождал пока остынет.
Получились такие «ужасы нашего городка»:
внутри коробки

Программное

Особо в программную часть вдаваться не буду, так как это выходит за рамки этого топика, но опишу вкратце если кому интересно.
Для программной части использовал проект esp-open-rtos (FreeRTOS на ESP8266) с библиотеками libesphttpd (веб сервер для обновления по воздуху) и ws2812_i2s (управление WS2812 по DMA).
Я реализовал достаточно простой эффект падающей цветной волны. Код выложил на GitHub.

Демонстрационное

Что тут вообще можно описать словами? Надо смотреть! Смотрите.
Хотя, на видео цвета и общая динамика плохо передаётся. Тогда только собирать самому.

Планирую купить 0 Добавить в избранное 0

(c) 2017 Источник материала

Рекламные ссылки