Съдържание:
- Консумативи
- Стъпка 1: Поставяне на платката
- Стъпка 2: Окабеляване на SD картата
- Стъпка 3: Софтуерните библиотеки
- Стъпка 4: Начертайте MP3 данни на серийния монитор
Видео: Библиотека Arduino за MP3 декодиране: 4 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
Поради увеличеното разпространение на бързи микроконтролери като ESP32 и MP3 декодирането от серия ARM вече не се изисква да се извършва от специализиран хардуер. Декодирането вече може да се извърши в софтуер.
От earlephilhower има голяма библиотека, която показва как да декодирате голямо разнообразие от аудио файлове и да ги възпроизвеждате на ESP микроконтролери. Вдъхновен от това, аз адаптирах част от кода, за да създам модулен метод за четене на MP3 файлове на микроконтролери.
Надявам се, че този метод ще бъде достатъчно общ за използване на всеки достатъчно бърз микроконтролер (не само на платка ESP32), но засега съм тествал само на ESP32.
Консумативи
Както вече казах, надявам се този метод да работи за всеки бърз микроконтролер, но може и да не е. Следователно, за да повторите моите резултати, ще ви трябва:
- ESP32 платка
- SD пробивна дъска
- SD карта
- Джъмперни проводници
- макет
- микро USB кабел (за качване на скица)
- Arduino IDE
Стъпка 1: Поставяне на платката
Поставете ESP32 и SD картата на дъската.
Стъпка 2: Окабеляване на 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 файлове.
Независимо от формата, има няколко общи метода, свързани с всеки клас и те са обхванати в кода по -долу. Те включват получаването на някои метаданни за файловете и отпечатването им на серийния монитор.
#include "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 (); // получаваме metdadata Serial.print ("Bits per Sample:"); Serial.println (MP3.bitsPerSample); // отпечатваме битове на проба Serial.print ("Sample Rate:"); Serial.println (MP3. Fs); // и честота на дискретизация} void loop () {}
Стъпка 4: Начертайте MP3 данни на серийния монитор
С кода по -долу можете да начертаете някои аудио данни на серийния монитор. Това ще бъде много бавно, но ще ви покаже как да използвате MP3 библиотеката. Той също така понижава извадката на данните с коефициент 16, така че когато данните са нанесени, те изглеждат като форма на аудио вълна. Този код е взет от примера SPI_MP3_Serial.ino, който се доставя с библиотеката на микродекодера. Разбира се, придвижвайки се напред, ще искате да възпроизведете тези аудио данни по някакъв начин, но това е темата на друга инструкция.
#include "SD.h" // вход
#включва "mp3.h" // декодер mp3 MP3; // MP3 клас pcm аудио; // необработени аудио данни void setup () {Serial.begin (115200); // Настройка на сериен SD.begin (); // Настройка на SD връзка Файлов файл = SD.open ("/cc.mp3"); // Отваряне на MP3 файл MP3.begin (файл); // Предаване на файл в MP3 клас} void loop () {audio = MP3.decode (); // Декодиране на аудио данни в pcm клас / * има 32 проби в audio.interleaved (16 вляво и 16 вдясно) *, но ние ще начертаем само първата точка от данни във всеки канал. * Това ефективно намалява данните с коефициент 16 (само за * гледане на формата на вълната) */ Serial.print (audio.interleaved [0]); // ляв канал Serial.print (""); Serial.println (audio.interleaved [1]); // десен канал}
Препоръчано:
Програмиране на Arduino с помощта на друг Arduino за показване на превъртащ се текст без библиотека: 5 стъпки
Програмиране на Arduino с помощта на друг Arduino за показване на превъртащ се текст без библиотека: Sony Spresense или Arduino Uno не са толкова скъпи и не изискват много енергия. Ако обаче вашият проект има ограничения за мощност, пространство или дори бюджет, може да помислите за използването на Arduino Pro Mini. За разлика от Arduino Pro Micro, Arduino Pro Mi
Начертаване на интензитета на светлината с помощта на Arduino и основната библиотека на Arduino на Python: 5 стъпки
Начертаване на интензитета на светлината с помощта на Arduino и основната библиотека Arduino на Python: Arduino е икономичен, но високоефективен и функционален инструмент, програмирането му във Embedded C прави процеса на създаване на проекти досаден! Модулът Arduino_Master на Python опростява това и ни позволява да извършваме изчисления, да премахваме стойностите на боклука
Arduino конвертор на текст в реч с помощта на LM386 - Говорещ проект Arduino - Библиотека Talkie Arduino: 5 стъпки
Arduino конвертор на текст в реч с помощта на LM386 | Говорещ проект Arduino | Библиотека Talkie Arduino: Здравейте момчета, в много от проектите изискваме от arduino да говори нещо като говорим часовник или да казва някои данни, така че в тези инструкции ще преобразуваме текст в реч, използвайки Arduino
Кутия за декодиране на стая за бягство: 7 стъпки (със снимки)
Кутия за декодиране на стая за бягство: Стаите за бягство са невероятно забавни дейности, които са много ангажиращи и чудесни за работа в екип. Замисляли ли сте се да създадете своя собствена стая за бягство? Е, с тази декодираща кутия можете да сте на път! Още по -добре сте мислили да използвате es
Инфрачервен NEC протоколен енкодер и платка за декодиране: 5 стъпки
Инфрачервен NEC протоколен енкодер и декодираща платка: Получава необработен модулиран или демодулиран NEC IR сигнал и го преобразува в байтове, които се изпращат през серийния порт. Серийната скорост на предаване се избира от две скорости по подразбиране. Режимът на използване по подразбиране излъчва последователност от команди с рамкиране на байт