INHOUDSOPGAWE:
- Voorrade
- Stap 1: Plaas die broodbord
- Stap 2: Sluit die SD -kaart aan
- Stap 3: Die sagtewarebiblioteke
- Stap 4: Plaas MP3 -data op die seriële monitor
Video: Arduino -biblioteek vir MP3 -dekodering: 4 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:24
As gevolg van die toenemende voorkoms van vinnige mikrobeheerders soos die ESP32 en die ARM M -reeks, hoef MP3 nie meer deur spesialis -hardeware gedoen te word nie. Die dekodering kan nou in sagteware gedoen word.
Daar is 'n wonderlike biblioteek beskikbaar by earlephilhower wat wys hoe u 'n wye verskeidenheid klanklêers kan dekodeer en op ESP -mikrobeheerders kan speel. Geïnspireer hierdeur het ek 'n deel van die kode aangepas om 'n modulêre metode te skep om MP3 -lêers op mikrobeheerders te lees.
Ek hoop dat hierdie metode algemeen genoeg sal wees vir gebruik op enige vinnig genoeg mikrobeheerder (nie net 'n ESP32 -bord nie), maar ek het tot dusver slegs op 'n ESP32 getoets.
Voorrade
Soos ek vroeër gesê het, hoop ek dat hierdie metode vir enige vinnige mikrobeheerder sal werk, maar dit mag nie. Om my resultate te herhaal, benodig u:
- 'N ESP32 -bord
- SD -uitbreekbord
- SD kaart
- Jumper Wires
- broodbord
- mikro -USB -kabel (om skets op te laai)
- Arduino IDE
Stap 1: Plaas die broodbord
Plaas die ESP32 en die SD -kaart op die broodbord.
Stap 2: Sluit die SD -kaart aan
Die SD -kaartverbindings (ESP32 SD -uitbreek) is soos volg:
GND GND
3v3 VDD
23 DI (MOSI)
19 DOEN (MISO)
18 SCLK
5 CS
Let daarop dat hierdie verbindings anders sal wees as u 'n ander mikrobeheerder gebruik.
Stap 3: Die sagtewarebiblioteke
As u nie die ESP-IDF geïnstalleer het nie, gaan dan na hul webwerf en installeer dit.
Installeer dan die mikrodekodeerder -biblioteek. U kan dit doen deur die bewaarplek af te laai en in u gids Arduino Libraries te plaas. Die mikrodekodeerder -biblioteek ondersteun tans.wav- en.mp3 -lêers.
Ongeag die formaat, is daar 'n paar algemene metodes wat met elke klas verband hou, en dit word gedek in die onderstaande kode. Dit sluit in om 'n paar lêermetadata te kry en dit na die seriële monitor te druk.
#sluit "SD.h" // insette in
#include "mp3.h" // decoder #include "pcm.h" // raw audio data container mp3 MP3; ongeldige opstelling () {Serial.begin (115200); // Stel Serial SD.begin () op; // Stel SD -verbinding lêer lêer op = SD.open ("/cc.mp3"); // Maak 'n MP3 -lêer oop MP3.begin (lêer); // vertel die MP3 -klas watter lêer MP3.getMetadata () moet verwerk; // kry die metadata Serial.print ("Bits per monster:"); Serial.println (MP3.bitsPerSample); // druk bisse per monster Serial.print ("Monster Rate:"); Serial.println (MP3. Fs); // en monster rate} leemte lus () {}
Stap 4: Plaas MP3 -data op die seriële monitor
Met die onderstaande kode kan u 'n paar klankdata op die seriële monitor teken. Dit sal baie stadig wees, maar sal u wys hoe u die MP3 -biblioteek kan gebruik. Dit verminder ook die data met 'n faktor van 16, sodat wanneer die data uitgestippel word, dit soos 'n klankgolfvorm lyk. Hierdie kode is geneem uit die voorbeeld SPI_MP3_Serial.ino wat by die mikodekoder -biblioteek kom. Natuurlik, as u vorentoe beweeg, sal u hierdie klankdata op een of ander manier wil speel, maar dit is die onderwerp van 'n ander instruksie.
#sluit "SD.h" // insette in
#sluit "mp3.h" // dekodeerder mp3 MP3 in; // MP3 -klas pcm klank; // opstelling van rou klankdata leemte () {Serial.begin (115200); // Stel Serial SD.begin () op; // Stel SD -verbinding lêer lêer op = SD.open ("/cc.mp3"); // Maak 'n MP3 -lêer oop MP3.begin (lêer); // Gee lêer na MP3 -klas} leemte -lus () {audio = MP3.decode (); // Dekodeer klankdata in pcm -klas / * daar is 32 monsters in audio.interleaved (16 links en 16 regs) *, maar ons gaan slegs die eerste datapunt in elke kanaal teken. * Dit verminder die data effektief met 'n faktor van 16 (vir * slegs die golfvorm) */ Serial.print (audio.interleaved [0]); // linker kanaal Serial.print (""); Serial.println (audio.interleaved [1]); // regte kanaal}
Aanbeveel:
Arduino motorwaarskuwingstelsel vir omgekeerde parkering - Stap vir stap: 4 stappe
Arduino -waarskuwingstelsel vir omgekeerde parkeerterrein | Stap vir stap: In hierdie projek ontwerp ek 'n eenvoudige Arduino Car Reverse Parking Sensor Circuit met behulp van Arduino UNO en HC-SR04 Ultrasonic Sensor. Hierdie Arduino -gebaseerde motor -omkeerwaarskuwingstelsel kan gebruik word vir 'n outonome navigasie, robotafstand en ander reeks
Relay Board vir Arduino vir minder as $ 8 .: 5 stappe
Relay Board vir Arduino vir minder as $ 8 .: Hallo vriende, vandag gaan ek u vertel hoe u 'n relay board vir Arduino vir minder as $ 8 kan maak. In hierdie kring gaan ons geen IC of transistor gebruik nie, so kom ons doen dit
Gebruik 1 analoog invoer vir 6 knoppies vir Arduino: 6 stappe
Gebruik 1 analoog invoer vir 6 knoppies vir Arduino: ek het gereeld gewonder hoe ek meer digitale insette vir my Arduino kan kry. Dit het onlangs by my opgekom dat ek een van die analoog insette moet kan gebruik om verskeie digitale insette in te voer. Ek het vinnig gesoek en gevind waar mense is
BOLSITA PARA MP3 Y PARLANTES / KLEIN TAS VIR MP3 -SPELER EN SPREKERS: 5 stappe
BOLSITA PARA MP3 Y PARLANTES / LITTLE BAG FOR MP3 PLAYER AND SPEAKERS: Soe nuevo en esto de los instructables, maar dit is 'n goeie tyd om dit te sien. U kan ook instruksies en video's vir my vlog besoek: www.mercenario.org. Penne
Invoer' vir MP3 -speler vir motorstereo: 8 stappe
"Invoer" vir MP3-speler vir motorstereo: hierdie instruksie is geïnspireer deur https://www.instructables.com/id/Add-an-auxiliary-MP3Ipod-input-to-your-cars-st/?ALLSTEPS so dankie " aka_bigred " wie was die oorspronklike skrywer. Met hierdie mod kan u 'n MP3 -speler -ingangsaansluiting by u voeg