Cov txheej txheem:

Arduino Lub Tsev Qiv Ntawv rau MP3 Txiav Txim Siab: 4 Kauj Ruam
Arduino Lub Tsev Qiv Ntawv rau MP3 Txiav Txim Siab: 4 Kauj Ruam

Video: Arduino Lub Tsev Qiv Ntawv rau MP3 Txiav Txim Siab: 4 Kauj Ruam

Video: Arduino Lub Tsev Qiv Ntawv rau MP3 Txiav Txim Siab: 4 Kauj Ruam
Video: Dab neeg Nkauj nraug cog lus ruaj tuag thiaj tseem nco los tos - Ghost story 2024, Hlis ntuj nqeg
Anonim
Arduino Lub Tsev Qiv Ntawv rau MP3 Txiav Txim Siab
Arduino Lub Tsev Qiv Ntawv rau MP3 Txiav Txim Siab
Arduino Lub Tsev Qiv Ntawv rau MP3 Txiav Txim Siab
Arduino Lub Tsev Qiv Ntawv rau MP3 Txiav Txim Siab

Vim tias muaj kev nce ntxiv ntawm cov tswj hwm microcontrollers nrawm xws li ESP32 thiab ARM M series MP3 txiav txim siab tsis tas yuav tsum tau ua los ntawm cov kws kho vajtse tshwj xeeb. Tam sim no kev txiav txim siab tuaj yeem ua tiav hauv software.

Muaj lub tsev qiv ntawv zoo muaj los ntawm earlephilhower uas qhia yuav ua li cas txiav txim siab ntau yam ntawm cov ntaub ntawv audio thiab ua si lawv ntawm ESP microcontrollers. Kev tshoov siab los ntawm qhov no kuv yoog qee qhov cai los tsim cov qauv kev hloov pauv ntawm kev nyeem MP3 cov ntaub ntawv ntawm microcontrollers.

Kuv qhov kev cia siab yog tias txoj hauv kev no yuav muaj txiaj ntsig zoo rau siv ntawm txhua qhov nrawm microcontroller (tsis yog ESP32 pawg thawj coj) tab sis tam sim no kuv tsuas yog sim ntawm ESP32.

Khoom siv

Raws li kuv tau hais ua ntej, Kuv vam tias txoj hauv kev no yuav ua haujlwm rau txhua lub microcontroller nrawm, tab sis nws yuav tsis ua. Yog li txhawm rau luam tawm kuv cov txiaj ntsig koj yuav xav tau:

  • Ib pawg ESP32
  • SD breakout board
  • SD daim npav
  • Jumper Hlau
  • daim ntawv qhia zaub mov
  • micro USB cable (rau rub tawm daim duab)
  • Arduino IDE Cov

Kauj Ruam 1: Teem Tawm Breadboard

Teem Tawm Breadboard
Teem Tawm Breadboard

Muab ESP32 thiab SD daim npav tawm ntawm daim ntawv tais.

Kauj ruam 2: Txuas daim npav SD

Txuas daim npav SD
Txuas daim npav SD

SD daim npav sib txuas (ESP32 SD breakout) muaj raws li hauv qab no:

GND GND

3v3vd wb

23 DI (MOSI)

19 TSO (MISO)

18 TSO

5 CSJ

Thov nco ntsoov tias cov kev sib txuas no yuav txawv yog tias koj siv lub microcontroller sib txawv.

Kauj Ruam 3: Lub Tsev qiv ntawv Software

yog tias koj tsis muaj ESP-IDF teeb tsa lub taub hau mus rau lawv lub vev xaib thiab teeb tsa nws.

Tom qab ntawd teeb tsa lub tsev qiv ntawv microdecoder. Koj tuaj yeem ua qhov no los ntawm rub tawm cov chaw cia khoom thiab muab tso rau hauv koj phau ntawv Arduino Libraries. Lub tsev qiv ntawv microdecoder tam sim no txhawb nqa.wav thiab.mp3 cov ntaub ntawv.

Tsis hais txog hom ntawv twg, muaj ob peb txoj hauv kev cuam tshuam nrog txhua chav kawm thiab lawv tau hais nyob hauv cov cai hauv qab no. Cov no suav nrog tau txais qee cov ntaub ntawv metadata thiab luam tawm nws mus rau tus saib xyuas.

#suav nrog "SD.h" // tawm tswv yim

#include "mp3.h" // decoder #include "pcm.h" // raw cov ntaub ntawv audio ntim MP3 MP3; teeb tsa tsis muaj dab tsi () {Serial.begin (115200); // Teeb Serial SD.begin (); // Teeb SD kev sib txuas Cov ntaub ntawv cov ntaub ntawv = SD.open ("/cc.mp3"); // Qhib MP3 File MP3.begin (file); // qhia rau chav kawm MP3 tias yuav ua ntaub ntawv li cas rau MP3.getMetadata (); // tau txais cov metdadata Serial.print ("Cov khoom ib tus qauv:"); Serial.println (MP3.bitsPerSample); // luam cov khoom ib tus qauv Serial.print ("Tus Qauv Qauv:"); Serial.println (MP3. Fs); // thiab tus nqi piv txwv} void loop () {}

Kauj Ruam 4: Npaj MP3 Cov Ntaub Ntawv ntawm Serial Monitor

Plot MP3 Cov Ntaub Ntawv ntawm Serial Monitor
Plot MP3 Cov Ntaub Ntawv ntawm Serial Monitor

Nrog cov cai hauv qab no koj tuaj yeem npaj qee cov ntaub ntawv suab ntawm Serial monitor. Qhov no yuav qeeb heev tab sis yuav qhia koj siv lub tsev qiv ntawv MP3 li cas. Nws kuj tseem txo qis cov ntaub ntawv los ntawm ib qho ntawm 16 kom thaum cov ntaub ntawv tau npaj tseg nws zoo li lub suab yoj. Cov cai no tau coj los ntawm tus piv txwv SPI_MP3_Serial.ino uas los nrog lub tsev qiv ntawv microdecoder. Tau kawg, txav mus rau tom ntej koj yuav xav ua cov ntaub ntawv audio no li cas tab sis qhov ntawd yog lub ncauj lus ntawm kev qhia sib txawv.

#suav nrog "SD.h" // tawm tswv yim

#include "mp3.h" // decoder mp3 MP3; // MP3 Class pcm suab; // raw cov ntaub ntawv audio void teeb () {Serial.begin (115200); // Teeb Serial SD.begin (); // Teeb SD kev sib txuas Cov ntaub ntawv cov ntaub ntawv = SD.open ("/cc.mp3"); // Qhib MP3 File MP3.begin (file); // Xa cov ntawv mus rau MP3 chav kawm} void loop () {audio = MP3.decode (); // Txiav suab cov ntaub ntawv rau hauv chav kawm pcm / * muaj 32 qhov piv txwv hauv suab.interleaved (16 sab laug thiab 16 txoj cai) * tab sis peb tsuas yog mus rau phiaj thawj cov ntaub ntawv taw tes hauv txhua lub channel. * Qhov no ua tau zoo txo cov ntaub ntawv los ntawm qhov tseem ceeb ntawm 16 (rau * saib cov duab yoj xwb) */ Serial.print (audio.interleaved [0]); // sab laug channel Serial.print (""); Serial.println (audio.interleaved [1]); // txoj cai channel}

Pom zoo: