- Необходимые компоненты
- Принципиальная электрическая схема
- Подготовка к работе с аудиофайлами
- Код Пояснение
- Тестирование аудиоплеера ESP32
Создавать DIY-музыкальные плееры очень интересно, и ранее мы создали несколько музыкальных плееров с использованием Arduino и специального модуля MP3. Теперь мы используем ESP32 для создания интересного аудиоплеера, в котором вы можете создавать звуковые эффекты, просто подключив дополнительный динамик к ESP32. Здесь мы будем использовать LM386 и динамик с ESP32 для воспроизведения музыкальных файлов. Аудиовыход может быть не громким, но это приложение показывает способность платы ESP32 воспроизводить аудиофайлы.
Необходимые компоненты
- ESP32
- Модуль усилителя LM386
- Динамик 8 Ом
- Перемычки
Принципиальная электрическая схема
Принципиальная схема для ESP32 Music Player дается цены ниже
Для воспроизведения звука на ESP32 нам понадобится динамик. Динамик подключается через модуль усилителя звука LM386. Контакты Vcc и GND модуля усилителя подключены к VIN и GND ESP32, в то время как контакт IN модуля усилителя подключен к контакту GPIO 25 ESP32. GPIO 25 - это один из двух выводов ЦАП (цифро-аналоговый преобразователь).
Вот как будет выглядеть полная настройка музыкального проигрывателя ESP32:
LM386 - это микросхема усилителя звука, подробнее о LM386 вы можете узнать по ссылке.
Подготовка к работе с аудиофайлами
Для воспроизведения звуков на плате ESP32 нам нужны аудиофайлы в формате .wav , потому что ESP32 может воспроизводить аудиофайлы только в формате .wav .
Итак, первым шагом будет получение файла, который вы хотите воспроизвести на ESP32. После этого загрузите и установите приложение Audacity Audio Editor. Это приложение будет использоваться для изменения типа файла, частоты дискретизации и других свойств.
После завершения установки откройте приложение Audacity, а затем перейдите в меню «Файл»> «Открыть» и выберите аудиофайл для редактирования.
Первое, что нужно было изменить, это частоту дискретизации. Для воспроизведения аудиофайла на ESP32 подойдет частота дискретизации от 8000 до 16000, поскольку у ESP32 мало памяти. Поэтому измените Project Rate на 16000.
После этого перейдите в « Файл»> «Экспорт»> «Экспортировать как WAV», чтобы сохранить аудиофайл в формате .wav .
Теперь в следующем окне выберите WAV (Microsoft) в качестве типа файла и 8-битный PCM без знака в качестве формата кодирования, а затем нажмите « Сохранить».
Теперь нам нужно приложение Hex Editor для генерации шестнадцатеричных кодов для аудиофайла. Поэтому загрузите и установите Hex Editor (HxD) по указанной ссылке. После этого откройте приложение, затем перейдите в меню «Файл»> «Открыть» и откройте файл.wav . Это сгенерирует шестнадцатеричный код для файла.wav .
Затем используйте ctrl + A, чтобы выбрать полный код, а затем перейдите в Edit> Copy as> C, чтобы скопировать код в формате языка C.
Затем вставьте этот код в Arduino IDE.
Код Пояснение
Полный код для бесконтактного аудиоплеера ESP32 приведен в конце страницы. Здесь мы объясняем некоторые важные части кода. В этой программе мы собираемся использовать библиотеку XT DAC Audio от XTronical. Библиотеку XT DAC Audio можно скачать здесь.
Итак, как обычно, начните код с включения всех необходимых библиотек. Файл SoundData.h содержит шестнадцатеричный код файла.Wav, который необходимо воспроизвести.
#include "SoundData.h" #include "XT_DAC_Audio.h"
В следующей строке создайте объект типа XT_Wav_Class, который используется классом аудио DAC, передавая данные .wav в качестве параметра. DacAudio, основной объект класса проигрывателя, в котором 25 - это номер вывода ЦАП, к которому подключен вывод усилителя.
XT_Wav_Class Sound (образец); XT_DAC_Audio_Class DacAudio (25,0);
Внутри функции setup () инициализируйте Serial Monitor со скоростью 115200 бод для целей отладки.
void setup () {Serial.begin (115200);
Внутри функции loop () заполните звуковой буфер данными и проверьте, воспроизводится ли звук или нет, если нет, воспроизведите звук в цикле.
недействительный цикл () {DacAudio.FillBuffer (); if (Sound.Playing == false) DacAudio.Play (& Sound); Serial.println (DemoCounter ++); }
Тестирование аудиоплеера ESP32
Как только код будет готов, подключите динамик к GPIO 25 ESP32 через LM386 или любой другой модуль усилителя. Теперь подключите ESP32 к ноутбуку и загрузите код. После загрузки кода ESP32 начинает воспроизведение аудио. Качество звука можно изменить с помощью потенциометра модуля усилителя.
Надеюсь, вам понравился проект. Ниже приведены рабочее видео и полный код, файл заголовка SoundData.h можно скачать отсюда. Если у вас есть сомнения, оставьте их в разделе комментариев.