117-12-ти канальный «Метеор» на светодиодных лентах WS2812B и Arduino.

Автор: | 02.06.2015

Представляю Вашему вниманию собранное мною устройство «Метеор» или, по другому – «Сосульки» :). Устройство управляет двенадцатью «умными» лентами 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% памяти МК.

(Visited 49 304 times, 1 visits today)

117-12-ти канальный «Метеор» на светодиодных лентах WS2812B и Arduino.: 77 комментариев

  1. Дзмітры

    Проект понравился, но не понравился код. Немного доработал, пооптимизировал, не смог поборот ограничения 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/

  2. mm

    Схема Meteor работает хорошо, я еще немного поработал с приложением Blynk.

    на Arduino_PRO-Mini_New A0 и A1 с esp8266 D6 D5, заменяющим два Potti.

    С приложением Blynk подключите ползунок (ползунок) для изменения скорости и цвета.

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

  3. mm

    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();

  4. Павел

    как осуществить автоматическую (рандомную) смену цветов ленты ?

  5. Spectrum

    Доработал на 50 лент по 30 светодиодов.
    ATmega2560.
    Подробнее здесь

  6. Spectrum

    В файле keywords.txt в разделе # Chipsets есть перечень лент, с которыми работает библиотека FastLED-3.3.3.
    В скетч добавляется строкой:
    #include «FastLED.h»
    #define LED_TYPE WS2812b


  7. Spectrum

    дополню свой вопрос: библиотека fastled может дает возможность указать тип светодиодной ленты?

  8. Spectrum

    Скажите, можно ли применить другие светодиодные ленты вместо WS2812 без изменений в прошивке?

  9. GetChiper

    Привет!
    Автор пишет, что длина может быть любой.
    В крайнем случае всегда можно подправить.

  10. Spectrum

    Добрый день.
    Если взять ленты 60 светодиодов будет ли корректно «падать» метеор без изменения в коде?
    Спасибо.

  11. GetChiper

    Привет!
    Со скетчем нужно разбираться — он работал только в одной из старых версий IDE (нужно смотреть что в новой версии ему мешает)

  12. Геннадий

    Доброго времени суток. Подскажите что сделать со скетче никак не могу установить. Я только начинаю пробовать, если не сложно поподробнее, скачал а дальше непонятно. Спасибо

  13. Alex

    Спасибо что ответили, я так понял что проблема все таки в питании, завтра попробую разделить питание диодов и платы (если после зависании платы сделать сброс то она также не работает)

  14. GetChiper

    В идеале, чтоб не разбираться с причиной, в прошивке поставить вочдог, но только уже в этом году не займусь.

  15. Alex

    Подскажите повторил устройство все работает, но переодически ардуина зависает (пробовал и про мини и нано) , питание от компьютерного БП, на входе в ардуино поставил керамический кондер 0.1 мкф и 470 uf 10v

  16. GetChiper

    Только менять скетч.

  17. Александр

    А можно ли реализовать смену цвета в автоматическом режиме? Что бы не задействовать потенциометр?

  18. GetChiper

    Пробуйте.
    Это предупреждение для случая когда стек активно используется.
    Должно работать.

  19. Михаил

    Почему Недостаточно памяти, программа может работать нестабильно?

  20. Сергей

    дело в том что я hex просто, но я хочу изменить количество матриц в ленте. попробую с с другим ide

  21. GetChiper

    Привет!
    Возможно новое IDE создает менее оптимальный код. Используйте старое IDE 6. Или просто залейте HEX-файл который есть в архиве.

  22. Сергей

    Здравствуйте. Подскажите почему я не могу залить прошивку в ардуино (нано)? Выдает ошибку:
    Скетч использует 40 304 байт (131%) памяти устройства. Всего доступно 30 720 байт.
    Глобальные переменные используют 1 936 байт (94%) динамической памяти, оставляя 112 байт для локальных переменных. Максимум: 2 048 байт.
    processing.app.debug.RunnerException: Скетч слишком большой; прочитайте http://www.arduino.cc/en/Guide/Troubleshooting#size

  23. aurifer

    Максимальное число пикселей на одну сосульку 30 шт.! Может и меньше, т.к. я подключал только 6 лент. Пробовал увеличить в программе, контроллеру не хватает памяти. Сам не разобрался пока на форуме arduino не спросил.

  24. GetChiper

    Нет — не получится.

  25. Анатолий

    Добрый день! Можно ли в одном скетче объединить «Метеор» и «Эффектор»

Добавить комментарий