. Цветомузыка на WS2812B и ардуино для ПК
Цветомузыка на WS2812B и ардуино для ПК

Цветомузыка на WS2812B и ардуино для ПК

Мне давно хотелось сделать цветомузыку (далее ЦМУ), но хотелось сделать так, чтобы работы при этом было как можно меньше. Увидел на ali ленту WS2812B и решил вот, это то что надо, ни каких 220В, ни каких тиристоров, симисторов и т.п… Основные принципы работы данной ЦМУ: — Обработка звука и формирование цветомузыкальных программ осуществляется моей программой для ПК. — Управление состоянием светодиодов ленты осуществляет модуль arduino по командам из программы. — Для воспроизведения музыки может использоваться любой программный плеер, например WinAmp, AIMP, ITUNES, Windows Media и т.п. или аппаратный плеер имеющий линейный выход.

Для управления лентой я написал программу для ПК. Ссылка для скачивания программы. Программа не имеет ограничений и может использоваться в личных целях всеми желающими.

Для минимального комплекта ЦМУ, с непосредственным подключением к USB ПК, нужна лишь светодиодная лента с WS2812B, arduino nano (или аналогичная), три проводника и мини USB кабель для подключения платы arduino к одному из USB портов ПК. В данном варианте количество активных (работающих) светодиодов ограничено 19 по одному на каждую цветовую полосу программы ЦМУ. Ограничение введено для предотвращения перегрузки USB порта.

Скетч модуля arduino при непосредственном подключении ЦМУ к USB порту компьютера:

Для максимального, беспроводного варианта, дополнительно потребуется ещё одна плата arduino, два радио модуля nRF24L01 с платами адаптеров, блок питания 5В на мощность соответствующую вашей ленте. Оба модуля nRF24L01 подключаются к платам arduino идентично. Подключение осуществляется по типовой схеме к цифровым выводам D9,D10,D11,D12,D13 или другим при соответствующем изменении заголовков конфигурации в скетче. Типовые схемы включения nRF24L01 есть в интернете. Вход управления светодиодной лентой Din (Din на ленте) заведён на цифровой выход D2 платы arduino.

При беспроводном подключении к ПК один из модулей arduino c модулем nRF24L01 подключается к USB порту ПК (при подключении драйвером выполняется преобразование USB<->COM). Указанный модуль принимает по СОМ порту пакеты от программы ЦМУ и через радио модуль nRF24L01 транслирует их по радиоканалу к контроллеру ленты. Радио модуль nRF24L01 контроллера ленты по радио каналу принимает пакеты поступившие от контроллера подключённого к ПК. Модуль arduino контроллера ленты получает принятые пакеты от nRF24L01 и устанавливает светодиоды ленты в требуемое состояние.

Скетч модуля подключаемого к ПК:

У меня 120 светодиодов в ленте, но используются пока 19*4=76. Мой блок питания не тянет больше. Куплю источник питания мощней зажгу все.

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

Для работы программы ЦМУ нужно настроить два подключения: 1. к COM порту ПК, порту к которому подключён модуль arduino; 2. к источнику звука. Работа начинается после нажатия на кнопку старт.

В простейшем случае в качестве источника звука может выступать микрофон ПК или ноутбука. Недостатком данного метода является влияние на цветовую программу внешних звуков и шума.

Второй вариант получение аудио потока непосредственно с музыкального плеера. Для этого необходимо перехватить аудио поток с программы плеера к выходному звуковому устройству (динамикам ПК или звуковому выходу). Для этого можно использовать драйвер и программу «виртуальный аудио кабель». В интернете есть несколько вариантов «виртуального аудио кабеля» и вы можете выбрать подходящий к вашему оборудованию. Для моей конфигурации потребовался простой «виртуальный аудио кабель» с одним входом и одним выходом. Я использую «виртуальный аудио кабель» который вы можете скачать по ссылке. Установите на ПК программное обеспечение «виртуальный аудио кабель». В настройках звуковых устройств ПК выберите выходное звуковое устройство «виртуальный аудио кабель» и установите для него — использовать по умолчанию.

После данной настройки все аудио потоки со всех программ будут направляться на вход «виртуального аудио кабеля». В программе цветомузыки установите в качестве источника звука (звукового устройства) выход «виртуального аудио кабеля». Окно программы цветомузыки:

Программа ЦМУ готова к работе.

Мой вариант подключения. У меня аудио ресивер с airplay и проигрыватель я естественно использую c поддержкой airplay ITUNES. Кроме того ITUNES умеет выводить звук одновременно и на аудио ресивер и на ПК как показано ниже

Звуковой поток поступающий на ПК попадает на устройство по умолчанию, то есть на вход «виртуального аудио кабеля», а его выход служит источником звука в программе цветомузыки. Если вы пользуетесь другим музыкальным плеером и/или у вас нет усилителя или аудио ресивера с airplay вам понадобится «виртуальный аудио кабель» умеющий коммутировать аудио поток на несколько устройств. Один из выходов вы должны подать на ваше выходное звуковое устройство (выход звуковой карты или динамики ПК), а другой должны указать в качестве источника звука в программе цветомузыки.

Третий вариант потребует наличия или изготовления аудио кабеля. Вы можете использовать линейный вход вашей звуковой карты в качестве источника звука в программе ЦМУ. В этом случае вы можете использовать любой внешний источник звука (аудио плеер, MP3 плеер и т.п. ) имеющий линейный выход.

С «виртуальным аудио кабелем» с разветвителем и вариантом изготовления кабеля вам придётся разбираться самим, мне эти варианты не понадобились. Возможно есть другие варианты организации источника звука для программы ЦМУ.

Профиль для установки светодиодной ленты или другой вариант крепления светодиодной ленты выбирается из ваших желаний.

Примеры работы ЦМУ:

Добавил скетч для варианта подключения к USB с внешним источником питания 5В (на большое количество светодиодов > 30).

📎📎📎📎📎📎📎📎📎📎