Поздравляю всех с новым годом! Перед новым годом собрал для дома цветомузыку на светодиодной ленте 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
    26.01.2018 14:43

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


    1. yokotoka
      26.01.2018 20:51

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


      1. Defaultnickname
        27.01.2018 14:00

        Ограничение по току. 5в, 500ом = 10 мА.


      1. sterr
        27.01.2018 14:25

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


      1. DC_Offset
        27.01.2018 14:25

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


  1. boojum
    26.01.2018 17:56

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

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

    image

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


    1. juraspb Автор
      26.01.2018 20:50

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


  1. vitalybaranov
    26.01.2018 20:51

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


    1. juraspb Автор
      26.01.2018 20:54

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


  1. Alex_ME
    26.01.2018 21:32

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


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


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


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

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


    1. juraspb Автор
      26.01.2018 23:25

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


  1. CyberBot
    27.01.2018 00:12

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


    1. heibert
      27.01.2018 22:11

      Пока самое крутое, что я видел,- вот это:
      youtu.be/BRrXSYXCs88


  1. xlop-chik
    27.01.2018 00:44

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


    1. SergeyMax
      27.01.2018 02:30

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

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