Turinys:
- Prekės
- 1 žingsnis: Duonos lentos išdėstymas
- 2 veiksmas: SD kortelės prijungimas
- 3 žingsnis: programinės įrangos bibliotekos
- 4 žingsnis: Nubrėžkite MP3 duomenis serijiniame monitoriuje
Video: „Arduino“biblioteka MP3 dekodavimui: 4 žingsniai
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:44
Dėl padidėjusio greitų mikrovaldiklių, tokių kaip ESP32 ir ARM M serijos MP3, dekodavimo nebereikia specialios aparatūros. Dabar dekodavimą galima atlikti programine įranga.
„Earlephilhower“yra puiki biblioteka, kurioje parodyta, kaip iššifruoti įvairius garso failus ir juos paleisti naudojant ESP mikrovaldiklius. Įkvėptas to, pritaikiau dalį kodo, kad sukurtų modulinį MP3 failų skaitymo metodą mikrokontroleriuose.
Tikiuosi, kad šis metodas bus pakankamai universalus, kad jį būtų galima naudoti bet kokiame pakankamai greitam mikrovaldikliui (ne tik ESP32 plokštėje), bet kol kas išbandžiau tik su ESP32.
Prekės
Kaip jau sakiau anksčiau, tikiuosi, kad šis metodas veiks bet kuriam greitam mikrovaldikliui, bet gali ne. Taigi, norėdami pakartoti mano rezultatus, jums reikės:
- ESP32 plokštė
- SD pertraukimo lenta
- SD kortelė
- Trumpieji laidai
- Bandomoji Lenta
- mikro USB kabelis (eskizui įkelti)
- „Arduino IDE“
1 žingsnis: Duonos lentos išdėstymas
Padėkite ESP32 ir SD kortelės pertraukas ant duonos lentos.
2 veiksmas: SD kortelės prijungimas
SD kortelės jungtys (ESP32 SD pertrauka) yra šios:
GND GND
3v3 VDD
23 DI (MOSI)
19 DARYTI (MISO)
18 SCLK
5 CS
Atminkite, kad jei naudojate kitą mikrovaldiklį, šios jungtys bus skirtingos.
3 žingsnis: programinės įrangos bibliotekos
jei neturite įdiegto ESP-IDF, eikite į jų svetainę ir įdiekite ją.
Tada įdiekite mikrodekoderių biblioteką. Tai galite padaryti atsisiųsdami saugyklą ir įdėję ją į aplanką „Arduino Libraries“. Mikrodekoderių biblioteka šiuo metu palaiko.wav ir.mp3 failus.
Nepriklausomai nuo formato, yra keletas bendrų metodų, susijusių su kiekviena klase, ir jie aprašyti toliau pateiktame kode. Tai apima kai kurių failų metaduomenų gavimą ir spausdinimą į nuoseklųjį monitorių.
#include "SD.h" // įvestis
#include "mp3.h" // dekoderis #include "pcm.h" // neapdoroto garso duomenų konteineris mp3 MP3; void setup () {Serial.begin (115200); // Sąrankos serijos SD.begin (); // Nustatyti SD ryšį Failo failas = SD.open ("/cc.mp3"); // Atidaryti MP3 failą MP3.begin (failas); // nurodykite MP3 klasei, kokį failą apdoroti MP3.getMetadata (); // gauti metaduomenis Serial.print ("Bits per Sample:"); Serial.println (MP3.bitsPerSample); // spausdinti bitus per pavyzdį Serial.print ("Sample Rate:"); Serial.println (MP3. Fs); // ir mėginio dažnis} void loop () {}
4 žingsnis: Nubrėžkite MP3 duomenis serijiniame monitoriuje
Naudodami toliau pateiktą kodą, serijiniame monitoriuje galite nubraižyti kai kuriuos garso duomenis. Tai bus labai lėta, bet parodys, kaip naudotis MP3 biblioteka. Jis taip pat sumažina duomenų pavyzdžius 16 kartų, kad nubraižant duomenis jie atrodytų kaip garso bangos forma. Šis kodas paimtas iš pavyzdžio SPI_MP3_Serial.ino, kuris pateikiamas kartu su mikrodekoderių biblioteka. Žinoma, judėdami į priekį norėsite kažkaip paleisti šiuos garso duomenis, tačiau tai yra kita pamokoma tema.
#include "SD.h" // įvestis
#include "mp3.h" // dekoderis mp3 MP3; // MP3 klasė pcm audio; // neapdorotų garso duomenų void setup () {Serial.begin (115200); // Sąrankos serijos SD.begin (); // Nustatyti SD ryšį Failo failas = SD.open ("/cc.mp3"); // Atidaryti MP3 failą MP3.begin (failas); // Perduoti failą MP3 klasei} void loop () {audio = MP3.decode (); // Garso duomenų dekodavimas į pcm klasę / * garso įraše yra 32 pavyzdžiai.interleaved (16 kairėje ir 16 dešinėje) *, bet mes ketiname nubrėžti tik pirmąjį kiekvieno kanalo duomenų tašką. * Tai efektyviai sumažina duomenų koeficientą 16 kartų (* tik bangos formai peržiūrėti) */ Serial.print (garso įrašas. // kairysis kanalas Serial.print (""); Serial.println (audio.interleaved [1]); // dešinysis kanalas}
Rekomenduojamas:
Šviesos intensyvumo braižymas naudojant „Arduino“ir „Python“„Arduino“pagrindinę biblioteką: 5 žingsniai
Šviesos intensyvumo braižymas naudojant „Arduino“ir „Python“„Arduino“pagrindinę biblioteką: „Arduino“yra ekonomiškas, tačiau labai efektyvus ir funkcionalus įrankis, jį programavus „Embedded C“projektų kūrimo procesas yra varginantis! „Python“modulis „Arduino_Master“tai supaprastina ir leidžia atlikti skaičiavimus, pašalinti šiukšlių vertes
„Arduino“teksto į kalbą keitiklis naudojant LM386 - Kalbantis „Arduino“projektas - „Talkie Arduino“biblioteka: 5 žingsniai
„Arduino“teksto į kalbą keitiklis naudojant LM386 | Kalbantis „Arduino“projektas | „Talkie Arduino“biblioteka: Sveiki vaikinai, daugelyje projekto mes reikalaujame, kad arduino kalbėtų kažką panašaus į kalbantį laikrodį ar pasakytų tam tikrus duomenis, todėl pagal šias instrukcijas tekstą paversime kalba, naudodami „Arduino“
Kaip pridėti išorinę biblioteką prie „Arduino“: 3 veiksmai
Kaip pridėti išorinę biblioteką prie „Arduino“: biblioteka suteikia papildomų funkcijų mūsų sukurtam eskizui. Šios funkcijos gali padėti mums padaryti eskizus lengvesnius. Galime naudoti daug bibliotekų. Numatytoji „Arduino IDE“biblioteka arba išorinė biblioteka, kurią sukūrė kažkas ar bendruomenė. Šiame
Sukurkite savo „Arduino“biblioteką: 5 žingsniai
Sukurkite savo „Arduino“biblioteką: Sveiki visi. Kai kuriuose projektuose gali tekti susikurti savo biblioteką, kai negalite naudotis paruoštomis bibliotekomis. Arba galite sukurti savo biblioteką pagal savo standartus. Šiandien aš jums parodysiu, kaip lengvai galite sukurti savo biblioteką ir
Biblioteka BMP280 ir BME280: 7 žingsniai
Biblioteka BMP280 ir BME280: Įvadas Aš nesiruošiau rašyti šios bibliotekos. Tai " atsitiko " kaip šalutinis projekto, kurį pradėjau naudoti BMP280, poveikis. Tas projektas dar nebaigtas, bet manau, kad biblioteka yra pasirengusi dalytis su kitais. Vėliau turėjau ne