- Composants requis
- Schéma
- Se préparer avec les fichiers audio
- Explication du code
- Test du lecteur audio ESP32
Les lecteurs de musique DIY sont amusants à construire, et nous avons déjà construit quelques lecteurs de musique en utilisant Arduino et un module MP3 dédié. Nous utilisons maintenant ESP32 pour créer un lecteur audio intéressant, dans lequel vous pouvez créer des effets sonores en connectant simplement un haut-parleur supplémentaire à ESP32. Ici, nous utiliserons LM386 et un haut-parleur avec ESP32 pour lire des fichiers musicaux. La sortie audio peut ne pas être forte, mais cette application montre la capacité de la carte ESP32 à lire des fichiers audio.
Composants requis
- ESP32
- Module amplificateur LM386
- Haut-parleur 8 ohms
- Fils de cavalier
Schéma
Le schéma de circuit du lecteur de musique ESP32 est indiqué ci-dessous.
Pour jouer du son sur ESP32, nous avons besoin d'un haut-parleur. Le haut-parleur est connecté via le module amplificateur audio LM386. Les broches Vcc et GND du module amplificateur sont connectées au VIN et GND de l'ESP32 tandis que la broche IN du module amplificateur est connectée à la broche GPIO 25 de l'ESP32. GPIO 25 est l'une des 2 broches DAC (Digital to Analog Converter).
Voici à quoi ressemblera la configuration complète de ESP32 Music Player:
LM386 est un IC amplificateur audio, vous pouvez en savoir plus sur LM386 en suivant le lien.
Se préparer avec les fichiers audio
Pour lire des sons audio sur la carte ESP32, nous avons besoin de fichiers audio au format .wav car ESP32 peut lire un fichier audio au format .wav uniquement.
La première étape sera donc d'obtenir le fichier que vous souhaitez lire sur ESP32. Après cela, téléchargez et installez l'application Audacity Audio Editor. Cette application sera utilisée pour modifier le type de fichier, la fréquence d'échantillonnage et d'autres propriétés.
Une fois l'installation terminée, ouvrez l'application Audacity, puis allez dans fichier> Ouvrir et sélectionnez le fichier audio à modifier.
La première chose à modifier est la fréquence d'échantillonnage. Pour lire un fichier audio sur ESP32, un taux d'échantillonnage de 8000 à 16000 sera bon car ESP32 n'a pas beaucoup de mémoire. Modifiez donc le taux du projet à 16000.
Après cela, accédez à Fichier> Exporter> Exporter au format WAV pour enregistrer le fichier audio au format .wav .
Maintenant, dans la fenêtre suivante, sélectionnez WAV (Microsoft) comme type de fichier et PCM 8 bits non signé comme format d'encodage, puis cliquez sur Enregistrer.
Nous avons maintenant besoin d'une application Hex Editor pour générer des codes hexadécimaux pour le fichier audio. Alors téléchargez et installez l'éditeur hexadécimal (HxD) à partir du lien donné. Après cela, ouvrez l'application, puis allez dans Fichier> ouvrez et ouvrez le fichier.wav . Cela générera le code hexadécimal du fichier.wav .
Ensuite, utilisez ctrl + A pour sélectionner le code complet, puis allez dans Édition> Copier comme> C pour copier le code au format du langage C.
Collez ensuite ce code dans l'IDE Arduino.
Explication du code
Le code complet du lecteur audio ESP32 sans contact est donné en fin de page. Ici, nous expliquons certaines parties importantes du code. Dans ce programme, nous allons utiliser la bibliothèque audio XT DAC de XTronical. La bibliothèque audio XT DAC peut être téléchargée à partir d'ici.
Donc, comme d'habitude, démarrez le code en incluant toutes les bibliothèques requises. Le fichier SoundData.h contient le code hexadécimal du fichier.Wav qui doit être lu.
#include "SoundData.h" #include "XT_DAC_Audio.h"
Dans la ligne suivante, créez un objet de type XT_Wav_Class qui est utilisé par la classe audio DAC en passant des données .wav en tant que paramètre. DacAudio, l'objet de classe de lecteur principal dans lequel 25 est le numéro de broche DAC où la broche de l'amplificateur est connectée.
XT_Wav_Class Sound (échantillon); XT_DAC_Audio_Class DacAudio (25,0);
Dans la fonction setup () , initialisez le moniteur série à une vitesse de transmission de 115 200 à des fins de débogage.
void setup () {Serial.begin (115200);
À l'intérieur de la fonction loop () , remplissez le tampon sonore avec des données et vérifiez si le son est en cours de lecture ou non, sinon, jouez le son dans la boucle.
boucle void () {DacAudio.FillBuffer (); if (Sound.Playing == false) DacAudio.Play (& Sound); Serial.println (DemoCounter ++); }
Test du lecteur audio ESP32
Une fois le code prêt, connectez le haut-parleur au GPIO 25 de l'ESP32 à LM386 ou à tout autre module amplificateur. Connectez maintenant l'ESP32 à l'ordinateur portable et téléchargez le code. Une fois le code téléchargé, ESP32 commence à lire l'audio. La qualité sonore peut être modifiée à l'aide du potentiomètre du module Amplificateur.
J'espère que vous avez apprécié le projet. Une vidéo de travail et le code complet sont donnés ci-dessous, le fichier d'en-tête SoundData.h peut être téléchargé à partir d'ici. Si vous avez des doutes, laissez-les dans la section commentaires.