- Componentes necessários
- Diagrama de circuito
- Preparando-se com arquivos de áudio
- Explicação do código
- Testando o reprodutor de áudio ESP32
Os reprodutores de música DIY são divertidos de construir e, anteriormente, construímos alguns reprodutores de música usando o Arduino e um módulo MP3 dedicado. Agora estamos usando o ESP32 para construir um reprodutor de áudio interessante, no qual você pode reproduzir efeitos sonoros apenas conectando um alto-falante extra ao ESP32. Aqui, usaremos o LM386 e um alto-falante com ESP32 para reproduzir arquivos de música. A saída de áudio pode não ser alta, mas este aplicativo mostra a capacidade da placa ESP32 de reproduzir arquivos de áudio.
Componentes necessários
- ESP32
- Módulo amplificador LM386
- Alto-falante 8 ohm
- Jumper Wires
Diagrama de circuito
O diagrama de circuito do ESP32 Music Player é fornecido abaixo-
Para reproduzir som no ESP32, precisamos de um alto-falante. O alto-falante é conectado por meio do módulo amplificador de áudio LM386. Os pinos Vcc e GND do módulo amplificador são conectados ao VIN e GND do ESP32, enquanto o pino IN do módulo amplificador está conectado ao pino GPIO 25 do ESP32. GPIO 25 é um dos 2 pinos DAC (Digital to Analog Converter).
Esta é a aparência da configuração completa do ESP32 Music Player:
LM386 é um amplificador de áudio IC, você pode aprender mais sobre o LM386 seguindo o link.
Preparando-se com arquivos de áudio
Para reproduzir sons de áudio na placa ESP32, precisamos de arquivos de áudio no formato .wav porque o ESP32 pode reproduzir um arquivo de áudio apenas no formato .wav .
Portanto, a primeira etapa será obter o arquivo que você deseja reproduzir no ESP32. Depois disso, baixe e instale o aplicativo Audacity Audio Editor. Este aplicativo será usado para alterar o tipo de arquivo, a taxa de amostragem e outras propriedades.
Assim que a instalação for concluída, abra o aplicativo Audacity e vá para arquivo> Abrir e selecione o arquivo de áudio para editar.
A primeira coisa que precisava ser alterada é a taxa de amostragem. Para reproduzir um arquivo de áudio no ESP32, uma taxa de amostragem de 8.000 a 16.000 será boa, pois o ESP32 não tem muita memória. Portanto, altere a taxa do projeto para 16000.
Depois disso, navegue até Arquivo> Exportar> Exportar como WAV para salvar o arquivo de áudio no formato .wav .
Agora na próxima janela, selecione WAV (Microsoft) como tipo de arquivo e PCM de 8 bits não assinado como formato de codificação e clique em Salvar.
Agora precisamos de um aplicativo Editor Hex para gerar códigos Hex para o arquivo de áudio. Portanto, baixe e instale o Hex Editor (HxD) a partir do link fornecido. Depois disso, abra o aplicativo, vá para Arquivo> abrir e abra o arquivo.wav . Isso irá gerar o código Hex para o arquivo.wav .
Em seguida, use ctrl + A para selecionar o código completo e vá para Editar> Copiar como> C para copiar o código no formato de linguagem C.
Em seguida, cole este código no IDE do Arduino.
Explicação do código
O código completo para o reprodutor de áudio ESP32 sem contato é fornecido no final da página. Aqui estamos explicando algumas partes importantes do código. Neste programa, vamos usar a biblioteca de áudio XT DAC do XTronical. A biblioteca de áudio XT DAC pode ser baixada aqui.
Portanto, como de costume, inicie o código incluindo todas as bibliotecas necessárias. O arquivo SoundData.h contém o código hexadecimal para o arquivo.Wav que deve ser reproduzido.
#include "SoundData.h" #include "XT_DAC_Audio.h"
Na próxima linha, crie um objeto do tipo XT_Wav_Class que é usado pela classe de áudio DAC passando dados .wav como um parâmetro. DacAudio, o principal objeto de classe do jogador em que 25 é o número do pino DAC onde o pino do amplificador está conectado.
XT_Wav_Class Sound (amostra); XT_DAC_Audio_Class DacAudio (25,0);
Dentro da função setup () , inicialize o Monitor Serial a uma taxa de transmissão de 115200 para fins de depuração.
configuração vazia () {Serial.begin (115200);
Dentro da função loop () , preencha o buffer de som com dados e verifique se o som está tocando ou não, caso contrário, toque o som no loop.
loop void () {DacAudio.FillBuffer (); if (Sound.Playing == false) DacAudio.Play (& Sound); Serial.println (DemoCounter ++); }
Testando o reprodutor de áudio ESP32
Quando o código estiver pronto, conecte o alto-falante ao GPIO 25 do ESP32 através do LM386 ou qualquer outro módulo amplificador. Agora conecte o ESP32 ao laptop e carregue o código. Assim que o código é carregado, o ESP32 começa a reproduzir o áudio. A qualidade do som pode ser alterada usando o potenciômetro do módulo amplificador.
Espero que você tenha gostado do projeto. Um vídeo funcional e o código completo são fornecidos abaixo, o arquivo de cabeçalho SoundData.h pode ser baixado aqui. Se você tiver alguma dúvida, deixe-a na seção de comentários.