Sadržaj:
- Pribor
- Korak 1: Postavljanje tlocrta
- Korak 2: Ožičenje SD kartice
- Korak 3: Knjižnice softvera
- Korak 4: Iscrtajte MP3 podatke na serijskom monitoru
Video: Arduino knjižnica za dekodiranje MP3 -a: 4 koraka
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:32
Zbog povećane prevalencije brzih mikrokontrolera, poput ESP32 i ARM M serije MP3 dekodiranje više nije potrebno obavljati specijalizirani hardver. Dekodiranje se sada može izvršiti u softveru.
Od Earlephilhowera dostupna je sjajna knjižnica koja pokazuje kako dekodirati veliki broj audio datoteka i reproducirati ih na ESP mikrokontrolerima. Nadahnut ovim, prilagodio sam dio koda za stvaranje modularne metode čitanja MP3 datoteka na mikrokontrolerima.
Nadam se da će ova metoda biti dovoljno generička za upotrebu na bilo kojem dovoljno brzom mikrokontroleru (ne samo na ESP32 ploči), ali do sada sam testirao samo na ESP32.
Pribor
Kao što sam već rekao, nadam se da će ova metoda funkcionirati za bilo koji brzi mikrokontroler, ali možda neće. Stoga, da biste ponovili moje rezultate, trebat će vam:
- Ploča ESP32
- SD razvodna ploča
- SD kartica
- Žice za kratkospojnike
- matična ploča
- mikro USB kabel (za učitavanje skice)
- Arduino IDE
Korak 1: Postavljanje tlocrta
Postavite ESP32 i SD karticu na matičnu ploču.
Korak 2: Ožičenje SD kartice
Priključci SD kartice (ESP32 SD prekid) su sljedeći:
GND GND
3v3 VDD
23 DI (MOSI)
19 DO (MISO)
18 SCLK
5 CS
Imajte na umu da će se ove veze razlikovati ako koristite drugi mikrokontroler.
Korak 3: Knjižnice softvera
ako nemate instaliran ESP-IDF, prijeđite na njihovu web stranicu i instalirajte ga.
Zatim instalirajte biblioteku mikrodekodera. To možete učiniti preuzimanjem spremišta i stavljanjem u mapu Arduino knjižnice. Knjižnica mikrodekodera trenutno podržava.wav i.mp3 datoteke.
Bez obzira na format, postoji nekoliko uobičajenih metoda povezanih sa svakom klasom, a obuhvaćene su donjim kodom. To uključuje dobivanje nekih metapodataka o datotekama i njihovo ispisivanje na serijski monitor.
#include "SD.h" // ulaz
#include "mp3.h" // dekoder #include "pcm.h" // spremnik sirovih audio podataka mp3 MP3; void setup () {Serial.begin (115200); // Postavljanje serijskog SD.begin (); // Postavljanje SD veze Datoteka Datoteka = SD.open ("/cc.mp3"); // Otvorite MP3 datoteku MP3.begin (datoteka); // recimo razredu MP3 koju datoteku treba obraditi MP3.getMetadata (); // dobivamo metdadata Serial.print ("Bitovi po uzorku:"); Serial.println (MP3.bitsPerSample); // ispisuje bitove po uzorku Serial.print ("Sample Rate:"); Serijski.println (MP3. Fs); // i brzina uzorkovanja} void loop () {}
Korak 4: Iscrtajte MP3 podatke na serijskom monitoru
Pomoću donjeg koda možete iscrtati neke audio podatke na serijskom monitoru. Ovo će biti vrlo sporo, ali će vam pokazati kako koristiti MP3 biblioteku. Također smanjuje uzorke podataka za faktor 16 tako da kad se podaci iscrtaju izgledaju kao audio valni oblik. Ovaj kôd je preuzet iz primjera SPI_MP3_Serial.ino koji dolazi s bibliotekom mikrodekodera. Naravno, ako krenete naprijed, htjet ćete nekako reproducirati ove audio podatke, ali to je tema koja se može podučiti.
#include "SD.h" // ulaz
#include "mp3.h" // dekoder mp3 MP3; // MP3 klasa pcm audio; // neobrađeni audio podaci void setup () {Serial.begin (115200); // Postavljanje serijskog SD.begin (); // Postavljanje SD veze Datoteka Datoteka = SD.open ("/cc.mp3"); // Otvorite MP3 datoteku MP3.begin (datoteka); // Proslijedi datoteku u MP3 klasu} void loop () {audio = MP3.decode (); // Dekodiranje audio podataka u pcm klasu / * u audio zapisu ima 32 uzorka (16 lijevo i 16 desno) *, ali mi ćemo iscrtati samo prvu podatkovnu točku u svakom kanalu. * Ovo učinkovito smanjuje podatke 16 puta (samo za * gledanje valnog oblika) */ Serial.print (audio.interleaved [0]); // lijevi kanal Serial.print (""); Serial.println (audio.prepleteno [1]); // desni kanal}
Preporučeni:
Dodavanje novih knjižnica u KICAD: 6 koraka
Dodavanje novih knjižnica u KICAD: KiCad je besplatni programski paket za automatizaciju elektroničkog dizajna (EDA). Olakšava dizajn shema za elektroničke sklopove i njihovu pretvorbu u PCB dizajn. Sadrži integrirano okruženje za shematsko snimanje i izgled PCB -a za
Arduino pretvarač teksta u govor pomoću LM386 - Razgovarajući Arduino projekt - Knjižnica Talkie Arduino: 5 koraka
Arduino pretvarač teksta u govor pomoću LM386 | Razgovarajući Arduino projekt | Knjižnica Talkie Arduino: Bok dečki, u mnogim projektima od nas je potrebno da govori nešto poput sata za razgovor ili govori neke podatke pa ćemo u ovim uputama pretvoriti tekst u govor pomoću Arduina
Okvir za dekodiranje sobe za bijeg: 7 koraka (sa slikama)
Okvir za dekodiranje sobe za bijeg: sobe za bijeg iznimno su zabavne aktivnosti koje su vrlo zanimljive i izvrsne za timski rad. Jeste li ikada razmišljali o stvaranju vlastite sobe za bijeg? Pa s ovom kutijom dekodera možete biti na dobrom putu! Još bolje da ste razmišljali o upotrebi es
Knjižnica za BMP280 i BME280: 7 koraka
Knjižnica za BMP280 i BME280: UvodNisam se odlučio za pisanje ove knjižnice. &Quot; dogodilo se " kao nuspojavu započetog projekta koji koristi BMP280. Taj projekt još nije dovršen, ali mislim da je knjižnica spremna za dijeljenje s drugima. Nakon toga imao sam ne
Infracrveni NEC protokolarni enkoder i ploča za dekodiranje: 5 koraka
Infracrveni NEC protokolarni enkoder i ploča za dekodiranje: Prima neobrađeni modulirani ili demodulirani NEC IC signal i pretvara ga u bajtove koji se šalju preko serijskog porta. Brzina serijskog prijenosa podataka može se birati između dvije zadane brzine. Zadani način uporabe odašilje naredbeni niz s uokvirenim bajtom