
Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-23 14:40


Kiirete mikrokontrollerite, nagu ESP32 ja ARM M seeria MP3 dekodeerimise suurenenud levimuse tõttu ei pea enam spetsiaalset riistvara tegema. Dekodeerimist saab nüüd teha tarkvaras.
Earlephilhowerilt on saadaval suurepärane raamatukogu, mis näitab, kuidas mitmesuguseid helifaile dekodeerida ja neid ESP -mikrokontrolleritel esitada. Sellest inspireerituna kohandasin osa koodist, et luua modulaarne meetod MP3 -failide lugemiseks mikrokontrolleritel.
Loodan, et see meetod on piisavalt üldine kasutamiseks piisavalt kiirel mikrokontrolleril (mitte ainult ESP32 plaadil), kuid praeguseks olen katsetanud ainult ESP32 -ga.
Tarvikud
Nagu ma juba ütlesin, loodan, et see meetod töötab iga kiire mikrokontrolleri puhul, kuid ei pruugi. Seetõttu vajate minu tulemuste kordamiseks:
- ESP32 plaat
- SD purunemisplaat
- SD -kaart
- Jumper juhtmed
- leivalaud
- mikro -USB -kaabel (visandi üleslaadimiseks)
- Arduino IDE
1. samm: leivalaua paigutamine

Asetage ESP32 ja SD -kaardi katkestused leivaplaadile.
Samm: SD -kaardi ühendamine

SD -kaardi ühendused (ESP32 SD -katkestus) on järgmised:
GND GND
3v3 VDD
23 DI (MOSI)
19 TEE (MISO)
18 SCLK
5 CS
Pange tähele, et need ühendused on erinevad, kui kasutate erinevat mikrokontrollerit.
3. samm: tarkvararaamatukogud
kui teil pole ESP-IDF-i installitud, minge nende veebisaidile ja installige see.
Seejärel installige mikrodecoder raamatukogu. Seda saate teha, laadides hoidla alla ja paigutades selle kausta Arduino Libraries. Mikrodekoodriteek toetab praegu.wav- ja.mp3 -faile.
Sõltumata vormingust on iga klassiga seotud mõned tavalised meetodid ja neid käsitletakse allolevas koodis. Nende hulka kuulub failide metaandmete hankimine ja jadamonitorile printimine.
#include "SD.h" // sisend
#include "mp3.h" // dekodeerija #include "pcm.h" // toores audioandmete konteiner mp3 MP3; void setup () {Serial.begin (115200); // Seeria seadistamine SD.begin (); // SD -ühenduse seadistamine Failifail = SD.open ("/cc.mp3"); // Ava MP3 fail MP3.begin (fail); // ütle MP3 klassile, millist faili töödelda MP3.getMetadata (); // hankige metaandmed Serial.print ("Bits per Sample:"); Serial.println (MP3.bitsPerSample); // trükibitte proovi kohta Serial.print ("Sample Rate:"); Serial.println (MP3. Fs); // ja proovivõtu sagedus} void loop () {}
Samm 4: Joonistage MP3 -andmed jadamonitorile

Alloleva koodiga saate joonistada jada monitorile mõningaid heliandmeid. See on väga aeglane, kuid näitab teile, kuidas MP3 -kogu kasutada. Samuti vähendab see andmete arvu 16 korda, nii et andmete joonistamisel näeks see välja nagu heli lainekuju. See kood on võetud näitest SPI_MP3_Serial.ino, mis on kaasas mikrodecoder raamatukoguga. Loomulikult tahate edasi liikudes neid heliandmeid kuidagi esitada, kuid see on teistsuguse juhendi teema.
#include "SD.h" // sisend
#include "mp3.h" // dekooder mp3 MP3; // MP3 klass pcm audio; // toores audioandmete tühistamine setup () {Serial.begin (115200); // Seeria seadistamine SD.begin (); // SD -ühenduse seadistamine Failifail = SD.open ("/cc.mp3"); // Ava MP3 fail MP3.begin (fail); // Faili edastamine MP3 klassi} void loop () {audio = MP3.decode (); // dekodeerida heliandmed pcm -klassi / * helis on 32 näidist. Interleaved (16 vasakul ja 16 paremal) *, kuid me joonistame ainult iga kanali esimese andmepunkti. * See võtab andmed tõhusalt alla 16 korda (ainult * lainekuju vaatamiseks) */ Serial.print (audio.interleaved [0]); // vasak kanal Serial.print (""); Serial.println (audio.interleaved [1]); // parem kanal}
Soovitan:
Arduino raamatukogu tegemine YouTube'i silmis: 7 sammu

Arduino raamatukogu loomine YouTube'i nägemiseks: Tere kõigile! Olen hiljuti loonud teenuse nimega YouTube Sight, mis suudab YouTube Analyticsi API -st hankida tellijate andmeid ja anda teile täpsemaid tellijate loendeid alates sellest, kui YouTube hakkas tulemusi koondama. Sellega olen loonud näite
Arduino tekst kõneks muundur, kasutades LM386 - Rääkiva Arduino projekt - Talkie Arduino raamatukogu: 5 sammu

Arduino tekst kõneks muundur, kasutades LM386 | Rääkiva Arduino projekt | Talkie Arduino raamatukogu: Tere poisid, paljudes projektides nõuame, et arduino räägiks midagi, nagu rääkiv kell või mõningaid andmeid, nii et need juhised muudame teksti kõneks Arduino abil
Kuidas Arduinole välist raamatukogu lisada: 3 sammu

Kuidas Arduinole välist raamatukogu lisada: Raamatukogu pakub meie tehtud visandile lisafunktsioone. Need funktsioonid aitavad meil visandeid lihtsustada. Kasutada on palju raamatukogusid. Arduino IDE vaikeraamatukogu või kellegi või kogukonna loodud väline raamatukogu. Selles
Ehitage oma Arduino raamatukogu: 5 sammu

Ehitage oma Arduino raamatukogu: Hei kõigile. Mõnes projektis peate võib -olla looma oma kogu, kui te ei saa valmis teeke kasutada. Või saate luua oma raamatukogu oma standardite järgi. Täna näitan teile, kui lihtsalt saate oma raamatukogu üles ehitada ja
Arduino toonigeneraator ilma raamatukogu või jadafunktsioonita (katkestustega): 10 sammu

Arduino toonigeneraator, millel pole raamatukogu ega jadafunktsioone (katkestustega): see pole midagi, mida ma tavaliselt juhendatavaks teeksin, eelistan oma metallitööd, kuid kuna olen elektrotehnikaüliõpilane ja pean läbima mikrokontrollerite klassi ( Sisseehitatud süsteemide disain), mõtlesin, et teen ühe oma p