Мазмұны:

MP3 кодын шешуге арналған Arduino кітапханасы: 4 қадам
MP3 кодын шешуге арналған Arduino кітапханасы: 4 қадам

Бейне: MP3 кодын шешуге арналған Arduino кітапханасы: 4 қадам

Бейне: MP3 кодын шешуге арналған Arduino кітапханасы: 4 қадам
Бейне: Lesson 101: Using IR Remote to control TV, AC Bulb with Relay, DC Motor and Servo Motor 2024, Қараша
Anonim
MP3 кодын шешуге арналған Arduino кітапханасы
MP3 кодын шешуге арналған Arduino кітапханасы
MP3 кодын шешуге арналған Arduino кітапханасы
MP3 кодын шешуге арналған Arduino кітапханасы

ESP32 және ARM M сериялы MP3 сияқты жылдам микроконтроллерлердің таралуының жоғарылауына байланысты MP3 -ті декодтауды арнайы аппараттық құралдар қажет етпейді. Декодтауды енді бағдарламалық жасақтамада жасауға болады.

Earlephilhower -де көптеген аудио файлдарды декодтауды және оларды ESP микроконтроллерлерінде ойнатуды көрсететін керемет кітапхана бар. Мен осыдан шабыт алып, микроконтроллерлерде MP3 файлдарын оқудың модульдік әдісін жасау үшін кейбір кодты бейімдедім.

Бұл әдіс кез келген микроконтроллерде (тек ESP32 тақтасында емес) пайдалану үшін жеткілікті жалпы болады деп үміттенемін, бірақ мен қазір тек ESP32 -де сынап көрдім.

Жабдықтар

Мен бұрын айтқанымдай, бұл әдіс кез келген жылдам микроконтроллер үшін жұмыс істейді деп үміттенемін, бірақ олай болмауы мүмкін. Сондықтан менің нәтижелерімді қайталау үшін сізге қажет:

  • ESP32 тақтасы
  • SD ажырату тақтасы
  • SD картасы
  • Jumper Wires
  • нан тақтасы
  • микро USB кабелі (эскизді жүктеу үшін)
  • Arduino IDE

1 -қадам: Нан тақтасын орналастыру

Нан тақтасын орналастыру
Нан тақтасын орналастыру

ESP32 және SD картасының үзілуін тақтаға қойыңыз.

2 -қадам: SD картасын қосу

SD картасын қосу
SD картасын қосу

SD картасының қосылымдары (ESP32 SD үзілуі) келесідей:

GND GND

3v3 VDD

23 DI (MOSI)

19 DO (MISO)

18 SCLK

5 CS

Назар аударыңыз, егер сіз басқа микроконтроллерді қолдансаңыз, бұл қосылымдар басқаша болады.

3 -қадам: Бағдарламалық қамтамасыз ету кітапханалары

егер сізде ESP-IDF орнатылмаған болса, олардың веб-сайтына өтіп, оны орнатыңыз.

Содан кейін микрокодер кітапханасын орнатыңыз. Сіз мұны репозиторийді жүктеу және Arduino Libraries қалтасына орналастыру арқылы жасай аласыз. Микрокодер кітапханасы қазіргі уақытта.wav және.mp3 файлдарын қолдайды.

Пішімге қарамастан, әр сыныппен байланысты бірнеше жалпы әдістер бар және олар төмендегі кодта қамтылған. Бұл файлдардың метадеректерін алуды және оны сериялық мониторға басып шығаруды қамтиды.

#«SD.h» // енгізу

#include «mp3.h» // декодер #include «pcm.h» // өңделмеген аудио деректер контейнері mp3 MP3; void setup () {Serial.begin (115200); // Сериялық SD.begin () орнату; // SD байланысын орнату Файлдық файл = SD.open («/cc.mp3»); // MP3 файлын ашу MP3.begin (файл); // MP3 сыныбына MP3.getMetadata () қандай файлды өңдеу керектігін айтыңыз; // Metadadata Serial.print алу («Үлгіге бит:»); Serial.println (MP3.bitsPerSample); // биттерді басып шығару Serial.print («Sample Rate:») үлгісі бойынша; Serial.println (MP3. Fs); // және үлгі жылдамдығы} void loop () {}

4 -қадам: MP3 деректерін сериялық мониторға салыңыз

MP3 деректерін сериялық мониторға салыңыз
MP3 деректерін сериялық мониторға салыңыз

Төмендегі кодты қолдана отырып, сіз аудио деректерді сериялық мониторға орналастыра аласыз. Бұл өте баяу болады, бірақ MP3 кітапханасын қалай пайдалану керектігін көрсетеді. Ол сондай -ақ деректерді 16 есе төмендетеді, осылайша деректер сызылған кезде дыбыстық толқынға ұқсайды. Бұл код микродекодер кітапханасымен бірге келетін SPI_MP3_Serial.ino мысалынан алынды. Әрине, алға жылжу үшін сіз бұл аудио деректерді қалай да ойнатқыңыз келеді, бірақ бұл басқа нұсқаулықтың тақырыбы.

#«SD.h» // енгізу

#include «mp3.h» // декодер mp3 MP3 MP3; // MP3 сыныбы pcm аудио; // өңделмеген дыбыстық деректерді жарамсыз күйге келтіру () {Serial.begin (115200); // Сериялық SD.begin () орнату; // SD байланысын орнату Файлдық файл = SD.open («/cc.mp3»); // MP3 файлын ашу MP3.begin (файл); // Файлды MP3 сыныбына жіберу} void loop () {audio = MP3.decode (); // Аудио деректерді pcm сыныбына декодтау / * audio.interleaved ішінде 32 үлгі бар (16 сол және 16 оң жақта) *, бірақ біз тек әр арнаның бірінші деректер нүктесін саламыз. * Бұл деректерді 16 есе тиімді төмендетеді (тек толқын пішінін қарау үшін) */ Serial.print (audio.interleaved [0]); // сол жақ арна Serial.print («»); Serial.println (audio.interleaved [1]); // оң жақ канал}

Ұсынылған: