Предистория
Недавно на портале были две статьи про умную гирлянду на светодиодах WS2812 и ESP8266 (первая, вторая). У меня такая гирлянда уже лет 5 радует глаз, но была сделана на ардуине, и эффекты были из библиотеки FastLED, ну и часть была написана самим. Решил добавить ума и переделал на ESP8266 и прошивку WLED. По сравнению с тем, что было, это конечно, небо и земля. Эффектов больше, управление со смартфона, интеграция в Home assistant. В общем, радует. На этом решил не останавливаться и затеял добавление функции цветомузыки.
В детстве это было очень популярное веяние "цветомузыка". Тиристоры КУ202Н, лампочки, покрашенные цветным лаком, деревянный ящик, закрытый матовым оргстеклом... эх, ностальгия. Знал бы тогда, на какой уровень теперь это все выходит.
Техника
Про то, что такое WLED, как прошивать и как собрать - я повторять не буду. Есть целых две статьи (первая, вторая), в которых все отлично расписано и добавить к этому нечего.
Моя статья будет продолжением к ним. Прошивка WLED имеет возможность управления по сети разными протоколами. Есть такая библиотека LedFx, которая как раз и умеет управлять лентой WLED.
LedFx - это сетевой контроллер светодиодных эффектов с поддержкой расширенных звуковых эффектов в реальном времени! LedFx отлично работает с ESP8266, причем можно подключить несколько и синхронизировать эффекты по всему дому!
Для связи с нашей гирляндой будет использоваться протокол E1.31 sACN.
Софт
Для начала работы с Windows разработчик настоятельно рекомендует использовать Anaconda, чтобы упростить установку компонентов Python. Так и поступим. Скачиваем, запускаем установку. В результате у нас появляется командная строка Anaconda.
Скачиваем, запускаем установку. В результате, у нас появляется командная строка Anaconda. Мне кажется, это излишне, и можно запустить и в чистом Python. Как-нибудь попробую.
Также следующий шаг, который настоятельно рекомендован - это создание виртуальной среды conda.
conda create -n ledfx conda activate ledfx
И уже внутри этой среды устанавливаем LedFX и все зависимости, используя pip и менеджер пакетов conda.
conda config --add channels conda-forge conda install aubio portaudio pywin32 conda install -c anaconda pyaudio conda install -c anaconda portaudio pip install ledfx
Вот тут меня ожидал неприятный сюрприз. Установка компонента Pyaudio завершилась ошибкой:
The following specifications were found to be incompatible with your CUDA driver
Не нравился ей компонент CUDA со своей версией. Дальнейшая установка с игнорированием этой ошибки ни к чему не привела. Обращаемся к дяде Гуглу. И видим, что такая проблема часто возникает и способов решения множество, но почему-то не получается.
Дальше запускаем с опцией open-ui, для работы через дашбоард в браузере:
ledfx --open-ui
В консоли выводит адрес дашбоарда, у меня браузер сам открылся на этой странице.
Заходим в дашбоард, идем в меню Device managment. Нажимаем в правом нижнем углу плюсик, и в открывшемся меню вводим тип нашего устройства е131, дальше вводим название нашей гирлянды, IP адрес, количество светодиодов. Нажимаем принять. В списке устройств появилась наша гирлянда. Не знаю, у кого как будет, у меня законнектился не сразу.
Заходим в меню нашего устройства, здесь можно включить эффект, и выбрать из списка. Не все эффекты интерактивны, они помечены как (Reactive). Для каждого эффекта масса разных параметров. Удобный график визуализации эффектов. Гирлянда повторяет все эффекты. Работает только с микрофоном или линейным входом. Внутренние системные звуки не воспринимает. Это не баг, а фича, на данный момент.
Так как приложение написано на Python, соответственно, можно установить на любые платформы. На гитхабе описаны процедуры и для Линуха, и для Макоси.
Небольшая демонстрация работы LedFx на видео:
Отличное продолжение =) добавлю в свою статью ссылочку
Ковырялся у них на Гитхабе и нашел что естьhttps://ledfx.app/downloads/dev/LedFx%20Installer%200.0.0.3.exe"> установщик Windows
Так что моя статья несколько потеряла актуальность ))
Правда я этот установщик еще не проверил.
Лежит у меня WLED самоделочка. Уже не включаю, приелась. Уже думал как сделать из неё цветомузыку. И тут эта статья. Ничего не понял, но буду перечитывать разбираться.
Мне тоже пришла ленточка на проводках.
Также валялся старый пульт с какой то китайской ленты, купленной в фикспрайсе. Прикрутил фотоприемник, управляет.
https://youtu.be/GNvCs8ntyOk">Видео
Отлично! Откапал два куска ленты , за 10 минут все настроил,спасибо!!
Поучается, цветомузыка завязана с воспроизведением музыке на компе? А можно ли подать звук непосредственно с усилителя на плату? Или со смартфона? Лучше с усилка :)
LedFX с можно установить
без танцев - есть установщик https://ledfx.app/">https://ledfx.app/
Цветомузыка завязана со звуком с микрофона, с воспроизведения музыки на компе не работает
Но можно перенаправить звук на устройство записи через StereoMix. Либо тоже самое сделать с помощью сторонних программ, добавляющих виртуальные аудио-устройства. Есть аналогичный проект, который ставится либо на ПК, либо на Rasspbery PI. Инструкция и ПО в картинках тут: https://github.com/Aircoookie/audio-reactive-led-strip">https://github.com/Aircoookie/...
C Raspberry PI можно использовать не только дома, но минус что она сама денег стоит. Китайцы выпускают готовый контроллер для светомузыки за 12$ на SP107E(cо встроенным микрофоном и линейным входом). Но там программа для управления по отзывам корявая, зато по блютузу, а не wifi управляется.
Ильмир, спасибо за статью, подтолкнула в правильном направлении. Несколько моментов для windows, которые хотелось бы внести:
1 - esp прошивается на wled с веб-инсталлера https://install.wled.me/">https://install.wled.me/ - нужно только выбрать COM-порт.
2 - у ledfx есть папка с portable-версиями https://ledfx.app/downloads/">https://ledfx.app/downloads/, распакованный LedFx-win-0.10.5.zip при первом запуске подтягивает обновления. При этом порт http://127.0.1.1:8888/, а не заявленный http://0.0.0.0:8888/">http://0.0.0.0:8888/
3 - VoiceMeeter работает замечательно, все ютубы-спотифаи. Нужно лишь его установить в соответствии с видео на родном сайте (французское, да).
4 - есп-шку хорошо бы обвесить конденсатором по питанию 1000 мкФ 6.3 Вольт, резистором 100-500 Ом в дата-проводе (не сожжёт устройство, если при питании от компа отвалится основной БП и всё пойдёт через USB)
5 - код ledfx открыт, есть папка https://github.com/LedFx/LedFx/tree/master/ledfx/effects">https://github.com/LedFx/LedFx... - желающие могут разобраться и постить пулреквесты.
6 - у ledfx после переключения эффекта надо нажать Set effect, просто перебирать не получится.
Ильмир, спасибо за статью, подтолкнула в правильном направлении. Несколько моментов для windows, которые хотелось бы внести:
1 - esp прошивается на wled с веб-инсталлера https://install.wled.me/">https://install.wled.me/ - нужно только выбрать COM-порт.
2 - у ledfx есть папка с portable-версиями https://ledfx.app/downloads/">https://ledfx.app/downloads/, распакованный LedFx-win-0.10.5.zip при первом запуске подтягивает обновления. При этом порт http://127.0.1.1:8888/, а не заявленный http://0.0.0.0:8888/">http://0.0.0.0:8888/
3 - VoiceMeeter работает замечательно, все ютубы-спотифаи. Нужно лишь его установить в соответствии с видео на родном сайте (французское, да).
4 - По рекомендациям Гайвера https://alexgyver.ru/ws2812_guide/">https://alexgyver.ru/ws2812_gu... есп-шку хорошо бы обвесить
резистором 100-500 Ом в дата-проводе (не сожжёт устройство, если при питании от компа отвалится основной БП и всё пойдёт через USB), электролитом по питанию 470 мкФ 6.3 Вольт, электролитом 1000-2200 мкФ 6.3 Вольт по питанию ленты, чтобы мигающая лента не давала помехи на линию питания. Приподнять землю микроконтроллера кремниевым диодом типа 1N4007 - диод ставится между GND питания катодом и GND микроконтроллера анодом.
5 - код ledfx открыт, есть папка с эффектами https://github.com/LedFx/LedFx/tree/master/ledfx/effects">https://github.com/LedFx/LedFx... - желающие могут разобраться, добавить свои и постить пулреквесты.
6 - у ledfx после переключения эффекта надо нажать Set effect, просто перебирать не получится.