Indholdsfortegnelse:
- Forbrugsvarer
- Trin 1: Udlægning af brødbrættet
- Trin 2: Tilslutning af SD -kortet
- Trin 3: Softwarebibliotekerne
- Trin 4: Plot MP3 -data på den serielle skærm
Video: Arduino -bibliotek til MP3 -afkodning: 4 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:26
På grund af den øgede forekomst af hurtige mikrokontrollere såsom ESP32 og ARM M -serien MP3 -afkodning er ikke længere påkrævet af specialhardware. Afkodningen kan nu udføres i software.
Der er et fantastisk bibliotek tilgængeligt fra earlephilhower, der viser, hvordan man kan afkode en lang række lydfiler og afspille dem på ESP -mikrokontroller. Inspireret af dette tilpassede jeg noget af koden til at oprette en modulær metode til læsning af MP3 -filer på mikrokontrollere.
Mit håb er, at denne metode vil være generisk nok til brug på enhver hurtig nok mikrokontroller (ikke kun et ESP32 -kort), men fra nu af har jeg kun testet på en ESP32.
Forbrugsvarer
Som jeg sagde før, håber jeg, at denne metode vil fungere for enhver hurtig mikrokontroller, men det er muligvis ikke. Derfor skal du: for at replikere mine resultater:
- Et ESP32 -kort
- SD breakout board
- SD kort
- Jumper Wires
- brødbræt
- mikro -USB -kabel (til upload af skitse)
- Arduino IDE
Trin 1: Udlægning af brødbrættet
Placer ESP32 og SD -kortbrud på brødbrættet.
Trin 2: Tilslutning af SD -kortet
SD -kortforbindelserne (ESP32 SD -breakout) er som følger:
GND GND
3v3 VDD
23 DI (MOSI)
19 GØR (MISO)
18 SCLK
5 CS
Bemærk, at disse forbindelser vil være forskellige, hvis du bruger en anden mikrokontroller.
Trin 3: Softwarebibliotekerne
hvis du ikke har ESP-IDF installeret, skal du gå til deres websted og installere det.
Installer derefter microdecoder -biblioteket. Du kan gøre dette ved at downloade depotet og placere det i din Arduino Libraries -mappe. Mikrodekoderbiblioteket understøtter i øjeblikket.wav- og.mp3 -filer.
Uanset formatet er der et par almindelige metoder forbundet med hver klasse, og de er dækket af nedenstående kode. Disse inkluderer at få nogle filers metadata og udskrive dem til den serielle skærm.
#include "SD.h" // input
#include "mp3.h" // decoder #include "pcm.h" // raw audio data container mp3 MP3; ugyldig opsætning () {Serial.begin (115200); // Setup Serial SD.begin (); // Opsætning af SD -forbindelse Filfil = SD.open ("/cc.mp3"); // Åbn en MP3 -fil MP3.begin (fil); // fortæl MP3 -klassen, hvilken fil der skal behandles MP3.getMetadata (); // få metdadata Serial.print ("Bits pr. Sample:"); Serial.println (MP3.bitsPerSample); // udskriv bits pr. prøve Serial.print ("Sample Rate:"); Serial.println (MP3. Fs); // og sample rate} void loop () {}
Trin 4: Plot MP3 -data på den serielle skærm
Med koden herunder kan du plotte nogle lyddata på den serielle skærm. Dette vil være meget langsomt, men vil vise dig, hvordan du bruger MP3 -biblioteket. Det nedprøver også dataene med en faktor 16, så når dataene er afbildet, ligner de en lydbølgeform. Denne kode er taget fra eksemplet SPI_MP3_Serial.ino, der følger med mikrodecoder -biblioteket. Selvfølgelig vil du fremover gerne afspille disse lyddata på en eller anden måde, men det er emnet for en anden instruerbar.
#include "SD.h" // input
#inkludere "mp3.h" // dekoder mp3 MP3; // MP3 -klasse pcm -lyd; // opsætning af rå lyddata tomrum () {Serial.begin (115200); // Setup Serial SD.begin (); // Opsætning af SD -forbindelse Filfil = SD.open ("/cc.mp3"); // Åbn en MP3 -fil MP3.begin (fil); // Send fil til MP3 -klasse} void loop () {audio = MP3.decode (); // Afkod lyddata til pcm -klasse / * der er 32 prøver i audio.interleaved (16 til venstre og 16 til højre) *, men vi vil kun plotte det første datapunkt i hver kanal. * Dette nedprøver effektivt dataene med en faktor 16 (til * kun at se bølgeformen) */ Serial.print (audio.interleaved [0]); // venstre kanal Serial.print (""); Serial.println (audio.interleaved [1]); // højre kanal}
Anbefalede:
LoRa Messenger til to enheder til distancer Op til 8 km: 7 trin
LoRa Messenger til to enheder til afstande Op til 8 km: Tilslut projektet til din bærbare computer eller telefon, og chat derefter mellem enhederne uden internet eller SMS ved hjælp af bare LoRa.Hey, hvad sker der gutter? Akarsh her fra CETech. I dag skal vi lave et projekt, der kan forbindes til din smartphone eller en hvilken som helst
1A til 40A nuværende BOOST -konverter til op til 1000W DC -motor: 3 trin
1A til 40A Current BOOST-konverter til op til 1000W DC-motor: Hej! I denne video lærer du, hvordan du laver et strømforstærkerkredsløb til dine høj ampere DC-motorer op til 1000W og 40 ampere med transistorer og en center-tap-transformer. Selvom, strømmen ved udgangen er meget høj, men spændingen bliver r
Overbevis dig selv om bare at bruge en 12V-til-AC-line inverter til LED-lysstrenge i stedet for at genoprette dem til 12V .: 3 trin
Overbevis dig selv om bare at bruge en 12V-til-AC-line inverter til LED-lysstrenge i stedet for at genoprette dem til 12V .: Min plan var enkel. Jeg ville skære en væg-drevet LED-lysstreng i stykker og derefter genkoble den til at køre 12 volt. Alternativet var at bruge en strømomformer, men vi ved alle, at de er frygtelig ineffektive, ikke? Ret? Eller er de det?
Tilføjelse af en direkte line-in til din bilstereo til en iPod/mp3-afspiller: 5 trin
Tilføjelse af en direkte line-in til din bilstereo til en iPod/mp3-afspiller: Denne instruktion viser dig, hvordan du tilføjer en ekstra indgang, f.eks. Et hovedtelefonstik, til din bil, så du kan lytte til en iPod/mp3-afspiller/GPS eller alt, hvad der har en line-out gennem din bils stereo. Mens jeg vil tilføje det på min '99 Chevy Subu
12v til USB Adapter 12v til 5v Transformer (fantastisk til biler): 6 trin
12v til USB Adapter 12v til 5v Transformer (fantastisk til biler): Dette viser dig, hvordan du laver en 12v til USB (5v) adapter. Den mest oplagte anvendelse af dette er til 12v biladaptere, men hvor som helst du har 12v kan du bruge det! Hvis du har brug for 5v til andet end USB, skal du blot springe trinene om tilføjelse af USB -porte over