Цветомузыка для светодиодной ленты WS2812, Аrduino и ПК +18



Поздравляю всех с новым годом! Перед новым годом собрал для дома цветомузыку на светодиодной ленте WS2812. Проект получился простым для повторения и не дорогим.

Формирование цветомузыкальных программ осуществляется контроллером Arduino nano на основании данных полученных от программы «CMU.EXE». Программа «CMU.EXE» для персонального компьютера выполняет роль 20 полосного анализатора спектра и пульта управления программами.

Данная организация позволит всем желающим достаточно просто собрать цветомузыку. Любители программирования могут, не вникая в тонкости цифровой обработки аудио сигналов, создавать свои цветомузыкальные программы в простой среде Arduino IDE.

> Скетчи для Arduino и программа «CMU.EXE» представлены на GitHub

В проекте предусмотрены два вида подключения к персональному компьютеру.

Первый вариант, непосредственное подключение к USB ПК, скетч COMtoLed.


Второй вариант, подключение через радиомост построенный на nRF24L01, скетчи COMtoRF и RFtoLed.


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

Для работы контроллера Аrduino вам потребуется

1. Установить в Arduino IDE библиотеки: Adafruit_Neopixels, IRremote, RF24(если используется беспроводной вариант)

2. Установить в скетче:

— Количество светодиодов в вашей ленте:

#define stripLed 120   // количество светодиодов в ленте

— Номера выходов к которым подключена ваша лента и ИК приёмник ДУ:

#define stripPin 2     // выход управления светодиодной лентой
#define irPin 3         // вход IR

— Номера контактов для управления радио модулем (если используется):

RF24      radio(9, 10);    // Объект radio для работы с nRF24,  номера выводов nRF24L01+ (CE, CSN)

На данный момент в скетче реализованы 7 цветомузыкальных программ и более 70 вариантов бегущих огней (по китайскому исчислению, другой цвет = другая программа).

Программа «CMU.EXE» для персонального компьютера достаточно сложна и предлагается в виде исполняемого модуля без исходного кода.

Цветомузыкальная программа «CMU.EXE» может принимать аудио поток с любого записывающего звукового устройства персонального компьютера. Например: микшер, линейный вход, микрофон или любой виртуальный аудио кабель.

Используя микшер или виртуальный аудио кабель можно получить аудио поток из любого аудио плеера. Например: ITUNES, AIMP, VLC или любого другого.

Внешний вид программы:




Подключение к ITUNES с использованием виртуального аудиокабеля и проигрыванием через AIRPlay:



Видео работы цветомузыкальной представлено на youtube:






Спасибо за внимание!

Вы можете помочь и перевести немного средств на развитие сайта

Теги:



Комментарии (15):

  1. GennPen
    /#10570789

    На сколько помнится, с ардуины цифру на ленту лучше пускать через резистор 400-500 Ом.

    • yokotoka
      /#10571523

      Кстати, вы могли бы пояснить причину этой рекомендации? Не в первый раз ее встречаю.

      • sterr
        /#10572483

        Стандартное ограничение тока. При замыкании и т.п. ардуина не сгорит.

      • DC_Offset
        /#10572485

        Я так понимаю, для ограничения тока пина на случай замыкания на землю. Ну или один из светодиодов поджарится и превратится в перемычку между землей, питанием и данными))

  2. boojum
    /#10571227

    Программа «CMU.EXE» для персонального компьютера достаточно сложна и предлагается в виде исполняемого модуля без исходного кода.

    Тем более интересно бы ее исходники. Дельфи, насколько я понял.
    Стыдно показывать? Или «коммерческая тайна»? ;)

    image

    Я процентов на 99 уверен, что это ложное срабатывание. Но осадочек-то остался..

    • juraspb
      /#10571521

      Мой антивирус не ругался. А насчёт исходников пока думаю.

  3. vitalybaranov
    /#10571525

    Пока я собирался это сделать… вы это уже сделали)

    • juraspb
      /#10571527

      Я тоже долго собирался. Ребёнок подрос. Пытаюсь чем то увлечь.

  4. Alex_ME
    /#10571609

    Я как-то пытался сделать такое пару лет назад. https://www.youtube.com/watch?v=YlcybAA-tV4. Звук очень-очень-очень тихий получился, еле слышно.


    Я разбивал спектр на куски, интенсивность звука в этом участке определяла цвет светодиодов. Получилась фигня полная, видно только на очень ритмичной музыке, такой как We Will Rock You из видео.


    У Вас куда лучше. Как понимаю, "радуга" фиксирована, а громкость участка спектра определяет яркость светодиодов?


    Программа «CMU.EXE» для персонального компьютера выполняет роль 20 полосного анализатора спектра и пульта управления программами.

    Можете сказать, какой диапазон частот обрабатываете? Сколько отсчетов в БПФ? Просто по моим наблюдениям, во основном все интересное сосредоточено в нижних частотах, а уже выше нескольких килогерц почти ничего нет.

    • juraspb
      /#10571823

      БПФ 1024 точки. Смотря как на полосы разбить.

  5. CyberBot
    /#10571891

    Можно сделать цветомузыку, без каких либо подключений к ПК, через микрофон.
    www.youtube.com/watch?v=mKyPXAuKfyM

  6. xlop-chik
    /#10571933

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

    • SergeyMax
      /#10572045

      блин, ярко очень… глаза режет

      Попробуйте убавить яркость на мониторе.