Përmbajtje:

Biblioteka Arduino për deshifrim MP3: 4 hapa
Biblioteka Arduino për deshifrim MP3: 4 hapa

Video: Biblioteka Arduino për deshifrim MP3: 4 hapa

Video: Biblioteka Arduino për deshifrim MP3: 4 hapa
Video: Как создавать библиотеки для микроконтроллеров. На реальном примере работы с магнитометром LIS3MDL. 2024, Korrik
Anonim
Biblioteka Arduino për deshifrim MP3
Biblioteka Arduino për deshifrim MP3
Biblioteka Arduino për deshifrim MP3
Biblioteka Arduino për deshifrim MP3

Për shkak të përhapjes së shtuar të mikrokontrolluesve të shpejtë si ESP32 dhe serisë ARM M, deshifrimi i MP3 nuk kërkohet më të bëhet nga pajisjet speciale. Dekodimi tani mund të bëhet në softuer.

Ekziston një bibliotekë e shkëlqyeshme në dispozicion nga earlephilhower që tregon se si të deshifroni një larmi të madhe skedarësh audio dhe t'i luani ato në mikrokontrolluesit ESP. Frymëzuar nga kjo, unë përshtata disa nga kodi për të krijuar një metodë modulare të leximit të skedarëve MP3 në mikrokontrolluesit.

Shpresa ime është që kjo metodë të jetë mjaft gjenerike për t’u përdorur në çdo mikrokontrollues mjaft të shpejtë (jo vetëm në një bord ESP32), por tani e tutje unë kam testuar vetëm në një ESP32.

Furnizimet

Siç thashë më parë, shpresoj se kjo metodë do të funksionojë për çdo mikrokontrollues të shpejtë, por mund të mos funksionojë. Prandaj, për të përsëritur rezultatet e mia do t'ju duhet:

  • Një bord ESP32
  • Bordi i ndarjes SD
  • kartë SD
  • Telat Jumper
  • dërrasë buke
  • kabllo mikro USB (për ngarkimin e skicës)
  • Arduino IDE

Hapi 1: Shtrimi i tabelës së bukës

Shtrimi i tabelës së bukës
Shtrimi i tabelës së bukës

Vendosni ndarjen ESP32 dhe kartën SD në tryezën e bukës.

Hapi 2: Instalimi i kartës SD

Instalimi i kartës SD
Instalimi i kartës SD

Lidhjet e kartës SD (ndarja ESP32 SD) janë si më poshtë:

GND GND

3v3 VDD

23 DI (MOSI)

19 Bëj (MISO)

18 SCLK

5 CS

Ju lutemi vini re se këto lidhje do të jenë të ndryshme nëse përdorni një mikrokontrollues tjetër.

Hapi 3: Bibliotekat e Softuerëve

nëse nuk e keni ESP-IDF të instaluar në faqen e tyre të internetit dhe instalojeni.

Pastaj instaloni bibliotekën e mikrodekoderit. Ju mund ta bëni këtë duke shkarkuar depon dhe duke e vendosur atë në dosjen tuaj të Bibliotekave Arduino. Biblioteka e mikrodecoder -it aktualisht mbështet skedarët.wav dhe.mp3.

Pavarësisht nga formati, ka disa metoda të zakonshme që lidhen me secilën klasë dhe ato janë të mbuluara në kodin më poshtë. Këto përfshijnë marrjen e disa meta të dhënave të skedarëve dhe printimin e tyre në monitorin serik.

#përfshi "SD.h" // hyrja

#përfshi "mp3.h" // deshifrues #përfshi "pcm.h" // enë të papërpunuara të të dhënave audio MP3 MP3; void setup () {Serial.begin (115200); // Setup Serial SD.begin (); // Konfiguro lidhjen SD Skedari i skedarit = SD.open ("/cc.mp3"); // Hap një skedar MP3 MP3.fill (skedar); // tregoni klasës MP3 se çfarë skedari të përpunojë MP3.getMetadata (); // merrni metadadata Serial.print ("Bit për Mostër:"); Serial.println (MP3.bitsPerSample); // bitët e printuar për mostër Serial.print ("Vlerësimi i mostrës:"); Serial.println (MP3. Fs); // dhe norma e mostrës} lak void () {}

Hapi 4: Komplotoni të dhëna MP3 në Monitorin Serial

Komplotoni të dhëna MP3 në Monitorin Serial
Komplotoni të dhëna MP3 në Monitorin Serial

Me kodin më poshtë mund të vizatoni disa të dhëna audio në monitorin Serial. Kjo do të jetë shumë e ngadaltë, por do t'ju tregojë se si të përdorni bibliotekën MP3. Ai gjithashtu zbret shembujt e të dhënave me një faktor 16 në mënyrë që kur të dhënat të vizatohen të duket si një formë valore audio. Ky kod është marrë nga shembulli SPI_MP3_Serial.ino që vjen me bibliotekën e mikrodekoderit. Sigurisht, duke ecur përpara ju do të dëshironi t'i luani disi këto të dhëna audio, por kjo është tema e një udhëzimi tjetër.

#përfshi "SD.h" // hyrje

#përfshi "mp3.h" // deshifrues mp3 MP3; // Klasa MP3 pcm audio; // të dhëna të papërpunuara audio void setup () {Serial.begin (115200); // Setup Serial SD.begin (); // Konfiguro lidhjen SD Skedari i skedarit = SD.open ("/cc.mp3"); // Hapni një skedar MP3 MP3.fill (skedar); // Kalojeni skedarin në klasën MP3} loop void () {audio = MP3.decode (); // Dekodoni të dhënat audio në klasën pcm / * ka 32 mostra në audio. Të ndërlidhura (16 majtas dhe 16 djathtas) * por ne do të vizatojmë vetëm pikën e parë të të dhënave në secilin kanal. * Kjo zvogëlon në mënyrë efektive të dhënat me një faktor 16 (për * shikimin vetëm të formës së valës) */ Serial.print (audio.interleaved [0]); // kanali i majtë Serial.print (""); Serial.println (audio.interleaved [1]); // kanali i djathtë}

Recommended: