- Необходими компоненти
- Електрическа схема
- Подготовка с аудио файлове
- Обяснение на кода
- Тестване на ESP32 Audio Player
Направи си сам музикални плейъри е забавно да се изграждат и преди това създадохме няколко музикални плейъра, използващи Arduino и специален MP3 модул. Сега използваме ESP32 за изграждане на интересен аудио плейър, в който можете да възпроизвеждате звукови ефекти, като просто свържете допълнителен високоговорител към ESP32. Тук ще използваме LM386 и високоговорител с ESP32 за възпроизвеждане на музикални файлове. Аудио изходът може да не е силен, но това приложение показва способността на платката ESP32 да възпроизвежда аудио файлове.
Необходими компоненти
- ESP32
- Модул усилвател LM386
- 8 ома високоговорител
- Джъмперни проводници
Електрическа схема
Електрическа схема за музикален плейър ESP32 е дадена по-долу -
За да възпроизвеждаме звук на ESP32, ни е необходим високоговорител. Високоговорителят е свързан чрез модула за аудио усилвател LM386. Vcc и GND изводите на усилвателния модул са свързани към VIN и GND на ESP32, докато IN изводът на усилвателния модул е свързан към GPIO 25 извод на ESP32. GPIO 25 е един от 2-те извода на ЦАП (цифрово-аналогов преобразувател).
Ето как ще изглежда пълната настройка за ESP32 Music Player:
LM386 е аудио усилвател IC, можете да научите повече за LM386, като следвате връзката.
Подготовка с аудио файлове
За да възпроизвеждаме аудио звуци на платката ESP32, ни трябват аудио файлове във формат .wav , защото ESP32 може да възпроизвежда аудио файл само във формат .wav .
Така че първата стъпка ще бъде получаването на файла, който искате да възпроизведете на ESP32. След това изтеглете и инсталирайте приложението Audacity Audio Editor. Това приложение ще се използва за промяна на типа на файла, Sample Rate и други свойства.
След като инсталацията приключи, отворете приложението Audacity и след това отидете на файл> Отваряне и изберете аудио файла за редактиране.
Първото нещо, което трябваше да бъде променено, е честотата на вземане на проби. За възпроизвеждане на аудио файл на ESP32, честотата на дискретизация от 8000 до 16000 ще бъде добра, тъй като ESP32 няма много памет. Така че променете скоростта на проекта на 16000.
След това отидете на File> Export> Export as WAV, за да запазите аудио файла във .wav формат.
Сега в следващия прозорец изберете WAV (Microsoft) като тип файл и Неподписан 8-битов PCM като формат за кодиране и след това кликнете върху Запазване.
Сега се нуждаем от приложение Hex Editor, за да генерираме Hex кодове за аудио файла. Така че изтеглете и инсталирайте Hex Editor (HxD) от дадената връзка. След това отворете приложението, след това отидете на File> open и отворете .wav файла . Това ще генерира шестнадесетичен код за .wav файла .
След това използвайте ctrl + A, за да изберете пълния код и след това отидете на Edit> Copy as> C, за да копирате кода във формат C Language.
След това поставете този код в 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 е номерът на DAC пин, където е свързан пинът на усилвателя.
XT_Wav_Class Sound (пример); XT_DAC_Audio_Class DacAudio (25,0);
Във функцията setup () инициализирайте Serial Monitor със скорост на предаване 115200 за целите на отстраняване на грешки.
void setup () {Serial.begin (115200);
Във функцията за цикъл () напълнете звуковия буфер с данни и проверете дали звукът се възпроизвежда или не, ако не, пуснете звука в цикъла.
невалиден цикъл () {DacAudio.FillBuffer (); ако (Sound.Playing == false) DacAudio.Play (& Sound); Serial.println (DemoCounter ++); }
Тестване на ESP32 Audio Player
След като кодът е готов, свържете високоговорителя към GPIO 25 на ESP32 чрез LM386 или друг усилващ модул. Сега свържете ESP32 към лаптопа и качете кода. След като кодът бъде качен, ESP32 започва да възпроизвежда аудиото. Качеството на звука може да се промени с помощта на потенциометъра на усилвателния модул.
Надявам се, че проектът ви е харесал. Работно видео и пълен код са дадени по-долу, заглавният файл SoundData.h може да бъде изтеглен от тук. Ако имате някакви съмнения, оставете ги в раздела за коментари.