Юзай новый блютус, BLE-пять Изучаем и кодим под новый скоростной протокол на примере Arduino
Содержание:
Общие сведенья
Модуль XS3868, предназначен для пайки на печатную плату, шаг контактов 1.3 мм (кстати, модуль имеет небольшие размеры всего 30 мм на 17 мм), собран на чипе OVC3860, являющийся Bluetooth приемопередатчик с низкой электропотребление, всего 55 мА в режиме проигрывания и в режиме ожидания 10 мА. Работает чип на частоте 2.4 ГГц, а Bluetooth v2 + EDR (улучшенная версия Bluetooth v2, повышенная скорость передачи данных), что позволяет передавать хороший звук (20 бит), так-же с помощью модуля можно управлять громкостью, останавливать треки и переключатель их и конечно же, осуществлять звонки.
Модуль имеет зеленую маску, а все электронные компоненты расположены на одной стороне печатной платы. На верхней части расположена антенна с местом для впаивания внешней антенны, в центре установлен Bluetooth чип OVC3860 с минимальной электронной обвязки (конденсаторы и резисторы, кварц). Слева расположена LDO регулятор 4XK6 в корпусе SOT23-5, а правее расположен еще один регулятор 4XY6 (XC9235E26DM) собранный точно в таком же корпусе SOT23-5. Для хранения конфигурации предусмотрена микросхема памяти T24C08A. На обратной стороне печатной плате, компонентов нету. Расположение и назначения выводов, показана на рисунке ниже.
Назначение выводов:
► 1 (AOM) — аудио выход «GND»
► 2 (AOL) — аудио выход «Left»
► 3 (AOR) — аудио выход «Right»
► 4 (MIC+) — микрофона (+)
► 5 (MICBIAS) — микрофона (-)
► 6 (LED1) — подключение светодиода
► 7 (LED2) — подключение светодиода
► 8 (VCC) — питание 5V (для зарядки аккумулятора)
► 9 (GND) — питание GND
► 10 (VBUSK)
► 11 (VBAT) — аккумулятор (+)
► 12 (1V8) — выход 1.8V
► 13 (RESET) — сброс
► 14 (ONKEY) — кнопка PLAY / PAUSE
► 15 (VOL+) — кнопка увеличения громкости
► 16 (VOL-) — кнопка уменьшения громкости
► 17 (MFB1)
► 18 (UART_TX) — интерфейс UART
► 19 (UART_RX) — интерфейса UART
► 20 (MODE)
► 21 (NEXT) — кнопка NEXT
► 22 (PREV) — кнопка PREV
► 23 (MUTE) — кнопка тишина
Самый простой способ подключить XS3868, это воспользоватся специальным адаптером, в котором уже встроены кнопки, световая индикация и аккумулятор для автономной работы, но есть и минусы, увеличивается стоимость. Есть и второй способ включения, с минимальным подключением проводов. Для этого необходимо подключить питание, резистор 4,7 кОм – 10 кОм между выводами 1,8V OUT и RST и ауди разъем (если подключать пассивные колонки, без усилителя, необходимо в схему добавить усилитель). Собираем принципиально схему, что показана на рисунке.
В примере дорабатываю колонки Logitech Z240. На задней стенке расположен трансформатор с переменным выходным напряжением 9В, на плате напряжение выпрямляется (кстати, у меня колонки активные со встроенным усилителем). Так как, на плате используется напряжение 9В, необходимо использовать преобразователь напряжения LM2596 (есть небольшие помехи) с выставленным напряжением в 3.7. Вход модуля LM2596 подключаем к регулятору громкости, чтобы при выключении усилителя отключатся и XS3868 (так как, через 5 минут ауди модуль выключится) и выход LM2576 подключаем к ауди модулю XS3868, согласно схеме выше.
Примечание: В общем, все зависит от схемотехники, можно найти и встроенный стабилизатор (мультиметр в помощь) или вообще не найти их (если пассивная колонка), так же есть небольшие помехи (шумы и треск), это из-за общего питания усилителя и Bluetooth, чтобы избавиться необходимо воспользоватся изолированным dc-dc преобразователем, а так же использовать ферритовые сердечники, как придут доработаю.
Теперь, при включении колонки, заиграет мелодичная мелодия, громкость автоматически будет на максимуме (конечно, если XS3868 без адаптера). Далее, ищем на телефоне новое Bluetooth устройство с именем POR 1007BT, пароль для соединения 0000. Если модуль в течении 5 минут не используется, он переходит в режим энергосбережения (отключается), для возвращения в рабочий режим необходимо сбросить питание.
Модули спрятал в термоусадочную трубку к корпусу закрепил с помощью термоклея.
Купить на Aliexpress Аудио-модуль XS3868 на базе OVC3860 (Bluetooth 2.0) Адаптер для XS3868
Купить в Самаре и области Аудио-модуль XS3868 на базе OVC3860 (Bluetooth 2.0) Адаптер для XS3868
Отладочная плата
Отладочную плату на основе этого микроконтроллера я выбрал под стать чипу, вот она: nRF52840 Preview DK Development Kit for nRF52840. Между прочим, к ней прилагается NFC-антенка!
NRF52840 PDK — это универсальный комплект для разработки плат для Bluetooth 5, Bluetooth с низким энергопотреблением, ANT, 802.15.4 и 2.4GHz с использованием nRF52840 SoC. Этот комплект поддерживает разработку для SoC nRF52840.
Набор аппаратно совместим с Arduino Uno Revision 3, позволяет использовать сторонние шилды, совместимые с этим стандартом. Антенна NFC может быть подключена к набору, чтобы активировать функциональность тега NFC. Комплект обеспечивает доступ ко всем входам и выходам через интерфейсы и имеет четыре светодиода и четыре кнопки, которые программируются пользователем.
Он поддерживает стандартную цепочку инструментов разработки Nordic Software Development с использованием Keil, IAR и GCC. Опции программы / отладки в комплекте — это Segger J-Link OB.
Кроме всего прочего, на основе младшего чипа серии nRF52832 уже существуют платы для платформы Arduino, например Arduino Primo. Почему это хорошо? Да потому, что это избавляет тебя от кодинга на С.
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score!
Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя!
Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»
Настройка Bluetooth модуля HC-0506
Для занятия нам понадобятся следующие детали:
- Плата Arduino Uno / Arduino Nano / Arduino Mega;
- USB-кабель;
- Bluetooth модуль HC-05/06;
- Провода «папа-папа» и «папа-мама».
Настройка Bluetooth модуля с помощью AT-команд
Скетч для прошивки блютуз модуля Arduino
#include SoftwareSerial.h> // подключаем библиотеку SoftwareSerial mySerial(2,3); // указываем пины tx и rx void setup() { pinMode(2,INPUT); pinMode(3,OUTPUT); Serial.begin(9600); // включаем hardware-порт mySerial.begin(38400); // включаем software-порт Serial.println("start setting"); } void loop() { if (mySerial.available()) { char c = mySerial.read(); // читаем из software-порта Serial.print(c); // пишем в hardware-порт } if (Serial.available()) { char c = Serial.read(); // читаем из hardware-порта mySerial.write(c); // пишем в software-порт } }
Пояснения к коду:
В программе все предельно просто: при получении данных на аппаратном (встроенном) последовательном порту, данные отправляются в программный последовательный порт (на модуль). А при получении данных с модуля, они отправляются на аппаратный последовательный порт, то есть на монитор порта.
Прошивка модуля HC-05 AT-командами
Настройка модуля через монитор порта Arduino IDE
Итак, чтобы изменить код доступа к Bluetooth-модулю, имя или другие характеристики, следует отправить следующие команды через монитор последовательного порта Arduino IDE (смотри скрин ниже). Также приведем пошаговую инструкцию, какие необходимо использовать AT команды для перепрошивки HC-05. А в конце статьи размещена более полная таблица at команд с небольшими пояснениями.
- узнаем версию прошивки модуля: AT+VERSION?
- узнаем режим работы модуля: AT+ROLE?
- узнаем имя Bluetooth-модуля: AT+NAME?
- задаем новое имя модуля: AT+NAME=ROBOT
- узнаем имя Bluetooth-модуля: AT+NAME?
- узнаем пин-код Bluetooth-модуля: AT+PSWD?
- задаем новый пин-код доступа: AT+PSWD=0000
- узнаем пин-код Bluetooth-модуля: AT+PSWD?
Обратите внимание, что при настройке модуля, в мониторе последовательного порта IDE Arduino следует выбрать пункт «NL & CR». После программирования модуля отсоедините вывод 34 от 3,3 Вольт и подключитесь к Bluetooth-модулю с телефона или планшета
Если при первом подключении блютуз модуля к Ардуино, у нас были стандартные настройки, то сейчас наш модуль имеет свое имя и новый пин-код.
Настройка bluetooth модуля на Android
Таким образом, мы можем использовать в одном месте сразу несколько bluetooth модулей, а чтобы не запутаться присвоить каждому свое уникальное имя. Также мы можем задать новый пин-код, чтобы защитить модуль от постороннего вмешательства. С помощью данной настройки модуля НС-05/06 мы можем получать данные с датчиков не только на мониторе порта, но и на любом Android — устройстве.
AT | OK | Тестовая команда |
AT+VERSION? | +VERSION: … | Узнать версию прошивки модуля |
AT+RESET | OK | Сброс настроек |
AT+ADDR? | +ADDR: … | Узнать адрес модуля |
AT+NAME? | +NAME:«name» | Узнать имя модуля, где «name» — имя Bluetooth-модуля |
AT+NAME=«name» | OK | Установить новое имя, где «name» — имя Bluetooth-модуля |
AT+PSWD? | + PSWD:«pin» | Узнать код доступа, где «pin» — код, по умолчанию 1234 |
AT+PSWD=«pin» | «pin» OK |
Установить новый код доступа к модулю, где «pin» — код доступа к Bluetooth-модулю |
AT+ROLE? | +ROLE:«param» | Узнать режим работы модуля, где «param» — режим: 0 — slave. К модулю может подключиться мастер; 1 — master. Модуль сам подключается к устройству. |
AT+ROLE=«param» | OK | Установить режим работы модуля, где «param» — режим |