- Componente necesare
- Diagrama circuitului
- Pregătirea cu fișierele audio
- Explicarea codului
- Testarea playerului audio ESP32
Playere muzicale DIY sunt distractive de construit și am construit anterior câteva playere muzicale folosind Arduino și un modul MP3 dedicat. Acum folosim ESP32 pentru a construi un player audio interesant, în care puteți efectua sunete conectând doar un difuzor suplimentar la ESP32. Aici vom folosi LM386 și un difuzor cu ESP32 pentru a reda fișiere muzicale. Este posibil ca ieșirea audio să nu fie puternică, dar această aplicație arată capacitatea plăcii ESP32 de a reda fișiere audio.
Componente necesare
- ESP32
- Modul amplificator LM386
- Difuzor de 8 ohmi
- Sârme jumper
Diagrama circuitului
Diagrama circuitului pentru playerul de muzică ESP32 este prezentată mai jos-
Pentru a reda sunetul pe ESP32, avem nevoie de un difuzor. Difuzorul este conectat prin modulul amplificator audio LM386. Pinii Vcc și GND ai modulului amplificator sunt conectați la VIN și GND al ESP32, în timp ce pinul IN al modulului amplificator este conectat la GPIO 25 pin al ESP32. GPIO 25 este unul dintre cei 2 pini DAC (Digital to Analog Converter).
Așa va arăta configurarea completă pentru ESP32 Music Player:
LM386 este un amplificator audio IC, puteți afla mai multe despre LM386 urmând linkul.
Pregătirea cu fișierele audio
Pentru a reda sunete audio pe placa ESP32, avem nevoie de fișiere audio în format .wav deoarece ESP32 poate reda un fișier audio numai în format .wav .
Deci, primul pas va fi obținerea fișierului pe care doriți să-l redați pe ESP32. După aceea, descărcați și instalați aplicația Audacity Audio Editor. Această aplicație va fi utilizată pentru a schimba tipul de fișier, rata de eșantionare și alte proprietăți.
După finalizarea instalării, deschideți aplicația Audacity și apoi accesați fișierul> Deschideți și selectați fișierul audio de editat.
Primul lucru care trebuia schimbat este rata de eșantionare. Pentru redarea unui fișier audio pe ESP32, o rată de eșantionare de la 8000 la 16000 va fi bună, deoarece ESP32 nu are prea multă memorie. Deci, schimbați rata de proiect la 16000.
După aceea, navigați la Fișier> Export> Exportați ca WAV pentru a salva fișierul audio în format .wav .
Acum, în fereastra următoare, selectați WAV (Microsoft) ca tip de fișier și Unsigned 8-bit PCM ca format de codare și apoi faceți clic pe Salvare.
Acum avem nevoie de o aplicație Hex Editor pentru a genera coduri Hex pentru fișierul audio. Deci, descărcați și instalați Hex Editor (HxD) de pe linkul dat. După aceea, deschideți aplicația, apoi accesați Fișier> deschideți și deschideți fișierul.wav . Aceasta va genera codul Hex pentru fișierul.wav .
Apoi utilizați ctrl + A pentru a selecta codul complet și apoi accesați Editare> Copiere ca> C pentru a copia codul în format C Language.
Apoi lipiți acest cod în IDE Arduino.
Explicarea codului
Codul complet pentru Contactless ESP32 Audio Player este dat la sfârșitul paginii. Aici explicăm câteva părți importante ale codului. În acest program, vom folosi biblioteca XT DAC Audio de la XTronical. Biblioteca audio XT DAC poate fi descărcată de aici.
Deci, ca de obicei, porniți codul prin includerea tuturor bibliotecilor necesare. Fișierul SoundData.h conține codul Hex pentru fișierul.Wav care urmează să fie redat.
#include "SoundData.h" #include "XT_DAC_Audio.h"
În următoarea linie, creați un obiect de tip XT_Wav_Class care este utilizat de clasa audio DAC care transmite date .wav ca parametru. DacAudio, obiectul principal din clasa playerului în care 25 este numărul pinului DAC la care este conectat pinul amplificatorului.
XT_Wav_Class Sound (eșantion); XT_DAC_Audio_Class DacAudio (25,0);
În interiorul funcției setup () , inițializați Serial Monitor la o rată de transmisie de 115200 în scopuri de depanare.
void setup () {Serial.begin (115200);
În interiorul funcției loop () , umpleți bufferul de sunet cu date și verificați dacă sunetul este redat sau nu, dacă nu, redați sunetul în loop.
bucla void () {DacAudio.FillBuffer (); if (Sound.Playing == false) DacAudio.Play (& Sound); Serial.println (DemoCounter ++); }
Testarea playerului audio ESP32
Odată ce codul este gata, conectați difuzorul la GPIO 25 al ESP32 prin LM386 sau orice alt modul de amplificare. Acum conectați ESP32 la laptop și încărcați codul. Odată ce codul este încărcat, ESP32 începe redarea audio. Calitatea sunetului poate fi modificată folosind potențiometrul modulului Amplificator.
Sper că ți-a plăcut proiectul. Un videoclip funcțional și un cod complet sunt prezentate mai jos, fișierul antet SoundData.h poate fi descărcat de aici. Dacă aveți îndoieli, lăsați-le în secțiunea de comentarii.