- Назначение и возможности,
- Технические характеристики BT201,
- Подключение, пример использования,
- Применение, достоинства и недостатки,
- Вывод,
- FAQ.
Назначение и возможности
Основное назначение любого аудиоплеера - воспроизводить звук. В зависимости от конструкции плеер может брать информацию о том, что ему проигрывать из разных источников, в идеале из нескольких: флеш-память, SD-карты, внешний аудиовход, bluetooth, FM-радио и так далее. Герой нашей статьи - плеер-комбайн BT201 - может все вышеперечисленное и даже немного больше. Самым распространенным плеером для DIY-поделок до недавнего времени (а у некоторых по привычке и до сих пор) является DFPlayer. Он компактен и достаточно надежен, однако слишком прост, имеет странный односторонний протокол команд, нелогичное подключение, ограниченный функционал, не очень высокое качество и уровень сигнала и ряд других недостатков, с которыми не всегда можно мириться. Время DF-плеера уходит, на очереди BT201 - представитель следующего, более совершенного поколения DIY-плееров, о котором мы здесь расскажем.Благодаря современным качественным комплектующим, BT201 воспроизводит музыку и прочие звуковые файлы практически без потери качества. Цифровая информация может быть взята из одного из подключенных устройств: USB флешки, SD - карты или Bluetooth, к тому же существует возможность принимать и воспроизводить радиостанции FM-диапазона. Конкурент из прошлого - DF - из всего вышеперечисленного может работать только с SD-картами, причем ограниченной емкости.
На борту BT201 уже припаянный разъем для наушников или усилителя, разъемы для накопителей и питания, антенна для радиоканала и четыре кнопки для быстрого ручного управления. То есть достаточно подключить к плате кабель, например, от зарядного устройства, вставить карту с записями и вставить наушники, чтобы уже наслаждаться музыкой. Даже паять ничего не надо.
Основные разъемы платы очевидны, но на всякий случай подписаны на верхней стороне платы.
Разъемы для дополнительных устройств и DIY-подключений подписаны на обратной стороне платы. Это: UART для управления с контроллера и получения данных, выход на динамик, гнездо для припаивания ИК-приемника и микрофона, если они нужны, и внешнего источника питания. Как видно из перечисленного богатства, плеер имеет возможность управляться с помощью ИК-пульта и вести запись окружающих звуков. Разумеется, ничего подобного и не снилось старушке DF.
Как уже упоминалось, управление от контроллера или компьютера осуществляется по протоколу UART с помощью системы “AT+” команд, подобная система используется во многих модемах, устройствах связи, GPS-трекерах и много где еще. Связь двухсторонняя, плеер отвечает на команды, присылает данные о режимах работы, сообщает имена файлов, записанных на носителях, и прочую нужную информацию. Все это позволяет сделать из BT201 сердце самого настоящего полноценного мультифункционального музыкального центра.
Необходимы датчики Ардуино?
Купить сенсоры для Arduino можно в нашем магазине https://3d-diy.ru/catalog/arduino-sensors/ с доставкой по всей России
Технические характеристики
Основные характеристики:- Напряжение питания: 5 В / 4.2 В, 0.2 А
- Поддерживаемые форматы аудио: MP3, WAV, WMA, FLAC, AAC, APE
- ЦАП: 16 бит
- Сигнал/шум: 95 дБ
- Импеданс: 4 Ом
- Мощность: 3 Вт
- Поддерживаемые аудио входы: SD / USB / Bluetooth
- Габариты 60 х 40 х 5 мм
Подключение и пример использования
Благодаря UART-интерфейсу подключение плеера у контроллеру максимально упрощено: RX-TX, TX-RX. Однако для того, чтобы посмотреть как выполняются команды вручную, попробуем сделать из Ардуино мост между BT201 и компьютером с терминалом.Самый простой способ - использовать два UART порта Ардуино, один для плеера, второй для компьютера. В идеале оба порта должны быть аппаратными, однако большинство Ардуино имеет такой всего один, значит для общения с платой будем задействовать программный Serial portl. Подключим RX плеера, например, к пину 4 Ардуино, а RX к 3.
Заливаем простую программу, копирующую строки из одного порта в другой. По умолчанию, плеер работает на битрейте 115200, для максимальной синхронизации потоков данных устанавливаем оба порта на эту скорость.
#include SoftwareSerial BT201(3, 4); // RX, TX void setup() { Serial.begin(115200); // Скорость обмена данными с компьютером Serial.println("Start!"); BT201.begin(115200); // Скорость обмена данными с плеером BT201.println("AT"); } void loop() { if (BT201.available()) // Ожидаем прихода данных (ответа) от плеера Serial.write(BT201.read()); // выводим их в Serial if (Serial.available()) { // Ожидаем команды по Serial BT201.write(Serial.read()); // отправляем полученную команду плееру } }
Запускаем монитор порта и смотрим сообщение от плеера при запуске. Сперва может показаться, что это какая-то китайская кодировка, однако причина появления “кракозябл” в другом. Программный сериал порт ограничен по скорости стабильной работы, 115200 бод для него уже на грани и даже, как видим, за гранью понимания. Выхода из сложившейся ситуации всего два: найти плату с двумя и более аппаратными UART (например MEGA2560) или снизить скорость общения до разумного предела.Выберем второй вариант, для чего у плеера есть возможность настройки битрейта при помощи команды “AT+CTxx”, где вместо xx следует подставить номер одного из шести вариантов предустановленных скоростей. Давайте для примера назначим самый медленный, он же первый - 9600. Пишем в терминал нашу первую команду:
AT+CT01
Дождемся подтверждения в виде “ок” или любого другого иероглифа, после чего аппаратно перезагружаем плеер, отключив и снова подав питание. Теперь он запустится на скорости 9600 и будет в дальнейшем запускаться на ней до тех пор, пока мы снова ее не изменим командой.
Внесем изменения в программу, а точнее вот в сетап:
void setup() { Serial.begin(9600); // Скорость обмена данными с компьютером Serial.println("Start!"); BT201.begin(9600); // Скорость обмена данными с плеером BT201.println("AT"); }
Перенастраиваем скорость порта на 9600, запускаем, теперь в нем появляется куда более правдоподобная информация: В приветственных строках BT201 сообщает нам о своих настройках и состоянии бортовых устройств. Для некоторых целей эта информация может быть полезна или даже необходима, например, неплохо бы знать вставлена ли SD-карта в слот, работает ли Bluetooth, каков установлен уровень громкости, режим повтора треков и так далее. За подробностями о полученных данных следует заглянуть в даташит.Даташит представляет собой подробную инструкцию от производителя на 54 страницах. Протокол состоит из пары сотен команд и столько же ответов, разумеется, для работы, как правило, нужно гораздо меньше. Перечислим некоторые основные.
AT-CM03 - переключение плеера в режим работы с SD, по умолчанию при включении плеер ждет контакта с Bluetooth и без этой команды файлы с флешки крутить не станет, переключение занимает пару секунд, подтверждается голосовым сообщением,
AT-CAхх - установка громкости, где вместо хх пишем цифру от 0 до 30, 30 - максимальная громкость,
AT-AA0 - останавливает воспроизведение любого файла, при переключении на флешку плеер автоматически запускает проигрывание первого файла, если это не нужно, следует его тут же остановить,
AT-ABxx - запустить проигрывание файла с абсолютным номером хх, под этим номером имеется в виду не имя файла, а порядковый номер, под каким был физически записан файл на флешку - первым записан, первый номер и получил,
AT+CB - пауза/дальше, тормозит файл в любом месте, повторная команда запускает его дальше с этого мгновения,
AT+AJ/xxxx.xxx - однократное проигрывание файла по имени, где “хххх.ххх” полное имя файла с папками и расширением,
AT+AF/xxxx.xxx - тоже самое, только после окончания файла автоматически запускается следующий, а за ним следующий и так далее.
Для большинства проектов этого набора команд вполне достаточно.
В некоторых случаях требуется узнать количество файлов на диске, их имена, продолжительность в секундах и так далее, для этого тоже есть возможности.
Например, команда “AT+M2” выдает количество звуковых файлов на диске в шестнадцатеричном виде.
В данном примере их 10.
Команда “AT+MF” возвращает имя текущего файла с пробелом вместо точки. Таким образом, комбинируя команды, можно заставить плеер работать как вам угодно и добывать из него всю необходимую информацию.
Пример псевдокода для настройки плеера для проигрывания файла по какому-либо событию:
void setup() { Serial.begin(9600); // запускаем UART Serial.println("AT+CM03"); // переключаемся на SD Serial.println("AT+CA25"); // громкость (макс 30) delay(2000); // ждем пока запустится Serial.println("AT+AA00"); // останавливаем проигрывание до команды Serial.println("AT+AC01"); // одиночный режим проигрывания файлов, если нужно } void loop() { int num = 10; // номер файла // тут ждем некоторого события, например нажатия кнопок if ( / нажата кнопка старт / ) Serial.println ("AT+AB" + String(num)); // запускаем файл номер num if ( / нажата кнопка пауза / ) Serial.println ("AT+CB"); // пауза/продолжить }
А вот ножки “busy” у BT201, к сожалению, нет. Отслеживать окончание трека придется по приходящим сообщениям, известие об этом событии придет в виде “MO+00000xx”.Напомним, что команд сотни и все они для чего-то могут пригодиться, если требуется использовать потенциал платы на полную, придется внимательно изучать даташит, который, к слову, составлен и структурирован небезупречно. В заключение небольшой совет. Если не планируете припаивать и использовать ИК-датчик, рекомендуем заглушить его линию данных, притянув на “землю”. Таким образом получится избавиться от возникающих иногда небольших шумов и наводок. Достаточно припаять резистор на 1-10 КОм между контактами GND и IR датчика.
Для робототехники часто нужны 3д принтеры
Купить различные запчасти и комплектующие для 3d принтера можно в нашем магазине https://3d-diy.ru/catalog/spare-parts-3d-printer/
Применение, достоинства и недостатки
Изучив большинство возможностей BT201, можем с уверенностью сказать, что это очень мощный, надежный и удобный инструмент для “озвучивания” любых проектов. Достоинств масса: чистый звук, “всеядность” форматов, удобное управление, множество режимов работы, наличие необходимых разъемов на борту.Применений можно придумать неограниченное количество. В любом проекте, где нужен чистый звук по символической цене, стабильная работа с возможностью подключения извне, а также запись окружающих шумов, BT201 будем отличным выбором.
Озвучка и музыкальное сопровождение квестов, звуковые оповещения событий, интеграция с автоответчиком или домофоном, интеграция с сотовым телефоном, включая осуществление звонков, добавление функции Bluetooth туда, где ее не было (например, в старую автомагнитолу) и так далее и тому подобное - далеко не полный список возможных приложений возможностей плеера.
Мы благодарим ltleire DFPlayer за службу, но теперь у него осталось лишь два спорных преимущества перед BT201: меньший вшестеро размер и еще более смешная, чем у BT201, цена - 70 руб против 120 руб на момент написания этой статьи.
Выводы
BT201 - современный, многофункциональный, качественный звуковой плеер по демократической цене. Обязательно следует иметь его на вооружении и применять при разработке проектов, требующих работы со звуком.FAQ
Существуют ли прямые конкуренты BT201?По функционалу да, по совокупности возможностей и соотношению цена/качество практически нет. Есть пара схемотехнических разновидностей на той же базе, например BT321, BT301 и более компактная BT401, не сильно отличающихся по возможностям, но более дорогих и экзотичных.
Как осуществляется запись звука на BT201?
При помощи серии команд “AT+RCxx” (см. даташит). На активной флешке создается файл, куда будет записан звук с установленными параметрами и качеством.
Как BT201 работает со смартфоном?
Через Bluetooth соединение. Плеер позволяет проигрывать звук с телефона, включая разговор, считывать голос, отправляя его обратно. Кроме того, может быть осуществлен вызов по заранее заданному номеру, что может быть удобно для быстрого звонка или экстренной связи.
Для чего нужны кнопки на плате?
Для управления плеером вручную. Можно выбрать режим, запустить файл, остановить, выбрать следующий или предыдущий, отрегулировать звук. Фактически плеер готов к полноценной работе вообще без дополнительного оборудования.