- Componenten vereist
- Schakelschema
- Voorbereidingen voor audiobestanden
- Code Uitleg
- De ESP32-audiospeler testen
DIY-muziekspelers zijn leuk om te bouwen en we hebben eerder een paar muziekspelers gebouwd met Arduino en een speciale MP3-module. Nu gebruiken we ESP32 om een interessante audiospeler te bouwen, waarin je geluidseffecten kunt maken door gewoon een extra speaker op ESP32 aan te sluiten. Hier zullen we LM386 en een luidspreker met ESP32 gebruiken om muziekbestanden af te spelen. De audio-uitvoer is misschien niet luid, maar deze applicatie toont de mogelijkheid van het ESP32-bord om audiobestanden af te spelen.
Componenten vereist
- ESP32
- LM386 Versterker Module
- 8 ohm luidspreker
- Doorverbindingsdraden
Schakelschema
Het schakelschema voor de ESP32-muziekspeler wordt hieronder gegeven-
Om geluid op ESP32 af te spelen, hebben we een luidspreker nodig. De luidspreker is aangesloten via de LM386 Audio Amplifier-module. Vcc- en GND-pinnen van de versterkermodule zijn verbonden met VIN en GND van ESP32, terwijl de IN-pin van de versterkermodule is verbonden met GPIO 25-pins van ESP32. GPIO 25 is een van de 2 DAC-pinnen (Digital to Analog Converter).
Dit is hoe de volledige installatie voor ESP32 Music Player eruit zal zien:
LM386 is een audioversterker-IC, u kunt meer leren over LM386 door de link te volgen.
Voorbereidingen voor audiobestanden
Om audiogeluiden op het ESP32-bord af te spelen, hebben we audiobestanden in .wav- indeling nodig, omdat ESP32 alleen een audiobestand in .wav- indeling kan afspelen.
Dus de eerste stap is om het bestand dat u wilt afspelen op ESP32 te krijgen. Download en installeer daarna de Audacity Audio Editor-app. Deze app wordt gebruikt om het bestandstype, de samplefrequentie en andere eigenschappen te wijzigen.
Zodra de installatie is voltooid, opent u de Audacity-app en gaat u naar Bestand> Openen en selecteert u het audiobestand dat u wilt bewerken.
Het eerste dat moest worden gewijzigd, is de bemonsteringsfrequentie. Voor het afspelen van een audiobestand op ESP32 is een bemonsteringsfrequentie van 8000 tot 16000 goed, aangezien ESP32 niet veel geheugen heeft. Verander dus de Project Rate naar 16000.
Navigeer daarna naar Bestand> Exporteren> Exporteren als WAV om het audiobestand in .wav- indeling op te slaan.
Selecteer nu in het volgende venster WAV (Microsoft) als bestandstype en Unsigned 8-bit PCM als een coderingsformaat en klik vervolgens op Opslaan.
Nu hebben we een Hex Editor-app nodig om Hex-codes voor het audiobestand te genereren. Dus download en installeer de Hex Editor (HxD) via de gegeven link. Open daarna de app en ga naar Bestand> open en open het .wav-bestand . Dit genereert de hex-code voor het .wav-bestand .
Gebruik vervolgens ctrl + A om de volledige code te selecteren en ga vervolgens naar Bewerken> Kopiëren als> C om de code in C-taalindeling te kopiëren.
Plak deze code vervolgens in Arduino IDE.
Code Uitleg
De volledige code voor contactloze ESP32-audiospeler staat aan het einde van de pagina. Hier leggen we enkele belangrijke delen van de code uit. In dit programma gaan we de XT DAC Audio-bibliotheek van XTronical gebruiken. De XT DAC-audiobibliotheek kan hier worden gedownload.
Start dus zoals gewoonlijk de code door alle vereiste bibliotheken op te nemen. SoundData.h-bestand bevat de hex-code voor het .Wav-bestand dat moet worden afgespeeld.
#include "SoundData.h" #include "XT_DAC_Audio.h"
Maak op de volgende regel een object van het type XT_Wav_Class dat wordt gebruikt door de DAC- audioklasse die .wav- gegevens als parameter doorgeeft . DacAudio, het belangrijkste object van de spelerklasse waarin 25 het DAC- pinnummer is waarop de versterkerpin is aangesloten.
XT_Wav_Class Sound (voorbeeld); XT_DAC_Audio_Class DacAudio (25,0);
Binnen in de setup () functie, initialiseren de seriële Monitor met een baudrate van 115.200 voor het debuggen doeleinden.
ongeldige setup () {Serial.begin (115200);
Vul binnen de functie loop () de geluidsbuffer met gegevens en controleer of het geluid wordt afgespeeld of niet, zo niet, speel het geluid in de loop af.
leegte loop () {DacAudio.FillBuffer (); if (Sound.Playing == false) DacAudio.Play (& Sound); Serial.println (DemoCounter ++); }
De ESP32-audiospeler testen
Zodra de code klaar is, verbindt u de luidspreker met GPIO 25 van ESP32 via LM386 of een andere versterkermodule. Verbind nu de ESP32 met Laptop en upload de code. Zodra de code is geüpload, begint ESP32 de audio af te spelen. De geluidskwaliteit kan worden gewijzigd met de potentiometer van de versterkermodule.
Ik hoop dat je genoten hebt van het project. Een werkende video en de volledige code worden hieronder gegeven, het SoundData.h- headerbestand kan hier worden gedownload. Als je twijfels hebt, laat ze dan achter in het commentaargedeelte.