Представленный прибор отображает акустический спектр в виде 20 столбиков по 16 точек в каждом. Спектранализатором конечно его назвать сложно. Анализатор больше ассоциируется с измерительным прибором, хотя отображение частоты здесь достаточно точное, чего не скажешь о масштабировании уровня, но об этом далее.
Схема цветомузыки
Подобные конструкции можно найти в Интернете. Однако большинство из них незакончены в конструктивном плане. Мигающие светодиодные ленты, приклеенные к «чему-то». Так и родилась идея построить более красивую экспозицию, напоминающую по стилю классические телемониторы.
Матрица изготовлена из ленты WS2812B на 640 светодиодов. Из-за размера одиночного «пикселя» 30 х 11 мм он подсвечивается двумя диодами, что дает 320 световых точек.
Основа управления является ESP32. Что касается программного кода, то готовых исходников для сборки подобных устройств очень много. Тут выбран уже готовый. К сожалению, код работает только с версией 1.0.4 платы ESP32 Arduino. В старших версиях возникают проблемы с дискретизацией АЦП выше 20 кГц.
Правда сделаны некоторые модификации и исправления:
- Изменение выборки АЦП с блокирующего цикла на прерывание по таймеру, что значительно ускорило выполнение программы. Получилось около 20 FPS при обновлении матрицы размером 16×40 LED и 29 FPS при матрице 8×8.
- Автоматическая настройка уровня звука, но на стороне значений диапазона FFT. Различия в уровне звука между разными музыкальными альбомами значительны, и уровень входного звука необходимо было отрегулировать.
- Устройство управляется с помощью ИК-пульта. Обучаемый ИК-приемник основан на Atmega8 или Atmega88. Он способен обрабатывать самые популярные форматы команд дистанционного управления (Nec, Nec16, Nec42, Samsung32, sony SIRCS, Denon, Sharp).
Есть 6 команд для использования.
- 1 – Включение и выключение
- 2 – яркость панели +
- 3 – яркость панели –
- 4 – эффекты переключения +
- 5 – эффекты переключения –
- 6 – включение или выключение “пиков”
В режиме ожидания активен только модуль ИК-приемника. Получив команду на включение устройства с пульта, ATmega разблокирует ESP32 и подаст питание на светодиодную ленту.
Конструкция аудиоспектра
Почти вся конструкция напечатана на бюджетном домашнем принтере из PLA, с заполнением 20%, местами уплотнена до 90% под шурупы. Исключение составляют задняя стенка и основание (МДФ 10 мм).
Из-за ограниченного размера печати рамка корпуса печатается по частям, а затем склеивается.
Рамка корпуса приклеена к тонированному стеклу.
На решетке есть экраны из белого ПВХ. Получаются из обложек офисных папок. Еще одна электронная плата.
Пришло время перегородок с наклеенными и припаянными светодиодными лентами. Перегородки не склеены между собой для лучшего прилегания к решетке и стеклу.
Установка элементов, прижимающих перегородки к стеклу с маской. Эти элементы также центрируют перегородки по вертикали. Все закрыто плитой HDF с винтами. Установка вертикальных опор с основанием и корпусом электроники.
Все питается от блока питания 5 В 22 А. Размеры панели 710 х 256 х 28 мм. Размеры с основанием 710 х 280 мм. Исходники – Arduino IDE.