Talaan ng mga Nilalaman:
- Mga gamit
- Hakbang 1: Paglalagay ng Breadboard
- Hakbang 2: Mga kable sa SD Card
- Hakbang 3: Ang Mga Library ng Software
- Hakbang 4: I-plot ang Data ng MP3 sa Serial Monitor
Video: Arduino Library para sa Pag-decode ng MP3: 4 Mga Hakbang
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:10
Dahil sa nadagdagang pagkalat ng mga mabilis na microcontroller tulad ng ESP32 at ang ARM M series na MP3 decoding ay hindi na kinakailangan upang gawin ng espesyalista na hardware. Ang pag-decode ay maaari nang gawin sa software.
Mayroong isang mahusay na silid-aklatan na magagamit mula sa earlephilhower na nagpapakita kung paano mai-decode ang isang iba't ibang mga audio file at i-play ang mga ito sa mga microcontroller ng ESP. May inspirasyon sa pamamagitan nito na inangkop ko ang ilan sa mga code upang lumikha ng isang modular na pamamaraan ng pagbabasa ng mga MP3 file sa mga microcontroller.
Ang aking pag-asa ay ang pamamaraang ito ay magiging sapat na generic para magamit sa anumang sapat na mabilis na microcontroller (hindi lamang isang board ng ESP32) ngunit sa ngayon ay nasubukan ko lamang sa isang ESP32.
Mga gamit
Tulad ng sinabi ko dati, inaasahan kong gagana ang pamamaraang ito para sa anumang mabilis na microcontroller, ngunit maaaring hindi. Samakatuwid upang makopya ang aking mga resulta kakailanganin mo:
- Isang board ng ESP32
- SD breakout board
- SD card
- Jumper Wires
- breadboard
- micro USB cable (para sa pag-upload ng sketch)
- Arduino IDE
Hakbang 1: Paglalagay ng Breadboard
Ilagay ang breakout ng ESP32 at SD card sa breadboard.
Hakbang 2: Mga kable sa SD Card
Ang mga koneksyon sa SD card (breakout ng ESP32 SD) ay ang mga sumusunod:
GND GND
3v3 VDD
23 DI (MOSI)
19 DO (MISO)
18 SCLK
5 CS
Mangyaring tandaan na ang mga koneksyon na ito ay magkakaiba kung gumagamit ka ng ibang microcontroller.
Hakbang 3: Ang Mga Library ng Software
kung wala kang naka-install na ESP-IDF na magtungo sa kanilang website at i-install ito.
Pagkatapos i-install ang microdecoder library. Maaari mo itong gawin sa pamamagitan ng pag-download ng repository at ilagay ito sa iyong folder ng Arduino Library. Kasalukuyang sinusuportahan ng library ng microdecoder ang.wav at.mp3 na mga file.
Anuman ang format, mayroong ilang mga karaniwang pamamaraan na nauugnay sa bawat klase at sakop sila sa code sa ibaba. Kasama rito ang pagkuha ng ilang mga file na metadata at i-print ito sa serial monitor.
# isama ang "SD.h" // input
#include "mp3.h" // decoder #include "pcm.h" // raw audio data container mp3 MP3; void setup () {Serial.begin (115200); // Setup Serial SD.begin (); // Setup SD connection File file = SD.open ("/ cc.mp3"); // Buksan ang isang MP3 File MP3.begin (file); // sabihin sa klase ng MP3 kung anong file ang iproseso ng MP3.getMetadata (); // get the metdadata Serial.print ("Bits per Sample:"); Serial.println (MP3.bitsPerSample); // print bits per sample Serial.print ("Sample Rate:"); Serial.println (MP3. Fs); // at sample rate} void loop () {}
Hakbang 4: I-plot ang Data ng MP3 sa Serial Monitor
Gamit ang code sa ibaba maaari kang magbalangkas ng ilang data ng audio sa Serial monitor. Ito ay magiging mabagal ngunit ipapakita sa iyo kung paano gamitin ang MP3 library. Nababawas din nito ang data sa pamamagitan ng isang factor na 16 upang kapag ang data ay naka-plot ay mukhang isang audio waveform. Ang code na ito ay kinuha mula sa halimbawang SPI_MP3_Serial.ino na kasama ng silid-aklatan ng microdecoder. Siyempre, sa pagsulong ay gugustuhin mong i-play ang audio data na ito kahit papaano ngunit iyon ang paksa ng ibang itinuro.
# isama ang "SD.h" // input
# isama ang "mp3.h" // decoder mp3 MP3; // MP3 Class pcm audio; // raw audio data void setup () {Serial.begin (115200); // Setup Serial SD.begin (); // Setup SD connection File file = SD.open ("/ cc.mp3"); // Buksan ang isang MP3 File MP3.begin (file); // Pass file to MP3 class} void loop () {audio = MP3.decode (); // Decode audio data into pcm class / * mayroong 32 mga sample sa audio.interleaved (16 kaliwa at 16 kanan) * ngunit lalagyan lamang namin ang unang punto ng data sa bawat channel. * Epektibong ibinabagsak nito ang data sa pamamagitan ng isang factor na 16 (para sa * pagtingin lamang ng waveform) * / Serial.print (audio.interleaved [0]); // left channel Serial.print (""); Serial.println (audio.interleaved [1]); // kanang channel}
Inirerekumendang:
Awtomatikong Pag-iikma ng Iniksyon para sa Pag-recycle ng Plastik: 5 Mga Hakbang
Awtomatikong Iniksyon na Pag-iikma ng Iniksyon para sa Pag-recycle ng Plastik: Kumusta :) Ang Ituturo na Ito ay tungkol sa aming " awtomatikong iniksyon na iniksyon ng iniksyon para sa pag-recycle ng plastik ". (tinatawag na: Smart Injector) Ang ideya sa likod ng makina ay upang mag-alok ng isang desentralisadong solusyon sa pag-recycle ng plastic. Ang pag-recycle ay madalas na limitado
HeadBot - isang Robot na Nagbabago ng Sarili para sa Pag-aaral at Pag-abot sa STEM: 7 Mga Hakbang (na may Mga Larawan)
HeadBot - isang Self-Balancing Robot para sa STEM Learning and Outreach: Headbot - isang dalawang talampakan ang taas, self-balancing robot - ay ang ideya ng South Eugene Robotics Team (SERT, FRC 2521), isang mapagkumpitensyang pangkat ng robotics ng high school sa UNA Kompetisyon ng Robotics, mula sa Eugene, Oregon. Ang sikat na robot sa pag-abot na ito ay ginagawang
Pag-iniksyon sa Keyboard / Awtomatikong I-type ang Iyong Password Sa Isang Pag-click !: 4 Mga Hakbang (na may Mga Larawan)
Pag-iniksyon sa Keyboard / Awtomatikong I-type ang Iyong Password Sa Isang Pag-click !: Mahirap ang mga password … at ang pag-alala sa isang ligtas ay mas mahirap pa! Bukod dito kung mayroon kang kasama, nagbabagong password ay magtatagal ito upang mai-type. Ngunit huwag matakot sa aking mga kaibigan, mayroon akong solusyon dito! Lumikha ako ng isang maliit na awtomatikong pag-type ng makina na
Roomblock: isang Platform para sa Pag-aaral ng Pag-navigate sa ROS Sa Roomba, Raspberry Pi at RPLIDAR: 9 Mga Hakbang (na may Mga Larawan)
Roomblock: isang Platform para sa Pag-aaral ng Pag-navigate sa ROS Sa Roomba, Raspberry Pi at RPLIDAR: Ano ito? &Quot; Roomblock " ay isang robot platform na binubuo ng isang Roomba, isang Raspberry Pi 2, isang laser sensor (RPLIDAR) at isang mobile baterya. Ang mounting frame ay maaaring gawin ng mga 3D printer. Pinapayagan ang sistema ng nabigasyon ng ROS na gumawa ng isang mapa ng mga silid at gamitin ang
Arduino Obstacle Pag-iwas sa Robot (Bersyon ng Pag-upgrade): 7 Mga Hakbang (na may Mga Larawan)
Arduino Obstacle Avoiding Robot (Upgrade Version): Ang post na ito ay unang nai-publish sa website na ito https://truesains22.blogspot.com/2018/01/arduino-obstacle-avoiding-robotupgrade.html Sagabal Pag-iwas sa Robot. Ito ay simple ngunit ilang tampok at