- Komponenter, der kræves
- Kredsløbsdiagram
- Gør dig klar med lydfiler
- Kode Forklaring
- Test af ESP32 Audio Player
DIY musikafspillere er sjove at bygge, og vi har tidligere bygget et par musikafspillere ved hjælp af Arduino og et dedikeret MP3-modul. Nu bruger vi ESP32 til at opbygge en interessant lydafspiller, hvor du kan lydeffekter ved blot at forbinde en ekstra højttaler til ESP32. Her bruger vi LM386 og en højttaler med ESP32 til at afspille musikfiler. Lydudgangen er muligvis ikke høj, men denne applikation viser ESP32-kortets evne til at afspille lydfiler.
Komponenter, der kræves
- ESP32
- LM386 forstærkermodul
- 8 ohm højttaler
- Jumper Wires
Kredsløbsdiagram
Kredsløbsdiagram for ESP32 Music Player er angivet nedenfor-
For at afspille lyd på ESP32 har vi brug for en højttaler. Højttaleren tilsluttes via LM386 Audio Amplifier-modulet. Vcc og GND-stifter på forstærkermodulet er forbundet til VIN og GND på ESP32, mens IN-stift på forstærkermodulet er forbundet til GPIO 25-stift på ESP32. GPIO 25 er en af de 2 DAC-stifter (Digital til Analog Converter).
Sådan ser den komplette opsætning til ESP32 Music Player ud:
LM386 er en lydforstærker IC, du kan lære mere om LM386 ved at følge linket.
Gør dig klar med lydfiler
For at afspille lydlyde på ESP32-kortet har vi brug for lydfiler i .wav- format, fordi ESP32 kun kan afspille en lydfil i .wav- format.
Så det første trin er at hente den fil, du vil spille på ESP32. Derefter skal du downloade og installere Audacity Audio Editor-appen. Denne app bruges til at ændre filtype, prøvehastighed og andre egenskaber.
Når installationen er afsluttet, skal du åbne Audacity-appen og derefter gå til fil> Åbn og vælg den lydfil, der skal redigeres.
Den første ting, der skulle ændres, er samplingshastigheden. Til afspilning af en lydfil på ESP32 vil en samplingsfrekvens på 8000 til 16000 være god, da ESP32 ikke har meget hukommelse. Så skift projektrate til 16000.
Derefter skal du navigere til File> Export> Export as WAV for at gemme lydfilen i .wav- format.
Nu i det næste vindue skal du vælge WAV (Microsoft) som filtype og Usigneret 8-bit PCM som et kodningsformat og derefter klikke på Gem.
Nu har vi brug for en Hex Editor-app til at generere Hex-koder til lydfilen. Så download og installer Hex Editor (HxD) fra det givne link. Derefter skal du åbne appen, derefter gå til Filer> åbne og åbne .wav-filen . Dette genererer Hex-koden for .wav-filen .
Brug derefter ctrl + A til at vælge den komplette kode, og gå derefter til Rediger> Kopier som> C for at kopiere koden i C-sprogformat.
Indsæt derefter denne kode i Arduino IDE.
Kode Forklaring
Den komplette kode til kontaktløs ESP32 lydafspiller findes i slutningen af siden. Her forklarer vi nogle vigtige dele af koden. I dette program skal vi bruge XT DAC Audio-biblioteket fra XTronical. XT DAC Audio-biblioteket kan downloades herfra.
Så som sædvanligt skal du starte koden med at inkludere alle de nødvendige biblioteker. SoundData.h-filen indeholder Hex-koden til den .Wav-fil , der skal afspilles.
#include "SoundData.h" #include "XT_DAC_Audio.h"
I den næste linje skal du oprette et objekt af typen XT_Wav_Class , der bruges af DAC- lydklassen, der sender .wav- data som en parameter. DacAudio, hovedafspillerens klasseobjekt, hvor 25 er DAC-pin-nummeret, hvor forstærkerstiften er tilsluttet.
XT_Wav_Class Sound (prøve); XT_DAC_Audio_Class DacAudio (25,0);
Inden i opsætningsfunktionen () skal du initialisere den serielle skærm med en baudhastighed på 115200 til fejlfindingsformål.
ugyldig opsætning () {Serial.begin (115200);
Inde i loop () -funktionen skal du fylde lydbufferen med data og kontrollere, om lyden afspilles eller ej, hvis ikke, afspil lyden i loop.
ugyldig loop () {DacAudio.FillBuffer (); hvis (Sound.Playing == false) DacAudio.Play (& Sound); Serial.println (DemoCounter ++); }
Test af ESP32 Audio Player
Når koden er klar, skal du slutte højttaleren til GPIO 25 på ESP32 gennem LM386 eller et hvilket som helst andet forstærkermodul. Tilslut nu ESP32 til bærbar computer og upload koden. Når koden er uploadet, begynder ESP32 at afspille lyden. Lydkvaliteten kan ændres ved hjælp af forstærkermodulets potentiometer.
Håber du nød projektet. En fungerende video og komplet kode er angivet nedenfor, SoundData.h header-fil kan downloades herfra. Hvis du er i tvivl, skal du lade dem være i kommentarsektionen.