Inhaltsverzeichnis:
- Lieferungen
- Schritt 1: Auslegen des Steckbretts
- Schritt 2: Verdrahten der SD-Karte
- Schritt 3: Die Softwarebibliotheken
- Schritt 4: Plotten von MP3-Daten auf dem seriellen Monitor
Video: Arduino-Bibliothek für die MP3-Decodierung - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:16
Aufgrund der zunehmenden Verbreitung von schnellen Mikrocontrollern wie dem ESP32 und der ARM M-Serie muss die MP3-Decodierung nicht mehr von spezieller Hardware durchgeführt werden. Die Dekodierung kann nun in Software erfolgen.
Es gibt eine großartige Bibliothek von earlephilhower, die zeigt, wie man eine Vielzahl von Audiodateien dekodiert und auf ESP-Mikrocontrollern abspielt. Inspiriert davon habe ich einen Teil des Codes angepasst, um eine modulare Methode zum Lesen von MP3-Dateien auf Mikrocontrollern zu erstellen.
Ich hoffe, dass diese Methode generisch genug ist, um auf jedem schnell genug Mikrocontroller (nicht nur auf einem ESP32-Board) verwendet zu werden, aber bis jetzt habe ich nur auf einem ESP32 getestet.
Lieferungen
Wie ich bereits sagte, hoffe ich, dass diese Methode für jeden schnellen Mikrocontroller funktioniert, aber möglicherweise nicht. Um meine Ergebnisse zu replizieren, benötigen Sie daher:
- Ein ESP32-Board
- SD-Breakout-Board
- SD-Karte
- Überbrückungsdrähte
- Steckbrett
- Micro-USB-Kabel (zum Hochladen der Skizze)
- Arduino-IDE
Schritt 1: Auslegen des Steckbretts
Platzieren Sie ESP32 und SD-Karten-Breakout auf dem Steckbrett.
Schritt 2: Verdrahten der SD-Karte
Die SD-Kartenanschlüsse (ESP32 SD Breakout) sind wie folgt:
GND GND
3v3 VDD
23 DI (MOSI)
19 DO (MISO)
18 SCLK
5 CS
Bitte beachten Sie, dass diese Verbindungen unterschiedlich sind, wenn Sie einen anderen Mikrocontroller verwenden.
Schritt 3: Die Softwarebibliotheken
Wenn Sie ESP-IDF nicht installiert haben, gehen Sie zu deren Website und installieren Sie es.
Installieren Sie dann die Mikrodecoder-Bibliothek. Sie können dies tun, indem Sie das Repository herunterladen und in Ihren Arduino Libraries-Ordner legen. Die Mikrodecoder-Bibliothek unterstützt derzeit.wav- und.mp3-Dateien.
Unabhängig vom Format gibt es für jede Klasse einige gängige Methoden, die im folgenden Code behandelt werden. Dazu gehören das Abrufen einiger Metadaten der Dateien und das Drucken auf den seriellen Monitor.
#include "SD.h" // Eingabe
#include "mp3.h" // Decoder #include "pcm.h" // Audio-Rohdatencontainer mp3 MP3; Void setup () { Serial.begin (115200); // Einrichten der seriellen SD.begin (); // SD-Verbindung einrichten Dateidatei = SD.open("/cc.mp3"); // Öffnen einer MP3-Datei MP3.begin(file); // der MP3-Klasse mitteilen, welche Datei sie verarbeiten soll MP3.getMetadata(); // Holen Sie sich die Metdadaten Serial.print ("Bits pro Sample: "); Serial.println (MP3.bitsPerSample); // Bits pro Probe drucken Serial.print ("Sample Rate: "); Serial.println (MP3. Fs); // und Abtastrate} void loop() {}
Schritt 4: Plotten von MP3-Daten auf dem seriellen Monitor
Mit dem folgenden Code können Sie einige Audiodaten auf dem seriellen Monitor darstellen. Dies wird sehr langsam sein, zeigt Ihnen aber, wie Sie die MP3-Bibliothek verwenden. Außerdem werden die Daten um den Faktor 16 heruntergerechnet, sodass die Daten beim Plotten wie eine Audiowellenform aussehen. Dieser Code stammt aus dem Beispiel SPI_MP3_Serial.ino, das mit der Mikrodecoder-Bibliothek geliefert wird. Natürlich möchten Sie diese Audiodaten in Zukunft irgendwie abspielen, aber das ist das Thema eines anderen anweisbaren.
#include "SD.h" // Eingabe
#include "mp3.h" // Decoder mp3 MP3; // MP3-Klasse PCM-Audio; // rohe Audiodaten Void setup () { Serial.begin (115200); // Einrichten der seriellen SD.begin (); // SD-Verbindung einrichten Dateidatei = SD.open("/cc.mp3"); // Öffnen einer MP3-Datei MP3.begin(file); // Datei an MP3-Klasse übergeben aufrechtzuerhalten. Void loop () { Audio = MP3.decode (); // Audiodaten in die PCM-Klasse decodieren /* es gibt 32 Samples in audio.interleaved (16 links und 16 rechts) * aber wir werden nur den ersten Datenpunkt in jedem Kanal zeichnen. * Dies reduziert die Daten effektiv um einen Faktor von 16 (für * nur die Anzeige der Wellenform) */ Serial.print (audio.interleaved [0]); // linker Kanal Serial.print (" "); Serial.println (audio.interleaved[1]); // rechter Kanal }
Empfohlen:
So deaktivieren Sie die Autokorrektur für nur ein Wort (iOS): 3 Schritte
So deaktivieren Sie die Autokorrektur für nur ein Wort (iOS): Manchmal korrigiert die Autokorrektur möglicherweise etwas, das Sie nicht korrigieren möchten, z. Textabkürzungen beginnen sich in Großbuchstaben zu setzen (imo korrigieren zum Beispiel zu IMO). So erzwingen Sie, dass die Korrektur eines Wortes oder einer Phrase beendet wird, ohne aut zu deaktivieren
So verwenden Sie Sensor21.com für die Sensorüberwachung: 3 Schritte
So verwenden Sie Sensor21.com für die Sensorüberwachung: Wenn Sie eine Plattform zur Überwachung und Steuerung entfernter Geräte und Sensoren für Ihre DIY-Projekte benötigen, ist sensor21.com möglicherweise eine gute Lösung für Sie. Es hat eine gebrauchsfertige benutzerfreundliche GUI. Einfach Sensoren hinzuzufügen und mit Grafiken zu überwachen. Stellen Sie Wecker für e
Auspacken von Jetson Nano & ein Schnellstart für die Two Vision Demo – wikiHow
Auspacken von Jetson Nano & ein Quick Start-Up für Two Vision Demo: ZusammenfassungWie Sie wissen, ist Jetson Nano jetzt ein Starprodukt. Und es kann neuronale Netzwerktechnologie umfassend für eingebettete Systeme bereitstellen. Hier ist ein Unboxing-Artikel mit Details zum Produkt, dem Startvorgang und zwei visuellen Demos … Wortzahl: 800
Bauanleitung für die Bounce-Box: 11 Schritte
Bauanleitung für die Bounce-Box: Dies ist ein grundlegender Überblick darüber, wie ich den Prototyp der Bounce-Box gebaut habe. Das Design ist noch nicht abgeschlossen, und diese Anweisungen beschönigen einige Details. Allerdings gibt es hier keine Techniken oder Ideen auf Expertenniveau
So bauen Sie eine Uhr, die die Zeit an die Wand projiziert – wikiHow
So bauen Sie eine Uhr, die Zeit an die Wand projiziert: Dieses Instructable zeigt Ihnen, wie Sie eine Projektoruhr bauen. Mit diesem Gerät können Sie die Zeit an die Wand projizieren. Basierend auf einem kleinen LCD-Wecker (nicht zu klein, sondern kann nicht projiziert und bearbeitet werden) ist dies eine gute Möglichkeit