Spisu treści:
- Kieszonkowe dzieci
- Krok 1: Układanie deski do krojenia chleba
- Krok 2: Okablowanie karty SD
- Krok 3: Biblioteki oprogramowania
- Krok 4: Drukuj dane MP3 na monitorze szeregowym
Wideo: Biblioteka Arduino do dekodowania MP3: 4 kroki
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:27
Ze względu na rosnące rozpowszechnienie szybkich mikrokontrolerów, takich jak ESP32 i seria ARM M, dekodowanie MP3 nie jest już wymagane przez specjalistyczny sprzęt. Dekodowanie można teraz wykonać w oprogramowaniu.
Earlephilhower udostępnia świetną bibliotekę, która pokazuje, jak dekodować szeroką gamę plików audio i odtwarzać je na mikrokontrolerach ESP. Zainspirowany tym zaadaptowałem część kodu, aby stworzyć modułową metodę odczytu plików MP3 na mikrokontrolerach.
Mam nadzieję, że ta metoda będzie wystarczająco ogólna do użycia na każdym wystarczająco szybkim mikrokontrolerze (nie tylko na płycie ESP32), ale jak na razie testowałem tylko na ESP32.
Kieszonkowe dzieci
Jak powiedziałem wcześniej, mam nadzieję, że ta metoda zadziała dla każdego szybkiego mikrokontrolera, ale może nie. Dlatego aby powtórzyć moje wyniki, będziesz potrzebować:
- Płytka ESP32
- Tablica zaciskowa SD
- karta SD
- Przewody połączeniowe
- płytka do krojenia chleba
- kabel micro USB (do wgrania szkicu)
- IDE Arduino
Krok 1: Układanie deski do krojenia chleba
Umieść końcówkę ESP32 i karty SD na płytce stykowej.
Krok 2: Okablowanie karty SD
Połączenia karty SD (przebicie SD ESP32) są następujące:
GND GND
3v3 VDD
23 DI (MOSI)
19 DO (MISO)
18
5 CS
Pamiętaj, że połączenia te będą inne, jeśli używasz innego mikrokontrolera.
Krok 3: Biblioteki oprogramowania
jeśli nie masz zainstalowanego ESP-IDF, przejdź do ich witryny i zainstaluj go.
Następnie zainstaluj bibliotekę mikrodekodera. Możesz to zrobić, pobierając repozytorium i umieszczając je w folderze Arduino Libraries. Biblioteka mikrodekodera obecnie obsługuje pliki.wav i.mp3.
Niezależnie od formatu, istnieje kilka typowych metod powiązanych z każdą klasą i są one omówione w poniższym kodzie. Obejmują one pobranie niektórych metadanych plików i wydrukowanie ich na monitorze szeregowym.
#include "SD.h" // wejście
#include "mp3.h" // dekoder #include "pcm.h" // kontener surowych danych audio mp3 MP3; void setup() { Serial.begin(115200); // Ustaw Serial SD.begin(); // Konfiguracja połączenia SD Plik pliku = SD.open("/cc.mp3"); // Otwórz plik MP3 MP3.begin(plik); // powiedz klasie MP3, jaki plik ma przetworzyć MP3.getMetadata(); // pobierz metdadata Serial.print("Bity na próbkę: "); Serial.println(MP3.bitsPerSample); // wypisz bity na próbkę Serial.print("Częstotliwość próbkowania: "); Serial.println(MP3. Fs); // i częstotliwość próbkowania } void loop() { }
Krok 4: Drukuj dane MP3 na monitorze szeregowym
Za pomocą poniższego kodu możesz wykreślić niektóre dane audio na monitorze szeregowym. Będzie to bardzo powolne, ale pokaże Ci, jak korzystać z biblioteki MP3. Przeprowadza również próbkowanie w dół o współczynnik 16, dzięki czemu po wykreśleniu danych wyglądają one jak fala dźwiękowa. Ten kod pochodzi z przykładu SPI_MP3_Serial.ino, który jest dostarczany z biblioteką mikrodekodera. Oczywiście, idąc dalej, będziesz chciał jakoś odtworzyć te dane audio, ale to jest temat innej instrukcji.
#include "SD.h" // wejście
#include "mp3.h" // dekoder mp3 MP3; // dźwięk pcm klasy MP3; // surowe dane audio void setup() { Serial.begin(115200); // Ustaw Serial SD.begin(); // Konfiguracja połączenia SD Plik pliku = SD.open("/cc.mp3"); // Otwórz plik MP3 MP3.begin(plik); // Przekaż plik do klasy MP3 } void loop() { audio = MP3.decode(); // Dekoduj dane audio do klasy pcm /* w audio.interleaved są 32 próbki (16 po lewej i 16 po prawej) * ale narysujemy tylko pierwszy punkt danych w każdym kanale. * To skutecznie zmniejsza próbkowanie danych o współczynnik 16 (tylko do * przeglądania przebiegu) */ Serial.print(audio.interleaved[0]); // lewy kanał Serial.print(" "); Serial.println(audio.interleaved[1]); // prawy kanał }
Zalecana:
Jak zrobić odtwarzacz MP3 z wyświetlaczem LCD za pomocą modułu Arduino i DFPlayer Mini MP3 Player: 6 kroków
Jak zrobić odtwarzacz MP3 z wyświetlaczem LCD za pomocą modułu odtwarzacza MP3 Arduino i DFPlayer Mini: Dzisiaj stworzymy odtwarzacz MP3 z wyświetlaczem LCD za pomocą modułu odtwarzacza MP3 Arduino i DFPlayer mini. Projekt może odczytywać pliki MP3 na karcie SD i można je wstrzymać i graj tak samo jak urządzenie 10 lat temu. A także ma zabawę z poprzednią i następną piosenką
Konwerter tekstu na mowę Arduino za pomocą LM386 - Mówiący projekt Arduino - Biblioteka Talkie Arduino: 5 kroków
Konwerter tekstu na mowę Arduino za pomocą LM386 | Mówiący projekt Arduino | Biblioteka Talkie Arduino: Cześć, w wielu projektach wymagamy, aby arduino mówił coś w rodzaju mówiącego zegara lub podawał niektóre dane, więc te instrukcje przekonwertujemy tekst na mowę za pomocą Arduino
Mówiące Arduino - Odtwarzanie MP3 z Arduino bez żadnego modułu - Odtwarzanie pliku Mp3 z Arduino za pomocą PCM: 6 kroków
Mówiące Arduino | Odtwarzanie MP3 z Arduino bez żadnego modułu | Odtwarzanie pliku MP3 z Arduino za pomocą PCM: W tej instrukcji dowiemy się, jak odtwarzać plik mp3 za pomocą arduino bez użycia żadnego modułu audio, tutaj użyjemy biblioteki PCM dla Arduino, która odtwarza 16 bit PCM o częstotliwości 8 kHz, więc zróbmy to
Pierwsze kroki z Esp 8266 Esp-01 z Arduino IDE - Instalowanie płytek Esp w Arduino Ide i programowanie Esp: 4 kroki
Pierwsze kroki z Esp 8266 Esp-01 z Arduino IDE | Instalowanie płyt Esp w Arduino Ide i programowanie Esp: W tej instrukcji dowiemy się, jak zainstalować płyty esp8266 w Arduino IDE oraz jak zaprogramować esp-01 i przesłać w nim kod. Ponieważ płyty esp są tak popularne, pomyślałem o naprawieniu instrukcji dla to i większość ludzi boryka się z problemem
Biblioteka dla BMP280 i BME280: 7 kroków
Biblioteka dla BMP280 i BME280: Wprowadzenie Nie miałem zamiaru pisać tej biblioteki. „Zdarzyło się” jako efekt uboczny projektu, który zacząłem, który używa BMP280. Ten projekt nie jest jeszcze ukończony, ale myślę, że biblioteka jest gotowa do udostępnienia innym. Następnie miałem ne