Orodha ya maudhui:

Maktaba ya Arduino ya Uamuzi wa MP3: Hatua 4
Maktaba ya Arduino ya Uamuzi wa MP3: Hatua 4

Video: Maktaba ya Arduino ya Uamuzi wa MP3: Hatua 4

Video: Maktaba ya Arduino ya Uamuzi wa MP3: Hatua 4
Video: The Doctrine of Repentance | Thomas Watson | Christian Audiobook 2024, Desemba
Anonim
Maktaba ya Arduino ya Kusimba MP3
Maktaba ya Arduino ya Kusimba MP3
Maktaba ya Arduino ya Kusimba MP3
Maktaba ya Arduino ya Kusimba MP3

Kwa sababu ya kuongezeka kwa idadi kubwa ya watawala wadhibiti kasi kama vile ESP32 na ARM M safu ya usimbuaji MP3 haihitajiki tena kufanywa na vifaa maalum. Usimbuaji sasa unaweza kufanywa katika programu.

Kuna maktaba nzuri inayopatikana kutoka kwa earlephilhower ambayo inaonyesha jinsi ya kung'amua faili anuwai za sauti na ucheze kwenye wadhibiti wa ESP. Nilichochewa na hii nikabadilisha nambari kadhaa kuunda njia ya kawaida ya kusoma faili za MP3 kwenye watawala wadogo.

Matumaini yangu ni kwamba njia hii itakuwa ya kawaida kwa matumizi ya microcontroller yoyote ya haraka (sio tu bodi ya ESP32) lakini hadi sasa nimejaribu tu kwenye ESP32.

Vifaa

Kama nilivyosema hapo awali, natumahi njia hii itafanya kazi kwa mdhibiti mdogo zaidi, lakini inaweza isiwe. Kwa hivyo kurudia matokeo yangu utahitaji:

  • Bodi ya ESP32
  • Bodi ya kuzuka kwa SD
  • Kadi ya SD
  • Waya za Jumper
  • ubao wa mkate
  • kebo ndogo ya USB (ya kupakia mchoro)
  • Arduino IDE

Hatua ya 1: Kuweka Bodi ya Mkate

Kuweka Bodi ya Mkate
Kuweka Bodi ya Mkate

Weka ESP32 na kuzuka kwa kadi ya SD kwenye ubao wa mkate.

Hatua ya 2: Wiring Kadi ya SD

Wiring kadi ya SD
Wiring kadi ya SD

Uunganisho wa kadi ya SD (kuzuka kwa ESP32 SD) ni kama ifuatavyo:

GND GND

3v3 VDD

23 DI (MOSI)

19 FANYA (MISO)

18 SCLK

5 CS

Tafadhali kumbuka kuwa unganisho hili litakuwa tofauti ikiwa unatumia mdhibiti mdogo.

Hatua ya 3: Maktaba za Programu

ikiwa huna kichwa cha ESP-IDF kilichowekwa kwenye wavuti yao na usakinishe.

Kisha sakinisha maktaba ya microdecoder. Unaweza kufanya hivyo kwa kupakua hazina na kuiweka kwenye folda yako ya Maktaba za Arduino. Maktaba ya microdecoder kwa sasa inasaidia faili za.wav na.mp3.

Bila kujali muundo, kuna njia kadhaa za kawaida zinazohusiana na kila darasa na zinafunikwa kwenye nambari hapa chini. Hii ni pamoja na kupata metadata ya faili na kuichapisha kwa mfuatiliaji wa serial.

# pamoja na "SD.h" // pembejeo

# pamoja na "mp3.h" // decoder # pamoja na "pcm.h" // chombo cha data ghafi ya sauti mp3 MP3; kuanzisha batili () {Serial.begin (115200); // Usanidi wa Serial SD.anza (); // Kuanzisha unganisho la SD File file = SD.open ("/ cc.mp3"); // Fungua MP3 MP3 MP3.begin (faili); // liambie darasa la MP3 faili gani ya kusindika MP3.getMetadata (); // pata metdadata Serial.print ("Bits kwa Sampuli:"); Serial.println (MP3.bitsPerSample); // bits za kuchapisha kwa sampuli Serial.print ("Kiwango cha Mfano:"); Serial.println (MP3. Fs); // na kiwango cha sampuli} kitanzi batili () {}

Hatua ya 4: Tengeneza Takwimu za MP3 kwenye Ufuatiliaji wa serial

Tengeneza Takwimu za MP3 kwenye Ufuatiliaji wa serial
Tengeneza Takwimu za MP3 kwenye Ufuatiliaji wa serial

Ukiwa na nambari hapa chini unaweza kupanga data ya sauti kwenye mfuatiliaji wa serial. Hii itakuwa polepole sana lakini itakuonyesha jinsi ya kutumia maktaba ya MP3. Pia hupunguza data kwa sababu ya 16 ili wakati data imepangwa inaonekana kama muundo wa wimbi la sauti. Nambari hii inachukuliwa kutoka kwa mfano SPI_MP3_Serial.ino ambayo inakuja na maktaba ya microdecoder. Kwa kweli, kusonga mbele utataka kucheza data hii ya sauti kwa njia fulani lakini hiyo ndio mada ya kufundisha tofauti.

# pamoja na "SD.h" // pembejeo

# pamoja na "mp3.h" // decoder mp3 MP3; // MP3 Darasa la pcm audio; // kuanzisha data batili ya sauti () {Serial.begin (115200); // Usanidi wa Serial SD.anza (); // Kuanzisha unganisho la SD File file = SD.open ("/ cc.mp3"); // Fungua MP3 MP3 MP3.begin (faili); // Pitisha faili kwa darasa la MP3} kitanzi batili () {audio = MP3.decode (); // Tambua data ya sauti katika darasa la pcm / * kuna sampuli 32 katika sauti. Iliyofunikwa (16 kushoto na 16 kulia) * lakini tutapanga tu hatua ya kwanza ya data katika kila kituo. * Hii inadhoofisha data kwa kiwango cha 16 (kwa * kutazama muundo wa wimbi tu) * / Serial.print (audio.interleaved [0]); // kituo cha kushoto Serial.print (""); Serial.println (audio.interleaved [1]); // idhaa ya kulia}

Ilipendekeza: