Представляю Вашему вниманию собранное мною устройство «Метеор» или, по другому – «Сосульки» :). Устройство управляет двенадцатью «умными» лентами 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 (8536 Загрузок)Заключение
Схема позволяет создавать огромное количество модификаций. Осталось куча неиспользованных выводов, в том числе и аналоговых, не используются «ноги» UART, что позволяет подружить в перспективе устройство с компьютером и управлять им оттуда, а возможно даже создать в процессинге визуальную оболочку управления.
У лент неограниченные возможности по управлению каждым «пикселом» (цветом и насыщенностью) . Написанная мной программа «метеора» использует только 60% памяти МК.
Проект понравился, но не понравился код. Немного доработал, пооптимизировал, не смог поборот ограничения FastLED и перешёл на библиотеку NeoPixel.
Получилось что изначальные «скетч использует 20512 байт (66%) памяти устройства. Глобальыне переменные используют 1861 байт (90%) динамической памяти» превратилось в «скетч использует 4042 байт (13%) памяти устройства. Глобальные переменные используют 455 байт (22%) динамической памяти» !
При этом идентичность сохранена на 100%.
Если кто сможет проверить работоспособность при 12 лучах по 40 светодиодов и больше на Arduino Pro Mini — буду рад если расскажет об этом.
Сам я проверял на Wemos D1 Mini с 8 лучами по 60 диодов и длиной кометы 24 (так как у меня только метровые отрезки есть) — всё работает, тут памяти хватает
код тут:
https://github.com/lidacity/falling_drops/
Схема Meteor работает хорошо, я еще немного поработал с приложением Blynk.
на Arduino_PRO-Mini_New A0 и A1 с esp8266 D6 D5, заменяющим два Potti.
С приложением Blynk подключите ползунок (ползунок) для изменения скорости и цвета.
По-прежнему нужно проголосовать, или у кого-то есть другое предложение
Die Meteor Schaltung funktioniert gut, habe noch ein bisschen getüftelt mit der Blynk app.
und zwar am Arduino_PRO-Mini_New A0 und A1 mit mit einem esp8266 D6 D5 die zwei Potti ersetzt.
Mit der Blynk app dann Slider (Schiebregler) angeschlossen um die Geschwindigkeit und Farbwechsel vorzunehmen.
Mus noch abgestimmt werden, oder hat noch jemand eine anderen Vorschlag
—————————————————————————————————————-
#define BLYNK_PRINT Serial // Comment this out to disable prints and save space
#include
#include
// You should get Auth Token in the Blynk App.
// Go to the Project Settings (nut icon).
char auth[] = «…….»;
// Your WiFi credentials.
// Set password to «» for open networks.
char ssid[] = «………»;
char pass[] = «………»;
void setup()
{
Serial.begin(9600);
Blynk.begin(auth, ssid, pass, «blynk.iot-cm.com», 8080);
}
void loop()
{
Blynk.run();
как осуществить автоматическую (рандомную) смену цветов ленты ?
Доработал на 50 лент по 30 светодиодов.
ATmega2560.
Подробнее здесь
В файле keywords.txt в разделе # Chipsets есть перечень лент, с которыми работает библиотека FastLED-3.3.3.
В скетч добавляется строкой:
#include «FastLED.h»
#define LED_TYPE WS2812b
…
…
…
дополню свой вопрос: библиотека fastled может дает возможность указать тип светодиодной ленты?
Скажите, можно ли применить другие светодиодные ленты вместо WS2812 без изменений в прошивке?
Привет!
Автор пишет, что длина может быть любой.
В крайнем случае всегда можно подправить.
Добрый день.
Если взять ленты 60 светодиодов будет ли корректно «падать» метеор без изменения в коде?
Спасибо.
Спасибо. Все заработало.
Привет!
Со скетчем нужно разбираться — он работал только в одной из старых версий IDE (нужно смотреть что в новой версии ему мешает)
Доброго времени суток. Подскажите что сделать со скетче никак не могу установить. Я только начинаю пробовать, если не сложно поподробнее, скачал а дальше непонятно. Спасибо
Спасибо что ответили, я так понял что проблема все таки в питании, завтра попробую разделить питание диодов и платы (если после зависании платы сделать сброс то она также не работает)
В идеале, чтоб не разбираться с причиной, в прошивке поставить вочдог, но только уже в этом году не займусь.
Подскажите повторил устройство все работает, но переодически ардуина зависает (пробовал и про мини и нано) , питание от компьютерного БП, на входе в ардуино поставил керамический кондер 0.1 мкф и 470 uf 10v
Только менять скетч.
А можно ли реализовать смену цвета в автоматическом режиме? Что бы не задействовать потенциометр?
Пробуйте.
Это предупреждение для случая когда стек активно используется.
Должно работать.
Почему Недостаточно памяти, программа может работать нестабильно?
дело в том что я hex просто, но я хочу изменить количество матриц в ленте. попробую с с другим ide
Привет!
Возможно новое IDE создает менее оптимальный код. Используйте старое IDE 6. Или просто залейте HEX-файл который есть в архиве.
Здравствуйте. Подскажите почему я не могу залить прошивку в ардуино (нано)? Выдает ошибку:
Скетч использует 40 304 байт (131%) памяти устройства. Всего доступно 30 720 байт.
Глобальные переменные используют 1 936 байт (94%) динамической памяти, оставляя 112 байт для локальных переменных. Максимум: 2 048 байт.
processing.app.debug.RunnerException: Скетч слишком большой; прочитайте http://www.arduino.cc/en/Guide/Troubleshooting#size
Максимальное число пикселей на одну сосульку 30 шт.! Может и меньше, т.к. я подключал только 6 лент. Пробовал увеличить в программе, контроллеру не хватает памяти. Сам не разобрался пока на форуме arduino не спросил.
Нет — не получится.
Добрый день! Можно ли в одном скетче объединить «Метеор» и «Эффектор»
sprint layout