Table des matières:
- Fournitures
- Étape 1: Disposition de la planche à pain
- Étape 2: Câblage de la carte SD
- Étape 3: Les bibliothèques de logiciels
- Étape 4: Tracer les données MP3 sur le moniteur série
Vidéo: Bibliothèque Arduino pour le décodage MP3 : 4 étapes
2024 Auteur: John Day | [email protected]. Dernière modifié: 2024-01-30 09:05
En raison de la prévalence accrue des microcontrôleurs rapides tels que l'ESP32 et la série ARM M, le décodage MP3 n'a plus besoin d'être effectué par du matériel spécialisé. Le décodage peut maintenant se faire par logiciel.
Earlephilhower propose une excellente bibliothèque qui montre comment décoder une grande variété de fichiers audio et les lire sur des microcontrôleurs ESP. Inspiré par cela, j'ai adapté une partie du code pour créer une méthode modulaire de lecture de fichiers MP3 sur des microcontrôleurs.
J'espère que cette méthode sera suffisamment générique pour être utilisée sur n'importe quel microcontrôleur assez rapide (pas seulement une carte ESP32) mais pour l'instant je n'ai testé que sur un ESP32.
Fournitures
Comme je l'ai déjà dit, j'espère que cette méthode fonctionnera pour n'importe quel microcontrôleur rapide, mais ce n'est peut-être pas le cas. Par conséquent, pour reproduire mes résultats, vous aurez besoin de:
- Une carte ESP32
- Carte de dérivation SD
- carte SD
- Fils de cavalier
- planche à pain
- câble micro USB (pour télécharger le croquis)
- IDE Arduino
Étape 1: Disposition de la planche à pain
Placez l'ESP32 et la carte SD sur la maquette.
Étape 2: Câblage de la carte SD
Les connexions de la carte SD (ESP32 SD breakout) sont les suivantes:
TERRE TERRE
Disque dur 3v3
23 DI (MOSI)
19 FAIRE (MISO)
18 SCLK
5 CS
Veuillez noter que ces connexions seront différentes si vous utilisez un autre microcontrôleur.
Étape 3: Les bibliothèques de logiciels
si vous n'avez pas installé l'ESP-IDF, rendez-vous sur leur site Web et installez-le.
Installez ensuite la bibliothèque du microdécodeur. Vous pouvez le faire en téléchargeant le référentiel et en le plaçant dans votre dossier Bibliothèques Arduino. La bibliothèque de microdécodeurs prend actuellement en charge les fichiers.wav et.mp3.
Quel que soit le format, il existe quelques méthodes communes associées à chaque classe et elles sont couvertes dans le code ci-dessous. Celles-ci incluent l'obtention de certaines métadonnées des fichiers et leur impression sur le moniteur série.
#include "SD.h" // entrée
#include "mp3.h" // décodeur #include "pcm.h" // conteneur de données audio brutes mp3 MP3; void setup() { Serial.begin(115200); // Configurer Serial SD.begin(); // Configurer la connexion SD Fichier file = SD.open("/cc.mp3"); // Ouvrir un fichier MP3 MP3.begin(fichier); // indique à la classe MP3 quel fichier traiter MP3.getMetadata(); // récupère les métadonnées Serial.print("Bits par échantillon: "); Serial.println(MP3.bitsPerSample); // imprime les bits par échantillon Serial.print("Sample Rate: "); Serial.println(MP3. Fs); // et taux d'échantillonnage } boucle vide() { }
Étape 4: Tracer les données MP3 sur le moniteur série
Avec le code ci-dessous, vous pouvez tracer des données audio sur le moniteur série. Ce sera très lent mais vous montrera comment utiliser la bibliothèque MP3. Il sous-échantillonne également les données d'un facteur 16 de sorte que lorsque les données sont tracées, elles ressemblent à une forme d'onde audio. Ce code est tiré de l'exemple SPI_MP3_Serial.ino fourni avec la bibliothèque du microdécodeur. Bien sûr, à l'avenir, vous voudrez lire ces données audio d'une manière ou d'une autre, mais c'est le sujet d'un autre instructable.
#include "SD.h" // entrée
#include "mp3.h" // décodeur mp3 MP3; // audio pcm de classe MP3; // configuration de l'annulation des données audio brutes () { Serial.begin (115200); // Configurer Serial SD.begin(); // Configurer la connexion SD Fichier file = SD.open("/cc.mp3"); // Ouvrir un fichier MP3 MP3.begin(fichier); // Passer le fichier à la classe MP3 } void loop() { audio = MP3.decode(); // Décode les données audio dans la classe pcm /* il y a 32 échantillons dans audio.interleaved (16 à gauche et 16 à droite) * mais nous allons seulement tracer le premier point de données dans chaque canal. * Cela sous-échantillonne efficacement les données par un facteur de 16 (pour * afficher la forme d'onde uniquement) */ Serial.print(audio.interleaved[0]); // canal gauche Serial.print(" "); Serial.println(audio.interleaved[1]); // canal droit }
Conseillé:
Programmation d'un Arduino à l'aide d'un autre Arduino pour afficher un texte défilant sans bibliothèque : 5 étapes
Programmation d'un Arduino à l'aide d'un autre Arduino pour afficher un texte défilant sans bibliothèque : Sony Spresense ou Arduino Uno ne sont pas si chers et ne nécessitent pas beaucoup de puissance. Cependant, si votre projet est limité en termes de puissance, d'espace ou même de budget, vous pouvez envisager d'utiliser Arduino Pro Mini. Contrairement à Arduino Pro Micro, Arduino Pro Mi
Créer une bibliothèque Arduino pour YouTube Sight : 7 étapes
Créer une bibliothèque Arduino pour YouTube Sight : Bonjour à tous, j'ai récemment créé un service appelé YouTube Sight qui peut extraire les données des abonnés de l'API YouTube Analytics et vous donner un nombre d'abonnés plus précis depuis que YouTube a commencé à agréger les résultats. Avec elle, j'ai construit un exemple
Traçage de l'intensité lumineuse à l'aide d'Arduino et de la bibliothèque principale Arduino de Python : 5 étapes
Traçage de l'intensité de la lumière à l'aide d'Arduino et de la bibliothèque principale Arduino de Python : Arduino étant un outil économique mais très efficace et fonctionnel, sa programmation dans Embedded C rend le processus de création de projets fastidieux ! Le module Arduino_Master de Python simplifie cela et nous permet d'effectuer des calculs, de supprimer des valeurs parasites
Convertisseur de texte en parole Arduino utilisant LM386 - Parler du projet Arduino - Bibliothèque Talkie Arduino : 5 étapes
Convertisseur de texte en parole Arduino utilisant LM386 | Parler du projet Arduino | Bibliothèque Talkie Arduino : Salut les gars, dans de nombreux projets, nous demandons à Arduino de parler quelque chose comme une horloge parlante ou de raconter des données
Bibliothèque pour BMP280 et BME280 : 7 étapes
Bibliothèque pour BMP280 et BME280 : IntroductionJe n'avais pas l'intention d'écrire cette bibliothèque. C'est "arrivé" comme effet secondaire d'un projet que j'ai commencé qui utilise un BMP280. Ce projet n'est pas encore terminé, mais je pense que la bibliothèque est prête à partager avec d'autres. Par la suite, j'ai eu un ne