Mündəricat:

MP3 Çözmə Arduino Kitabxanası: 4 addım
MP3 Çözmə Arduino Kitabxanası: 4 addım

Video: MP3 Çözmə Arduino Kitabxanası: 4 addım

Video: MP3 Çözmə Arduino Kitabxanası: 4 addım
Video: Bəs sənin beynin nə qədər inkişaf edib?! Test 2024, Dekabr
Anonim
MP3 kodunu açmaq üçün Arduino Kitabxanası
MP3 kodunu açmaq üçün Arduino Kitabxanası
MP3 kodunu açmaq üçün Arduino Kitabxanası
MP3 kodunu açmaq üçün Arduino Kitabxanası

ESP32 və ARM M seriyası kimi sürətli mikrokontrolörlərin geniş yayılması səbəbindən artıq MP3 -lərin xüsusi bir aparat tərəfindən açılması tələb olunmur. Şifrələmə artıq proqram təminatında edilə bilər.

Earlephilhower -da çox sayda audio faylın kodunu açmağı və ESP mikrokontrolörlərində çalmağı göstərən böyük bir kitabxana var. Bundan ilham alaraq kodun bir hissəsini mikrokontrolörlərdə MP3 fayllarını oxumağın modul bir üsulu yaratmaq üçün uyğunlaşdırdım.

Ümid edirəm ki, bu üsul kifayət qədər sürətli hər hansı bir mikrokontrolördə (yalnız ESP32 lövhəsində deyil) istifadə üçün kifayət qədər ümumi olacaqdır, lakin indiyə qədər yalnız ESP32 -də sınamışam.

Təchizat

Daha əvvəl dediyim kimi, bu metodun hər hansı bir sürətli mikrokontrolör üçün işləyəcəyini ümid edirəm, amma olmaya bilər. Nəticələrimi təkrarlamaq üçün sizə lazım olacaq:

  • Bir ESP32 lövhəsi
  • SD qırılma lövhəsi
  • SD kart
  • Jumper telləri
  • çörək taxtası
  • mikro USB kabeli (eskiz yükləmək üçün)
  • Arduino IDE

Addım 1: Çörək lövhəsinin qoyulması

Çörək lövhəsinin qoyulması
Çörək lövhəsinin qoyulması

ESP32 və SD kart qırılmasını çörək taxtasına yerləşdirin.

Addım 2: SD Kartı Kabelə Bağlayın

SD kartın çəkilməsi
SD kartın çəkilməsi

SD kart əlaqələri (ESP32 SD qırılması) aşağıdakı kimidir:

GND GND

3v3 VDD

23 DI (MOSI)

19 DO (MISO)

18 SCLK

5 CS

Fərqli bir mikro nəzarətçi istifadə edirsinizsə, bu əlaqələrin fərqli olacağını unutmayın.

Addım 3: Proqram Kitabxanaları

ESP-IDF yüklü deyilsə, veb saytına keçin və quraşdırın.

Sonra mikrokoder kitabxanasını quraşdırın. Bunu depoyu yükləyərək Arduino Kitabxanalar qovluğuna yerləşdirərək edə bilərsiniz. Mikro kodlaşdırıcı kitabxanası hazırda.wav və.mp3 fayllarını dəstəkləyir.

Formatından asılı olmayaraq, hər bir siniflə əlaqəli bir neçə ümumi metod var və bunlar aşağıdakı kodda verilmişdir. Bunlara bəzi faylların metadatasının alınması və serial monitorda çap edilməsi daxildir.

#"SD.h" // daxil edin

#include "mp3.h" // dekoder #include "pcm.h" // xam audio məlumat konteyner mp3 MP3; void setup () {Serial.begin (115200); // Serial SD.begin () qurun; // Quraşdırma SD bağlantısı Fayl faylı = SD.open ("/cc.mp3"); // MP3 faylını açın MP3.begin (fayl); // MP3 sinfinə MP3.getMetadata () faylının hansı faylla işlənəcəyini söyləyin; // metadata Serial.print əldə edin ("Nümunə başına bitlər:"); Serial.println (MP3.bitsPerSample); // nümunə başına bitləri yazdır Serial.print ("Nümunə Hızı:"); Serial.println (MP3. Fs); // və nümunə dərəcəsi} void loop () {}

Addım 4: MP3 Məlumatlarını Serial Monitorda qurun

MP3 Məlumatlarını Serial Monitorda qurun
MP3 Məlumatlarını Serial Monitorda qurun

Aşağıdakı kodla Serial monitorda bəzi audio məlumatları qura bilərsiniz. Bu çox yavaş olacaq, ancaq MP3 kitabxanasından necə istifadə edəcəyinizi göstərəcək. Həm də məlumatları 16 dəfə aşağı salır, belə ki məlumatlar tərtib edildikdə səs dalğası formasına bənzəyir. Bu kod, mikrokoder kitabxanası ilə birlikdə gələn SPI_MP3_Serial.ino nümunəsindən götürülmüşdür. Əlbəttə ki, irəliləyərək bu səs məlumatlarını bir şəkildə oynamaq istəyəcəksiniz, amma bu fərqli bir təlimat mövzusudur.

#"SD.h" // daxil edin

#include "mp3.h" // dekoder mp3 MP3; // MP3 Class pcm audio; // işlənməmiş audio məlumatların etibarsız qurulması () {Serial.begin (115200); // Serial SD.begin () qurun; // Quraşdırma SD bağlantısı Fayl faylı = SD.open ("/cc.mp3"); // MP3 faylını açın MP3.begin (fayl); // faylı MP3 sinfinə keçir} void loop () {audio = MP3.decode (); // Səs məlumatlarını pcm sinifinə daxil edin / * audio.interleaved -də 32 nümunə var (16 solda və 16 sağda) * ancaq hər bir kanalda yalnız ilk məlumat nöqtəsini quracağıq. * Bu, məlumatları 16 faktorla aşağı salır (yalnız dalğa formasına baxmaq üçün) */ Serial.print (audio.interleaved [0]); // sol kanal Serial.print (""); Serial.println (audio.interleaved [1]); // sağ kanal}

Tövsiyə: