Агуулгын хүснэгт:

MP3 код тайлах Arduino номын сан: 4 алхам
MP3 код тайлах Arduino номын сан: 4 алхам

Видео: MP3 код тайлах Arduino номын сан: 4 алхам

Видео: MP3 код тайлах Arduino номын сан: 4 алхам
Видео: Forgot Pin Code? Samsung A12 (SM-A125F). Delete pattern, pin, password lock. 2024, Арваннэгдүгээр
Anonim
MP3 код тайлах зориулалттай Arduino номын сан
MP3 код тайлах зориулалттай Arduino номын сан
MP3 код тайлах зориулалттай Arduino номын сан
MP3 код тайлах зориулалттай Arduino номын сан

ESP32, ARM M серийн MP3 зэрэг хурдан микроконтроллеруудын тархалт нэмэгдсэн тул тусгай кодын тусламжтайгаар код тайлах шаардлагагүй болсон. Код тайлах ажлыг одоо програм хангамж дээр хийж болно.

Earlephilhower -аас маш олон төрлийн аудио файлуудыг хэрхэн декодлох, ESP микроконтроллер дээр тоглуулахыг харуулсан гайхалтай номын сан байдаг. Үүнээс санаа авч би кодын зарим хэсгийг микроконтроллер дээр MP3 файлуудыг унших модульчлагдсан аргыг бий болгосон.

Энэ арга нь хангалттай хурдан микроконтроллерт ашиглахад хангалттай ерөнхий байх болно гэж найдаж байна (зөвхөн ESP32 самбар биш), гэхдээ одоогоор би зөвхөн ESP32 дээр туршиж үзсэн.

Хангамж

Өмнө хэлсэнчлэн, энэ арга нь ямар ч хурдан микроконтроллерт үр дүнтэй байх болно гэж найдаж байна, гэхдээ тийм биш байж магадгүй юм. Тиймээс миний үр дүнг давтахын тулд танд дараахь зүйлс хэрэгтэй болно.

  • ESP32 самбар
  • SD таслах самбар
  • SD карт
  • Холбогч утас
  • талх
  • микро 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 суулгаагүй бол вэбсайт руу нь ороод суулгаарай.

Дараа нь microdecoder номын санг суулгана уу. Та үүнийг хадгалах санг татаж аваад 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.getMetadata () файлыг боловсруулах файлыг MP3 ангилалд хэлнэ үү; // metdadaata Serial.print авах ("Нэг дээж дэх бит:"); Serial.println (MP3.bitsPerSample); // дээж бүрт битүүдийг хэвлэх Serial.print ("Sample Rate:"); Serial.println (MP3. Fs); // ба түүврийн хурд} void loop () {}

Алхам 4: MP3 өгөгдлийг цуваа монитор дээр байрлуулах

MP3 өгөгдлийг цуваа монитор дээр байрлуулах
MP3 өгөгдлийг цуваа монитор дээр байрлуулах

Доорх кодыг ашигласнаар та зарим аудио өгөгдлийг цуваа дэлгэц дээр байрлуулж болно. Энэ нь маш удаан байх боловч MP3 санг хэрхэн ашиглахыг танд үзүүлэх болно. Энэ нь өгөгдлийг 16 дахин бууруулдаг тул өгөгдлийг төлөвлөхдөө аудио долгионы хэлбэр шиг харагддаг. Энэ кодыг SPD_MP3_Serial.ino жишээнээс микро декодерын сангийн хамт авсан болно. Мэдээжийн хэрэг, урагшлахад та энэ аудио өгөгдлийг ямар нэгэн байдлаар тоглуулахыг хүсэх болно, гэхдээ энэ бол өөр зааварчилгааны сэдэв юм.

#"SD.h" // оруулах

#include "mp3.h" // задлагч 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]); // баруун суваг}

Зөвлөмж болгож буй: