вторник, 11 декабря 2018 г.

RGB гирлянда на Arduino своими руками


Доброго времени суток, товарищи!
В канун прошлого нового года, моя супруга намекнула что ей надоела наша старая одноцветная гирлянда. Я сразу же вспомнил виденный мною когда-то проект гирлянды на Arduino, и пообещал что мы что-нибудь обязательно придумаем :) Ждать обещанного пришлось почти год ))))






За основу я взял проект ArWs2812. Большое спасибо автору проекта за проделанную работу!


Что использовалось для проекта:
Лента представляет из себя два отрезка по 50 модулей (во влагостойком исполнении). Соединяются между собой 3х пиновым разъемом, так же с каждого конца есть провода для подачи дополнительного питания. 
Каждый модуль это RGB светодиод с контроллером WS2811, яркость светодиодов, подключенных к WS2811, управляется последовательным цифровым кодом, который формируется микроконтроллером. Данные при этом передаются всего лишь по 1 проводу. Цифровой сигнал управления проходит сквозь микросхему WS2811, так что несколько микросхем WS2811 могут быть объединены в длинную цепочку с сохранением возможности управлять каждым светодиодом в цепочке по отдельности. 
В нашем случае модули соединены трехжильным проводом, цвет которого можно выбрать при заказе, расстояние между модулями 10 см. На странице продавца нет информации о сечении проводов, изоляция из ПВХ и пахнет очень резко, я проветривал ее в кладовке дня 4 наверное. 
По скольку располагать блок питания под елкой не хотелось, а провода на концах ленты тоже всего по 10 см, приобрел на али 5 метров трехжильного провода сечением 18AWG. К сожалению не нашел зеленого цвета, по этому заказал еще нейлоновую оплетку для провода. 
3. Оплетка для кабеля 468,51 руб (помимо эстетической миссии так же дополнительно защищает питающие и управляющий провод от клыков домашних питомцев) 
4. Ардуино нано 150,39 руб
Блок питания выбирал так:
Питаются модули от напряжения 5 В, заявленное потребление тока 60 мА, но я рассчитывал исходя из потребления 50 мА т.к. на полную яркость белым светом все 100 диодов зажигать мы не будем. 50mA * 100 штук = 5000 mA = 5 ампер. По таким параметрам и подбирал БП, а т.к. хотел спрятать его в корпус с ардуиной то искал в соответствующем исполнении. 
6. 3D печать корпуса примерно 250 руб (корпус «проектировался» в OpenScad, вот ссылка на оригинальный проект параметрического корпуса для самоделок) 

С корпусом все просто. Качаем OpenScad, качаем с www.thingiverse.com файл корпуса, открываете его в OpenScad, меняете параметры (размеры, вентиляционные щели, скругления) по своему вкусу и экспортируете stl файлы. Их уже печатаете где больше нравится.

Раньше можно было прямо на сингеверс в веб приложении «кастомайзер» настроить модель, но оно давно уже не работает отчего-то.



UPD.
Появилась новая версия параметрического корпуса, теперь можно делать панели с отверстиями для крутилок и прочего такого.


Схема подключения проще некуда:








Управляющий сигнал уходит на средний провод гирлянды с пина D2, но в принципе можно назначить любой другой, только нужно не забыть поправить в прошивке значение "#define PIN 2" (в файле «anim.h», строка №6) на нужный нам.

Я не хотел делать все навесным монтажом, и давно хотел попробовать сервис разработки и изготовления печатных плат, так что заказал плату.

Итого, плату с адруиной и блок питания я поместил в корпус напечатанный на 3D принтере. Питание от розетки подал на блок питания кабелем с вилкой от компьютера, с БП подал питание на плату с ардуиной. С этой платы питание и управляющий сигнал пошел на гирлянду. На проводах гирлянды «минусовый провод» маркирован, так что ошибиться при монтаже достаточно сложно, нужно лишь помнить что центральный провод это провод управления.




Нормальных кабельных выводов я в оффлайне не нашел, по этому в ход пошли какие-то гильзы из леруа. Крепил все на термоклей + силиконовые ножки на низ корпуса.

Просадка напряжения на конце гирлянды существенная, напряжение падает до 3,8 В. Однако заметной на глаз разницы в яркости диодов я не заметил и по этому забил. К тому же уж очень не хотелось тащить провода питания к концу гирлянды.

Автор проекта реализовал управление всей этой радостью по bluetooth и даже написал приложение в котором можно выбирать анимации и цветовые палитры. Но автор использовал модуль HC-05 а он не совместим с iOS устройствами которые водятся у нас дома. В теории можно заменить модуль на HM-10 и модифицировать прошивку, тогда можно будет посылать на ардуину команды из BT терминала с iPhone. Но эту задачу я пока оставлю в планах на будущее.

Общая длинна гирлянды получилась +- 10м сама гирлянда + 1,5 метра подводящие провода. На елку ростом 170 см ее как раз хватает.

По программной части мне добавить особенно нечего, все очень хорошо описано автором оригинального проекта тут.

Не забудьте указать основные параметры в файле «anim.h»


#define PIN 2 // WS2812 pin number
#define LEDS 100 // number of LEDs in the strip
#define BRIGHTNESS 256// brightness adjustment, up to 256

В не управляемом варианте, как у меня, ардуина случайным образом перебирает все анимации (9 штук) и так же случайно выбирает для них цветовые палитры (7 штук). Что дает достаточно большое разнообразие и выглядит красиво.

Да, гирлянда запитана от WiFI розетки сяоим :) Так что номинально она тоже управляемая ))))))

В итоге получилось не очень бюджетно, несколько дороже чем можно было бы купить в офлайне. Однако то что я видел в магазинах было как-то скучно что ли. А эта гирлянда действительно «радует» :)

Всех с наступающим Вас и всех благ! :)

Комментариев нет:

Отправить комментарий