Реализация проекта "Анализатор аудио спектра" на ESP32
Версия 1.8 от 26 июля 2023 г.
Преимущества по сравнению с начальным проектом на Arduino Nano:
Порядок сборки, настройки и прошивки
Управление
Устройство может управляться через кнопку, через ИК-пульт, через wi-fi (напрямую и через роутер локальной сети), через облачный сервис "Розетка" (http://www.memorandum.ru/Rozetka/). Каждый способ управления реализован в отдельных файлах скетча и подробно там же описан.
Для управления через облачный сервис необходимо зарегистрироваться в сервисе и получить API-key для вашего устройства. Этот ключ необходимо прописать в соответствующем поле настроек через web-интерфейс. Пример управления см. в папке Web Control, файл spectrus.html. Отредактируйте в этом файле строку var api_key = {"api_key": "############"};, указав API-key своего устройства.
Быстродействие
Тестирование устройства производилось на матрицах 16x16, 32x16 и 48x16.
Были показаны следующие результаты скорости обработки и визуализации звука в fps (фреймов в секунду):
16x16 - 32-34;
32x16 - 28-30;
48x16 - 20-21.
Видео
Прошу прощения за качество видео. Записывал на старый планшет, откуда и небольшое отставание изображения от звука.
Скриншоты
Скетч
Благодарности
Алексу Гайверу и Скотту Марли за базис проекта.
Касьянову Владимиру Александровичу за тестирование и интересные идеи.
Версия 1.8 от 26 июля 2023 г.
Преимущества по сравнению с начальным проектом на Arduino Nano:
- Возможность работы с длинными (составными) LED-матрицами. Проверялось на матрицах 32x16 и 48x16.
- Полноценное использование возможностей двух-ядерного процессора esp32.
- Управление анализатором через ИК-пульт и через web-интерфейс.
- Управление анализатором через облачный сервис "Розетка".
- Расширенный набор эффектов в режиме "Лампа", в том числе бегущая строка (текст, время, дата).
- Доступ к большому количеству тонких настроек анализатора череp web-интерфейс.
- Значительно улучшена визуализация эффектов в режиме "Анализатор".
- Улучшена динамическая отрисовка шкалы громкости.
- Автоматическая подстройка яркости матрицы в зависимости от освещённости.
- Переключение источника звука между микрофоном и линейным входом.
Порядок сборки, настройки и прошивки
- Соберите анализатор согласно представленной выше схемы.
- Скачайте архив скетча и распакуйте его.
- Откройте файл Spectrus_esp32.ino в среде разработки Arduino IDE.
- Установите все необходимые библиотеки через Менеджер библиотек. Необходимые библиотеки и их проверенные версии:
Adafruit_GFX версия 1.11.5
FastLED_NeoMatrix версия 1.1
arduinoFFT версия 1.6.0
GyverButton версия 3.8.0
ESP32Time версия 2.0.0
IRremote версия 3.5.0 (не используйте версию выше из-за несовместимости версий)
GyverPortal версия 3.5.3
NTPClient версия 3.2.1
ArduinoJson версия 6.20.1 - Для русификации шрифтов необходимо скопировать с заменой файл glcdfont.c в папку libraries/Adafruit_GFX_Library/
- Для этих же целей скопируйте папку FontRus в папку libraries/Adafruit_GFX_Library/
- В Spectrus_esp32.ino установите параметры вашей LED-матрицы (ленты) и, если ширина матрицы не кратна 16, создайте свой массив фильтров частот posOffset.
- Если необходимо, откорректируйте другие константы, которые подробно откомментированы в тексте скетча.
- Выставите необходимые параметры платы esp32 и com-порт и скомпилируйте скетч. Если компилятор будет ругаться на ошибку в библиотеке GyverPortal, то откройте в текстовом редакторе соответствующий файл библиотеки и закомментируйте строку, на которую ругается компилятор.
- Для управления анализатора через web-интерфейс найдите в настройках wi-fi вашего гаджета сеть SPECRUS, подключитесь к ней введя пароль по умолчанию "12345678". Далее откройте web-браузер и введите в строке адреса url: "192.168.4.1".
Управление
Устройство может управляться через кнопку, через ИК-пульт, через wi-fi (напрямую и через роутер локальной сети), через облачный сервис "Розетка" (http://www.memorandum.ru/Rozetka/). Каждый способ управления реализован в отдельных файлах скетча и подробно там же описан.
Для управления через облачный сервис необходимо зарегистрироваться в сервисе и получить API-key для вашего устройства. Этот ключ необходимо прописать в соответствующем поле настроек через web-интерфейс. Пример управления см. в папке Web Control, файл spectrus.html. Отредактируйте в этом файле строку var api_key = {"api_key": "############"};, указав API-key своего устройства.
Быстродействие
Тестирование устройства производилось на матрицах 16x16, 32x16 и 48x16.
Были показаны следующие результаты скорости обработки и визуализации звука в fps (фреймов в секунду):
16x16 - 32-34;
32x16 - 28-30;
48x16 - 20-21.
Видео
Скриншоты
Скетч
Благодарности
Алексу Гайверу и Скотту Марли за базис проекта.
Касьянову Владимиру Александровичу за тестирование и интересные идеи.
Вложения
-
118.9 KB Просмотры: 67
Изменено: