Представляю Вашему вниманию собранное мною устройство «Метеор» или, по другому – «Сосульки» :). Устройство управляет двенадцатью «умными» лентами WS2812B, запуская в случайном порядке по ним «метеоры». Устройство позволяет регулировать скорость эффекта и цвет «метеоров». На видео более подробно показана работа устройства и варианты настроек:
Проект как аппаратно, так и программно реализован на Arduino.
Схема устройства
Базовым элементом схемы является плата Arduino. Для данного устройства могут быть применены Arduino Uno или Arduino Nano или Arduino Pro Mini (как в моей схеме)
Схема устройства проста и особо в описании не нуждается, кроме некоторых моментов:
— при подключении лент обязательно необходимо учитывать направление (на ленте отмечено стрелкой), в противном случае лента работать не будет
— резисторы на выводах МК не обязательны (устройство будет работать и без них), но все же желательно их установить — это защитит порта МК от перегорания в непредвиденных ситуациях
Корпусом устройства служит монтажно-раздаточная коробка, которую используют электрики. В магазине можно подобрать такой размер как Вам подойдет!
Блок питания на 5 вольт выбран с учетом среднего тока лент. Ток потребления одного кусочка ленты из 20 «пикселей» в режиме метеора не превышает 120-150мА. При 12 лентах суммарный ток 1,5-1,8А что соответствует мощности 10Вт. Я использовал 15Вт готовый блок питания от китайцев.
Внимание! Если устройство будет подразумевать одновременное включение всех лент в режиме белого свечения всех пикселей, мощности блока питания не хватит!
Блок питания питает и схему и ленты (хотя правильнее их нужно было бы развязывать). Я ограничился только конденсаторами (на входе питания Arduino) в качестве фильтра. Этого оказалось достаточно.
У устройстве использована «умная» светодиодная лента WS2812B с 60 пикселями на метр. В моей схеме 12шт кусочков по 20 пикселей, а это целых 4м ленты. Ленту можно разрезать на любые по длине кусочки (вплоть до 1 светодиода). В программе никаких изменений делать не понадобится – ленты любой длинны будут правильно работать в устройстве. Лента примененная мною была обычной (IP30) без защиты. Для того, чтобы защитить ленту от механических повреждений и сделать лучи более жесткими (для возможности крепления их в различных положениях), ленты были наклеены на одну из половинок кабель-канала и «одеты» в прозрачную (силиконовую) трубку с внутренним диаметром 10мм.
Разъемы лучей выполнены при помощи 3.5мм аудио джеков. Устройство позволяет включать и отключать лучи прямо во время работы. Это, совместно с удобными разъемами, облегчает монтаж устройства и его настройку.
Платы устройства
Функционально устройство собрано на трех платах (рисунки печатных плат есть в архиве)
— плата управления
— и 2 платы разъемов
Фактически, устройство настолько простое, что можно обойтись и без плат вообще, соединив все элементы схемы проводами (навесным монтажом).
Готовое устройство с подключенными лучами выглядит очень презентабельно!
Скетч устройства
Скетч устройства содержит сторонние библиотеки (в архиве прилагаются).
Внимание! Библиотека возможно не будет правильно работать на последнем ардуиновском IDE 7-й версии. В 6-й версии проблем никаких не возникает.
Если нет желания устанавливать IDE для Arduino, в архиве есть HEX- файл и инструкция как его записать в Ардуину.
117-Meteor_WS2812B.zip (7385 Загрузок)Заключение
Схема позволяет создавать огромное количество модификаций. Осталось куча неиспользованных выводов, в том числе и аналоговых, не используются «ноги» UART, что позволяет подружить в перспективе устройство с компьютером и управлять им оттуда, а возможно даже создать в процессинге визуальную оболочку управления.
У лент неограниченные возможности по управлению каждым «пикселом» (цветом и насыщенностью) . Написанная мной программа «метеора» использует только 60% памяти МК.
sprint layout
Добрый день! Можно ли в одном скетче объединить «Метеор» и «Эффектор»
Нет — не получится.
Максимальное число пикселей на одну сосульку 30 шт.! Может и меньше, т.к. я подключал только 6 лент. Пробовал увеличить в программе, контроллеру не хватает памяти. Сам не разобрался пока на форуме arduino не спросил.
Здравствуйте. Подскажите почему я не могу залить прошивку в ардуино (нано)? Выдает ошибку:
Скетч использует 40 304 байт (131%) памяти устройства. Всего доступно 30 720 байт.
Глобальные переменные используют 1 936 байт (94%) динамической памяти, оставляя 112 байт для локальных переменных. Максимум: 2 048 байт.
processing.app.debug.RunnerException: Скетч слишком большой; прочитайте http://www.arduino.cc/en/Guide/Troubleshooting#size
Привет!
Возможно новое IDE создает менее оптимальный код. Используйте старое IDE 6. Или просто залейте HEX-файл который есть в архиве.
дело в том что я hex просто, но я хочу изменить количество матриц в ленте. попробую с с другим ide
Почему Недостаточно памяти, программа может работать нестабильно?
Пробуйте.
Это предупреждение для случая когда стек активно используется.
Должно работать.
А можно ли реализовать смену цвета в автоматическом режиме? Что бы не задействовать потенциометр?
Только менять скетч.
Подскажите повторил устройство все работает, но переодически ардуина зависает (пробовал и про мини и нано) , питание от компьютерного БП, на входе в ардуино поставил керамический кондер 0.1 мкф и 470 uf 10v
В идеале, чтоб не разбираться с причиной, в прошивке поставить вочдог, но только уже в этом году не займусь.
Спасибо что ответили, я так понял что проблема все таки в питании, завтра попробую разделить питание диодов и платы (если после зависании платы сделать сброс то она также не работает)
Доброго времени суток. Подскажите что сделать со скетче никак не могу установить. Я только начинаю пробовать, если не сложно поподробнее, скачал а дальше непонятно. Спасибо
Привет!
Со скетчем нужно разбираться — он работал только в одной из старых версий IDE (нужно смотреть что в новой версии ему мешает)
Спасибо. Все заработало.
Добрый день.
Если взять ленты 60 светодиодов будет ли корректно «падать» метеор без изменения в коде?
Спасибо.
Привет!
Автор пишет, что длина может быть любой.
В крайнем случае всегда можно подправить.
Скажите, можно ли применить другие светодиодные ленты вместо WS2812 без изменений в прошивке?
дополню свой вопрос: библиотека fastled может дает возможность указать тип светодиодной ленты?
В файле keywords.txt в разделе # Chipsets есть перечень лент, с которыми работает библиотека FastLED-3.3.3.
В скетч добавляется строкой:
#include «FastLED.h»
#define LED_TYPE WS2812b
…
…
…
Доработал на 50 лент по 30 светодиодов.
ATmega2560.
Подробнее здесь
как осуществить автоматическую (рандомную) смену цветов ленты ?