- Потрібні компоненти
- Кругова діаграма
- Підготовка до аудіофайлів
- Пояснення коду
- Тестування аудіопрогравача ESP32
DIY музичні плеєри цікаво будувати, і ми раніше створили кілька музичних програвачів за допомогою Arduino та спеціального модуля MP3. Зараз ми використовуємо ESP32 для створення цікавого аудіоплеєра, в якому ви можете звучати ефекти, просто підключивши додатковий динамік до ESP32. Тут ми будемо використовувати LM386 та динамік з ESP32 для відтворення музичних файлів. Звуковий вихід може бути не гучним, але ця програма показує здатність плати ESP32 відтворювати аудіофайли.
Потрібні компоненти
- ESP32
- Модуль підсилювача LM386
- 8-омний динамік
- Провід перемички
Кругова діаграма
Принципова схема для музичного програвача ESP32 наведена нижче -
Для відтворення звуку на ESP32 нам потрібен динамік. Динамік підключений через модуль підсилювача звуку LM386. Виводи Vcc та GND модуля підсилювача підключені до VIN і GND ESP32, тоді як штифт IN модуля підсилювача підключений до виводу GPIO 25 ESP32. GPIO 25 - це один із 2 висновків ЦАП (цифро-аналогового перетворювача).
Ось як виглядатиме повне налаштування музичного програвача ESP32:
LM386 - це звуковий підсилювач, ви можете дізнатись більше про LM386, перейшовши за посиланням.
Підготовка до аудіофайлів
Для відтворення звукових звуків на платі ESP32 нам потрібні аудіофайли у форматі .wav , оскільки ESP32 може відтворювати аудіофайл лише у форматі .wav .
Отже, першим кроком буде отримання файлу, який ви хочете відтворити на ESP32. Після цього завантажте та встановіть додаток Audacity Audio Editor. Ця програма буде використана для зміни типу файлу, частоти дискретизації та інших властивостей.
Після завершення інсталяції відкрийте додаток Audacity, а потім перейдіть до файлу> Відкрити та виберіть аудіофайл для редагування.
Перше, що потрібно було змінити - це частота дискретизації. Для відтворення аудіофайлу на ESP32, частота дискретизації від 8000 до 16000 буде хорошою, оскільки ESP32 не має багато пам'яті. Тож змініть проектну ставку на 16000.
Після цього перейдіть до Файл> Експорт> Експортувати як WAV, щоб зберегти аудіофайл у форматі .wav .
Тепер у наступному вікні виберіть WAV (Microsoft) як тип файлу та Непідписаний 8-розрядний PCM як формат кодування, а потім натисніть Зберегти.
Тепер нам потрібен додаток Hex Editor для генерації шістнадцяткових кодів для аудіофайлу. Тож завантажте та встановіть Hex Editor (HxD) за вказаним посиланням. Після цього відкрийте програму, потім перейдіть у меню Файл> відкрити та відкрийте файл.wav . Це створить шістнадцятковий код для файлу.wav .
Потім використовуйте ctrl + A, щоб вибрати повний код, а потім перейдіть до « Редагувати»> «Копіювати як> C», щоб скопіювати код у форматі мови C.
Потім вставте цей код в Arduino IDE.
Пояснення коду
Повний код безконтактного аудіопрогравача ESP32 наведено в кінці сторінки. Тут ми пояснюємо деякі важливі частини коду. У цій програмі ми будемо використовувати бібліотеку XT DAC Audio від XTronical. Бібліотеку XT DAC Audio можна завантажити звідси.
Як зазвичай, почніть код, включаючи всі необхідні бібліотеки. Файл SoundData.h містить шістнадцятковий код файлу.Wav, який потрібно відтворити.
#include "SoundData.h" #include "XT_DAC_Audio.h"
У наступному рядку створіть об'єкт типу XT_Wav_Class, який використовується аудіокласом ЦАП, передаючи дані .wav як параметр. DacAudio, основний об'єкт класу програвача, в якому 25 - це номер ЦАП-контакту, до якого підключений контакт-підсилювач.
XT_Wav_Class Sound (зразок); XT_DAC_Audio_Class DacAudio (25,0);
Усередині функції setup () ініціалізуйте послідовний монітор зі швидкістю передачі 115200 для цілей налагодження.
void setup () {Serial.begin (115200);
Усередині функції loop () заповніть звуковий буфер даними та перевірте, чи звук відтворюється чи ні, якщо ні, відтворюйте звук у циклі.
недійсний цикл () {DacAudio.FillBuffer (); if (Sound.Playing == false) DacAudio.Play (& Sound); Serial.println (DemoCounter ++); }
Тестування аудіопрогравача ESP32
Коли код готовий, підключіть динамік до GPIO 25 ESP32 через LM386 або будь-який інший модуль підсилювача. Тепер підключіть ESP32 до ноутбука та завантажте код. Після завантаження коду ESP32 починає відтворювати аудіо. Якість звуку можна змінити за допомогою потенціометра модуля підсилювача.
Сподіваюся, вам сподобався проект. Робоче відео та повний код наведені нижче, файл заголовка SoundData.h можна завантажити звідси. Якщо у вас є якісь сумніви, залиште їх у розділі коментарів.