- Componentes requeridos
- Diagrama de circuito
- Prepararse con archivos de audio
- Explicación del código
- Prueba del reproductor de audio ESP32
Los reproductores de música DIY son divertidos de construir, y anteriormente construimos algunos reproductores de música usando Arduino y un módulo MP3 dedicado. Ahora estamos usando ESP32 para construir un reproductor de audio interesante, en el que puede hacer efectos de sonido simplemente conectando un altavoz adicional al ESP32. Aquí usaremos LM386 y un altavoz con ESP32 para reproducir archivos de música. Es posible que la salida de audio no sea alta, pero esta aplicación muestra la capacidad de la placa ESP32 para reproducir archivos de audio.
Componentes requeridos
- ESP32
- Módulo amplificador LM386
- Altavoz de 8 ohmios
- Cables de puente
Diagrama de circuito
El diagrama de circuito para el reproductor de música ESP32 se muestra a continuación:
Para reproducir sonido en ESP32, necesitamos un altavoz. El altavoz se conecta a través del módulo amplificador de audio LM386. Los pines Vcc y GND del módulo amplificador están conectados al VIN y GND de ESP32, mientras que el pin IN del módulo amplificador está conectado al pin GPIO 25 de ESP32. GPIO 25 es uno de los 2 pines DAC (convertidor digital a analógico).
Así es como se verá la configuración completa del reproductor de música ESP32:
LM386 es un IC amplificador de audio, puede obtener más información sobre LM386 siguiendo el enlace.
Prepararse con archivos de audio
Para reproducir sonidos de audio en la placa ESP32, necesitamos archivos de audio en formato .wav porque ESP32 solo puede reproducir un archivo de audio en formato .wav .
Entonces, el primer paso será obtener el archivo que desea reproducir en ESP32. Después de eso, descargue e instale la aplicación Audacity Audio Editor. Esta aplicación se utilizará para cambiar el tipo de archivo, la frecuencia de muestreo y otras propiedades.
Una vez que se complete la instalación, abra la aplicación Audacity y luego vaya a archivo> Abrir y seleccione el archivo de audio para editar.
Lo primero que debe cambiarse es la frecuencia de muestreo. Para reproducir un archivo de audio en ESP32, una frecuencia de muestreo de 8000 a 16000 será buena ya que ESP32 no tiene mucha memoria. Así que cambie la tasa de proyecto a 16000.
Después de eso, vaya a Archivo> Exportar> Exportar como WAV para guardar el archivo de audio en formato .wav .
Ahora, en la siguiente ventana, seleccione WAV (Microsoft) como tipo de archivo y PCM de 8 bits sin firmar como formato de codificación y luego haga clic en Guardar.
Ahora necesitamos una aplicación Hex Editor para generar códigos hexadecimales para el archivo de audio. Así que descargue e instale Hex Editor (HxD) desde el enlace dado. Después de eso, abra la aplicación, luego vaya a Archivo> abrir y abra el archivo.wav . Esto generará el código hexadecimal para el archivo.wav .
Luego use ctrl + A para seleccionar el código completo y luego vaya a Editar> Copiar como> C para copiar el código en formato de Lenguaje C.
Luego pegue este código en Arduino IDE.
Explicación del código
El código completo para el reproductor de audio ESP32 sin contacto se encuentra al final de la página. Aquí explicamos algunas partes importantes del código. En este programa, vamos a utilizar la biblioteca de audio XT DAC de XTronical. La biblioteca de audio XT DAC se puede descargar desde aquí.
Entonces, como de costumbre, inicie el código incluyendo todas las bibliotecas requeridas. El archivo SoundData.h contiene el código hexadecimal del archivo.Wav que se va a reproducir.
#include "SoundData.h" #include "XT_DAC_Audio.h"
En la siguiente línea, cree un objeto de tipo XT_Wav_Class que sea utilizado por la clase de audio DAC pasando datos .wav como parámetro. DacAudio, el objeto de clase de reproductor principal en el que 25 es el número de pin DAC donde está conectado el pin del amplificador.
XT_Wav_Class Sound (muestra); XT_DAC_Audio_Class DacAudio (25,0);
Dentro de la función setup () , inicialice Serial Monitor a una velocidad en baudios de 115200 para fines de depuración.
configuración vacía () {Serial.begin (115200);
Dentro de la función loop () , llene el búfer de sonido con datos y verifique si el sonido se está reproduciendo o no, si no, reproduzca el sonido en el loop.
bucle vacío () {DacAudio.FillBuffer (); if (Sound.Playing == false) DacAudio.Play (& Sound); Serial.println (DemoCounter ++); }
Prueba del reproductor de audio ESP32
Una vez que el código esté listo, conecte el altavoz a GPIO 25 de ESP32 a través de LM386 o cualquier otro módulo amplificador. Ahora conecte el ESP32 a la computadora portátil y cargue el código. Una vez que se carga el código, ESP32 comienza a reproducir el audio. La calidad del sonido se puede cambiar usando el potenciómetro del módulo Amplificador.
Espero que hayas disfrutado del proyecto. A continuación se muestra un video de trabajo y un código completo, el archivo de encabezado SoundData.h se puede descargar desde aquí. Si tienes dudas déjalas en la sección de comentarios.