Новогодняя снежинка на WS2812B получилась одним из самых повторяемых моих проектов.
Поэтому решил написать еще один небольшой обзорчик по технологии изготовления такой снежинки.
Компоненты
Все компоненты подбирались на Алиэкспресс по соображениям минимальных затрат и максимально простого монтажа.
- Arduino Pro Mini на Atmega168P — $1.3
- Светодиодная лента WS2812B 60LED/м 0.5м — $.5.25 (при покупке 5м)
- USB разъем типа А — $0.16 (при покупке 10 шт)
Контроллер
Практически самый дешевый из Ардуин. По цене соизмерим только DigiSpark с Attiny85
Это китайский клон Arduino Pro Mini с более слабой микросхемой Atmega 168PA. В отличие от более навороченной Atmega328P, 168-й имеет вдвое меньшее ОЗУ (1Кб вместо 2-х) и ПЗУ под программу (16Кб вместо 32Кб). Еще меньше размеры и стоимость, а даташит у них общий. Дизайн платы немного отличается от продающихся сейчас Pro Mini, и кварц там стоит огромный, но в целом платы вполне годные и очень привлекательные по цене.
Светодиодная лента на WS2812B
Использование ленты в данном проекте значительно сократило трудоемкость и стоимость (если учесть все материалы) свето-динамической снежинки.
Разъемы USB
Очень удобные для пайки разъемы USB Type A
Конструкция снежинки
Корпус изготавливается из двух одинаковых частей, изготовленных из акрила методом лазерной резки. Конечно же подойдут и другие технологии резки — фрезерование и даже обтачивание напильником.
Если нужны чертежи жмем сюда
Чертеж снежинки (три типа) в формате Corel DrawЧертеж снежинки (три типа) в формате SVG
Сборка снежинки
Схема очень простая — шесть полосок ленты по 5-10 светодиодов. И контроллер
Штырьки к контроллеру припаиваем только для программирования. И то монтируем их так, чтобы высота была минимальная. Этой высотой будет определяться зазор между двумя половинками корпуса снежинки.
Перед тем как приклеивать контроллер, заливаем скетч снежинки при помощи любого USB/TTLконвертера. При программирование в Arduino IDE выбираем Arduino Pro Mini 5V Atmega168
Сам скетч можно взять здесь
Скетч снежинки Arduino/WS2812
От ленты отрезаем шесть полосок по пять светодиодов
Паяем входными контактами к центру (определяется стрелочками на ленте). Для монтажа я использовал провода из кабеля UTP, обрезков которых у меня скопилось великое множество.
Припаиваем три проводка к контроллеру — земля, питание и выход на светодиоды. Полоски ленты приклеиваем на скотч, который уже есть с обратной стороны, контроллер на полоску двухстороннего скотча. Главным апгрейтом контроллера является заклеивание светодиода питания изолентой, чтобы не мешал световым эффектом. Хотя нужно отдать должное приобретенным контроллерам — светодиод питания там достаточно тусклый, чего не скажешь о ярком синем светодиоде на 13 выводе.
Припаиваем провод нужной длины к USB разъемом.
Теперь можно соединять половинки корпуса между собой. Для этого я использовал винты с полукруглой головкой M4 длиной 12/16мм и декоративные гайки-колпачки.
Что получилось
Ну что еще сказать, на маленькую снежинку уходит ровно 0.5м ленты. Потребляет она при данных световых эффектах 270мА. Большая 510мА. Мой ноутбук вполне тянет по USB все разом. (Благо управление током зарядки и защита в нем есть)
В будущем году я планирую проапгрейтить все снежинки — добавить ИК-приемник, для того чтобы можно было управлять эффектами с любого ИК-пульта, ну и написать новых световых эффектов.
Следующие же подобные устройства буду делать на ESP8266. (Цена у них теперь соизмеримая с Ардуино — около $2) Можно будет управлять снежинкой прямо со смартфона и загружать эффекты из интернета. А также координировать работу снежинок единой программой в системе «Умный Новый год» ))) Ну и конечно, лазерная резка располагает разнообразию форм.
https://youtu.be/Ik9OiUAzEwQ
Где лазерную резку делаете?
В Перми http://laserperm.ru
Очень круто! А какое потребление тока, когда все светодиоды горят?
При моих эффектах до 0.27А снежинка на 5 светодиодов в луче
Если зажечь все светодиоды с максимальной яркостью, то получится 0.06A * 30 = 1.8A
столкнулся со странным эффектом при метровой ленте — сильные помехи по питанию
ик-приемник подключенный к ардуине выдает случайные коды, если отключить ленту — все хорошо
блоки питания включал разные, включая лабораторный с высоким качеством стабилизации
конденсатор подключенный возле ленты емкостью 2000 мкФ не дал результатов
что можно предпринять?
Лента и контроллер на одном блоке питания
На ленте кондеров нет?
Кондеры должны быть 0.1мКф желательно керамика. Электролиты высокую частоту пропускают.
Можно прямо к контроллеру подпаять.
ИК приемник работает по прерыванию, WS2812 тоже. Видимо в момент чтения кода ИК происходит обновление WS2812.
Можно попробовать блокировать при помощи глобальной переменной обновление WS2812 при получении первого бита на приемник ИК
Как? Пока еще не разбирался.
Выяснил в чем беда …
библиотека неопиксель блокирует все прерывания — причем там дефайнами eps выпилен — но написано что работать может нестабильно
так что там проблемы быудут не только с ик — а со всем чему требуются прерывания.
Включение прерываний — приводит к паралитическому поведению ленты …
Ловить в цикле сигнал с ИК самому. Если что-то прилетело, останавливать эффект и включать обработку кода. Первый код с пульта сбойнет, второй нормально обработается.
нет, так не выйдет, шумов очень много на ик приемник приходит
спасибо
кондеры на ленте стоят — стандартная лента
Вам бы присмотреться к эффектам, которые на видео, цены бы вашей снежинке не было бы!
http://www.youtube.com/watch?v=yli5DNovclA
На будущий год так прошью все
Ув.Автор! А можно в коде прокомментировать весь код, хочется разобраться
Уважаемый Автор. Близится следующий Новый Год. По проекту «снежинка» новостей никаких? Хочется новых эффектов 🙂
Едут контроллеры, лента и пр. Есть масса задумок по изменению конструкции и программы
Здравствуйте! Собираю пятилучевую звезду на елку на основе Вашего проекта, с небольшими изменениями, в связи с чем появилось несколько вопросов.
1. Планируете ли добавить эффектов?
2. Как насчет переключения эффектов с пульта ДУ, стоит ли закупать комплектующие, для его реализации, или ограничиться существующей конструкцией, чтобы успеть до НГ (с Алика в мой регион доставка больше месяца)?
С уважением, Relic.
З.Ы. Собираем звездочку с сыном — второклассником, ребенок в восторге 🙂
На этот год немного изменил формфактор. Собираю «елочки», «фонарики» и «метеоры»
Там добавил один интересный эффект радужной волны
Сейчас готовлю несколько статей. Простенькие эффекты запустил даже под ATtiny13
Сделал на повышающем стабилизаторе BL8530. Елочка с 8-ю WS2812 на одном ААА аккумуляторе проработала 2ч. На 2-х — 5 часов.
По поводу управления — сделал на микрофоне по хлопку/двойному хлопку. Но сигнал с микрофона, подключенного напрямую к анлоговому входу слабоват. Хорошо получилось на ATtiny85 (можно взять Digi Spark). У этих контроллеров можно включить на аналоговый вход встроенный усилитель. У ATmega328 его нет.
Так что если хотите покупайте электрентные микрофоны. DigiSpark, кстати, сегодня на распродаже можно купить меньше $1
http://ali.pub/vrshz
Жаль распродажа быстро закончилась )
Нахапал всякой мелочевки, авось пригодится в будущем…
Ждем новых статей от Вас.
P.S. От управления с пульта решил отказаться, понравилась идея управления с использованием микрофона, спасибо за мысль.
Добрый день!
Алексей, на ESP8266 получилось загружать эффекты? Хотел сделать с вращением лучей, спирали цветные, у Ардуины памяти не хватает. 🙁 Или у меня мозгов.
Tiny 13 тоже на wiring программируете?
На ESP8266 пошла такая библиотека
https://github.com/Makuna/NeoPixelBus
ATtiny13 программирую в Arduino IDE но на С++, то есть без setup()/loop() сразу с main(). И без всяких там digitalWrite()
Для тинек взял эту библиотеку
https://github.com/cpldcpu/light_ws2812
Она и для Мег тоже годится. Может и памяти меньше возьмет, чем NeoPixel от Adafruit
Спасибо!
Буду пробовать!
Вот и моя елочка со снежинкой, правда снежинка на видео в эпизодах, просто видео про экрани эфекты я другие туда закинул в этом году. https://www.youtube.com/watch?v=EUuRk79mV6I&feature=youtu.be
Здравствуйте. хотел по вашему коду запилить елочные вертикальные гирлянды 6 шт по 49 светодиодов, но при большом количестве начинают мерцать и гаснуть ленты. в чем может быть проблема?
Скорее всего в питании
Посмотрите, как напряжение просаживается при нагрузке на ленте