Простой и забавный проект для Ардуино, благодаря которому мы сможем за 10-15 минут сделать аудио плеер, который воспроизводит файлы формата .wav. Он состоит из динамика, простого транзистора, действующего в качестве усилителя и адаптера micro-SD-карты на которой мы разместим наши файлы WAV.
Что нам понадобится и где купить
Список деталей небольшой и собрать его не трудно. Также для удобства мы привели ссылки на товары на сайте АлиЭкспресс. Если у вас нет таких деталей - лучше сразу сделать один большой заказ, сумма заказа получится минимальной.
Кол-во | Деталь |
1 | Arduino Uno (другие платы Ардуино тоже подойдут кроме Duo |
1 | Адаптер Micro-SD карт (читать и записывать) |
1 | 8 Ом динамик |
1 | Micro-SD карта |
1 | Макетная плата |
1 | BC 546b NPN-транзистор |
1 | 7K резистор |
Провода-перемычки папа-папа |
На данный момент мы рекомендуем заказывать всё на известном сайте АлиЭкспресс. При тщательном выборе поставщика именно там вы получите качественный и недорогой товар. Большинство российских Интернет-магазинов ставят цены зачастую в разы выше. В ближайшее время мы сделаем очень подробное описание процесса заказа на сайте АлиЭкспресс, а пока можно ознакомиться с нашей мини-инструкцией.
Программное обеспечение
Также нам для проекта пригодится некоторое программное обеспечение на нашем компьютере и некоторые библиотеки.
- Arduino IDE (рекомендуем последнюю версию)
- SD Formatter tool от SD Association
- Библиотека TMRpcm library (Github)
Как работает аудиоплеер?
Ардуино в приведенной ниже схеме загружает файлы .wav с карты micro-SD. Затем он генерирует сигнал и выводит его через динамик, подключенный к цифровому выходу 9. Это позволяет динамику создавать звуки и воспроизводить музыку. В этом уроке вы можете запрограммировать аудиоплеер Ардуино так, чтобы он играл ваш любимую песню или мелодию.
Файлы .wav, используемые в этой схеме, имеют небольшое ограничение при воспроизведении звука. Поскольку в качестве усилителя используется транзистор, он не может читать сложные .wav-файлы. Поэтому файлы .wav должны быть преобразованы, чтобы иметь следующие размеры:
Сэмплов в секунду (Гц): 16000 (16 КГц)
Канал: Моно
Бит на сэмпл: 8
Преобразование файлов в формат .wav для вашего аудиоплеера Arduino
Вам не нужно устанавливать какое-либо программное обеспечение для преобразования песен в файлы .wav. Для работы вам нужен самый простой онлайн-конвертер, например, этот.
Небольшая инструкция для того, чтобы сделать песни совместимыми с аудиоплеером на Ардуино:
- Загрузите музыкальный файл или введите ссылку на песню или аудиофайл, который нужно преобразовать. Вы даже можете выбрать файлы из Dropbox или Google Диска.
- В дополнительных настройках измените разрешение бит на 8 бит.
- Измените частоту дискретизации до 16000 Гц.
- Измените аудиоканалы на моно.
- Нажмите «Показать дополнительные параметры» ("Show advanced options").
- Установите формат PCM как 8-битный - PCM unsigned 8-bit.
- Нажмите «Преобразовать» (Convert), и файлы будут преобразованы!
Форматирование Micro-SD карты
Загрузите инструмент SD Formatter, ссылку мы давали выше.
Запустите инструмент как администратор. Выберите нужный диск для форматирования. Назовите свою карту, заполнив поле метки тома и нажмите кнопку «Форматировать».
Добавьте ранее сконвертированные WAV-файлы на карту и сохраните их с простыми именами, такими как, например, "81.wav".
Схема соединения аудиоплеера
Наша схема выглядит так:
- MOSI - контакт 11 на Arduino Uno
- MISO - контакт 12 на Arduino Uno
- CLK-контакт 13 на Arduino Uno
- CS - зависит от экрана или модуля SD-карты.
Пин 4 используется для согласованности с кодом Ардуино ниже.
Код для устройства
Скетч для нашей платы:
#include "SD.h" #define SD_ChipSelectPin 4 #include "TMRpcm.h" #include "SPI.h" TMRpcm tmrpcm; void setup(){ tmrpcm.speakerPin = 9; Serial.begin(9600); if (!SD.begin(SD_ChipSelectPin)) { Serial.println("SD fail"); return; } tmrpcm.setVolume(6); tmrpcm.play("rain.wav"); } void loop(){ }
В целом, на этом всё. Осталось просто подключить питание, и ваш аудиоплеер Arduino будет успешно воспроизводить вашу любимую песню.
4 июля 2020 в 11:07
Не ПЕЧАТНАЯ ПЛАТА, а МАКЕТНАЯ ПЛАТА!!!
4 июля 2020 в 12:27
Если кто-то захочет, то сможет сделать конечный проект и на печатной.
4 июля 2020 в 15:41
Но всё же, вы предлагаете только вариант с макетной платой, поэтому измените печатную плату на макетную, в таблице пожалуйста. Многие могут понять это не правильно!
5 июля 2020 в 03:11
Спасибо! Поменяли
4 июля 2020 в 15:43
У меня на модуле есть только контакт sck, а clk нет. И да, куда подключать контакт CS?
4 июля 2020 в 17:25
Сам понял sck это clk, а CS в четвёртый(указано в программе). Для лучшего звучания в строке tmrpcm.setVolume(6); заменяем 6 на 3. На прямую в наушники работает отлично!
4 июля 2020 в 17:27
Да, кстати в программе надо заменить rain.wav на своё название файла
14 февраля 2021 в 21:07
Спасибо автору за статью. Я начинающий ардуинщик. На основе приведенного скетча и рекомендаций проиграл с micro SD несколько отдельных wav-файлов. Но попытка проиграть подряд несколько файлов не получилась. Транслятор не видит ошибки, но проиграть подряд несколько файлов не получается. В чем причина?! Помогите разобраться. Заранее благодарю.
29 марта 2021 в 15:10
Подскажите, будет вариант с бюджетным усилителем, а не с транзистором? И какие принципиальные отличия будут при работе с усилителем?