Tartalomjegyzék:

Arduino könyvtár MP3 dekódoláshoz: 4 lépés
Arduino könyvtár MP3 dekódoláshoz: 4 lépés

Videó: Arduino könyvtár MP3 dekódoláshoz: 4 lépés

Videó: Arduino könyvtár MP3 dekódoláshoz: 4 lépés
Videó: Урок 101. Использование ИК-пульта дистанционного управления для управления телевизором, лампочкой переменного тока с реле, двигателем постоянного тока и серводвигателем. 2024, Július
Anonim
Arduino könyvtár MP3 dekódoláshoz
Arduino könyvtár MP3 dekódoláshoz
Arduino könyvtár MP3 dekódoláshoz
Arduino könyvtár MP3 dekódoláshoz

A gyors mikrokontrollerek, például az ESP32 és az ARM M sorozatú MP3 dekódolás megnövekedett elterjedtsége miatt már nem kell speciális hardvereknek elvégezniük. A dekódolás most már szoftveresen is elvégezhető.

Az earlephilhower nagyszerű könyvtárat kínál, amely bemutatja, hogyan lehet dekódolni a különféle hangfájlokat és lejátszani őket ESP mikrokontrollereken. Ebből inspirálva a kód egy részét úgy alakítottam ki, hogy létrehozzam egy moduláris módszert az MP3 fájlok mikrokontrollereken történő olvasására.

Remélem, hogy ez a módszer elég általános lesz ahhoz, hogy bármilyen gyors mikrokontrollerre (nem csak egy ESP32 kártyára) lehessen használni, de jelenleg csak ESP32 -en teszteltem.

Kellékek

Ahogy korábban mondtam, remélem, hogy ez a módszer minden gyors mikrokontrollernél működni fog, de lehet, hogy nem. Ezért az eredményeim megismétléséhez szüksége lesz:

  • ESP32 kártya
  • SD kitörő tábla
  • SD kártya
  • Jumper vezetékek
  • kenyeretábla
  • mikro USB kábel (vázlat feltöltéséhez)
  • Arduino IDE

1. lépés: A kenyértábla elhelyezése

A kenyértábla elhelyezése
A kenyértábla elhelyezése

Helyezze az ESP32 és az SD -kártya levágását a kenyérlapra.

2. lépés: Az SD -kártya bekötése

Az SD kártya bekötése
Az SD kártya bekötése

Az SD -kártya csatlakozásai (ESP32 SD -megszakítás) a következők:

GND GND

3v3 VDD

23 DI (MOSI)

19 DO (MISO)

18 SCLK

5 CS

Kérjük, vegye figyelembe, hogy ezek a kapcsolatok eltérőek lesznek, ha más mikrokontrollert használ.

3. lépés: A szoftverkönyvtárak

Ha nincs telepítve az ESP-IDF, lépjen a webhelyükre, és telepítse azt.

Ezután telepítse a mikrodecoder könyvtárat. Ezt úgy teheti meg, hogy letölti a lerakatot, és az Arduino Libraries mappába helyezi. A mikrodecoder könyvtár jelenleg támogatja a.wav és.mp3 fájlokat.

A formátumtól függetlenül néhány általános módszer kapcsolódik az egyes osztályokhoz, és ezeket az alábbi kód tartalmazza. Ezek közé tartozik a fájlok metaadatainak beszerzése és a soros monitorra történő nyomtatása.

#include "SD.h" // input

#include "mp3.h" // dekódoló #include "pcm.h" // nyers audioadat -tároló mp3 MP3; void setup () {Serial.begin (115200); // Soros SD beállítása.begin (); // SD kapcsolat beállítása Fájlfájl = SD.open ("/cc.mp3"); // MP3 fájl megnyitása MP3.begin (fájl); // mondja meg az MP3 osztálynak, hogy milyen fájlt kell feldolgoznia MP3.getMetadata (); // szerezze be a Serial.print metaadatokat ("Bits per Sample:"); Serial.println (MP3.bitsPerSample); // bitek nyomtatása mintánként Serial.print ("Sample Rate:"); Soros.println (MP3. Fs); // és mintavételi arány} void loop () {}

4. lépés: Ábrázolja az MP3 adatokat a soros monitoron

Rajzoljon MP3 adatokat a soros monitoron
Rajzoljon MP3 adatokat a soros monitoron

Az alábbi kóddal néhány audioadatot rajzolhat a soros monitoron. Ez nagyon lassú lesz, de megmutatja, hogyan kell használni az MP3 könyvtárat. Ezenkívül 16 -szorosára csökkenti az adatok mintáját, így az adatok ábrázolásakor hanghullámformának tűnik. Ez a kód az SPI_MP3_Serial.ino példából származik, amely a mikrodecoder könyvtárhoz tartozik. Természetesen, ha tovább szeretne lépni, valahogy le akarja játszani ezeket az audioadatokat, de ez egy másik oktatható téma.

#include "SD.h" // input

#include "mp3.h" // dekódoló mp3 MP3; // MP3 osztály pcm audio; // nyers audio adatok void setup () {Serial.begin (115200); // Soros SD beállítása.begin (); // SD kapcsolat beállítása Fájlfájl = SD.open ("/cc.mp3"); // MP3 fájl megnyitása MP3.begin (fájl); // Fájl átvitele MP3 osztályba} void loop () {audio = MP3.decode (); // Az audio adatok dekódolása pcm osztályba * Ez hatékonyan lecsökkenti az adatok 16 -szorosát (csak * a hullámforma megtekintéséhez) */ Serial.print (audio.interleaved [0]); // bal csatorna Serial.print (""); Serial.println (audio.interleaved [1]); // jobb csatorna}

Ajánlott: