Блютуз адаптер принципиальная схема

Самодельный Bluetooth приемник для домашней акустики

Самодельный Bluetooth приемник для домашней акустики

Сейчас продается много акустических колонок, у которых имеется картридер. Можно установить карту памяти или USB флеш-накопитель. Это конечно здорово, но если кто-то хочет послушать музыку со своего телефона? Нужно вытаскивать карту и вставлять в картридер. Неудобно ведь. Я решил пойти другим путем. Заказал в Китае модуль Bluetooth. Под названием BK8000L. Он очень удобен, имеет много функций. Один его недостаток, очень мелкий. Ну, ничего, справимся.

Понадобится

Самодельный Bluetooth приемник для домашней акустики

Из пластика вырезаю несколько заготовок. Пару с размерами 5*10 см и пару с размерами 3*5 см. Остальную пару вырежу позже.

Самодельный Bluetooth приемник для домашней акустики

Для выхода аудио сигнала применю два разных гнезда. Один, отрезанный с большой колодки разъем типа «тюльпан».

Самодельный Bluetooth приемник для домашней акустики

Самодельный Bluetooth приемник для домашней акустики

Самодельный Bluetooth приемник для домашней акустики

Самодельный Bluetooth приемник для домашней акустики

Самодельный Bluetooth приемник для домашней акустики

Чуть не упустил описать главное. Устройство имеет автономное питание, да-да. Питать буду от пары аккумуляторов Li-ion, с примерной емкостью почти 4.5 А/ч.

Самодельный Bluetooth приемник для домашней акустики

Самодельный Bluetooth приемник для домашней акустики

Сборка Bluetooth приемника

Переходим к сборке коробки. В одной заготовке делаю прорез под разъемы «тюльпан» и разъем как на наушниках.

Самодельный Bluetooth приемник для домашней акустики

Самодельный Bluetooth приемник для домашней акустики

Теперь можно склеивать наши заготовки. Получилось что-то типа этого. Разъемы «тюльпан» приклеиваю супер клеем и содой. Разъем 3.5 мм примеряю.

Самодельный Bluetooth приемник для домашней акустики

Самодельный Bluetooth приемник для домашней акустики

Пару слов о схеме, на которой и так все понятно. Схема в принципе доступна в интернете. Внешний источник подключается на разъем, в правом верхнем углу, или же к контроллеру можно подключить зарядку с micro USB. Питание идет на аккумулятор и через выключатель поступает на модуль. Выходной сигнал поступает на выходные разъемы. Будь то «тюльпан» или джек 3.5 мм. Плюс на схеме красный, минус соответственно синий. Распаиваем согласно схеме, тут все просто. Так же установил светодиод. Для индикации включения.

Самодельный Bluetooth приемник для домашней акустики

К аккумулятору припаял контроллер. К контроллеру разъем для БП. Параллельно распаял выходные разъемы.

Самодельный Bluetooth приемник для домашней акустики

Клею аккумуляторы, плату контроллера заряда и блютуз модуль на термо клей. Подпаиваю провода на выключатель.

Самодельный Bluetooth приемник для домашней акустики

Самодельный Bluetooth приемник для домашней акустики

Все собирается очень просто. Если владеете паяльником, то не составит труда собрать данную конструкцию. Приклеиваю боковые заготовки. Вот так выглядит готовая конструкция. Все работает отлично. Подключал к самодельному усилителю и к системе 2.1.

Самодельный Bluetooth приемник для домашней акустики

Смотрите видео

Источник

Bluetooth-модуль HC-05

Bluetooth уже давно и прочно вошёл в нашу жизнь в качестве удобного протокола связи различных устройств: мобильных телефонов, ноутбуков, КПК, гарнитур, мышей, клавиатур… Список можно ещё долго продолжать. Обычно эту технологию интегрируют в свои продукты крупные производители электроники в виде малюсенькой микросхемы в корпусе BGA или QFN. А как быть нам, простому электронному люду, не владеющими тёмными силами создания 4-слойных плат и кунг-фу микромонтажа? Для этого есть
Bluetooth-модуль HC-05 от наших китайских собратьев.

Этот модуль представляет собой плату размером 2.7×1.4 см, с 34 выводами с шагом 1.5 мм, расположенных по периметру платы, и имеет на одном из торцов антенну:

Читайте также:  Почему тормозит блютуз колонка


На плате расположен чип BC417 от компании Cambridge Silicon Radio, который обеспечивает аппаратную поддержку стека Bluetooth 2.0+EDR (Enhaced Data Rate), а также флэш-память ES29LV800DB-70WGI от Excel Semiconductor на 8 Мбит (1 МБ), хранящая прошивку и настройки.
С оригинальной китайской прошивкой модуль умеет работать в двух режимах: простого «радиоудлинителя UART» и управления AT-командами. В первом случае всё предельно просто — включаешь модуль, подключаешься к нему с компа или иного устройства, умеющего делать COM-порт по Bluetooth, и шлёшь в этот порт данные. Во втором режиме можно управлять модулем посредством AT-команд вида «AT+КОМАНДА» — например, команда «AT+NAME?» позволяет узнать имя модуля, но об этом позже.

Для того, чтобы подключить модуль, проясним назначение выводов:

  • TX, RX, CTS, RTS — линии UART; CTS и RTS недоступны в данной прошивке
  • PCM_CLK, PCM_OUT, PCM_IN, PCM_SYNC — линии для приёма-передачи звука (недоступны)
  • AIO0, AIO1 — линии I/O общего назначения (недоступны)
  • RESET — линия сброса (активируется логическим нулём)
  • 3.3 V, GND — питание, земля
  • NC — не подсоединён (Not Connected)
  • USB_D+, USB_D- — линии данных USB (недоступны)
  • CSB, MOSI, MISO, CLK — линии SPI (CSB — это SS, Slave Select), используются для прошивки чипа
  • PIO0 — разрешение/запрет RX
  • PIO1 — разрешение/запрет TX
  • PIO2-PIO7, PIO10 — линии I/O общего назначения
  • PIO8 — для светодиода, показывающего состояние модуля: светодиод мигает с разной скоростью в зависимости от того, чем занят модуль — опросом Bluetooth-устройств, ожиданием или чем-то ещё
  • PIO9 — для светодиода, показывающего статус соединения: горит, если установлено соединение с другим Bluetooth-устройством
  • PIO11 — для управления режимом работы: по умолчанию режим простого удлинителя UART, а если подать на него логичскую 1 — режим AT-команд

Кстати, модуль питается от 3.3 В, но его линии I/O могут работать и с 5-вольтовой логикой, что позволяет подключать его UART к Arduino без заморочек.

Но это ещё не всё: шаг между выводами у модуля — 1.5 мм, что категорически не сочетается с шагом отверстий в макетных платах, и для прототипирования придётся припаивать проводки. Но нас такой вариант не устроил, и пришлось немного напрячься и сделать плату-breakout для модуля. Zotlberg взял на себя эту задачу и успешно её решил вот в таком виде:

На плате установлен стабилизатор на 3.3 В, так что можно запитать модуль стандартным для Arduino напряжением 5 В, подключив питание к выводу, обозначенному 5V. Принципиальная схема платы:

А вот ещё исходники в формате DipTrace: принципиальная схема и разведённая плата.

Итак, плата готова, приступим к работе с модулем. Ставим breakout в макетную плату и подключаем следующим образом:

  • 3.3v — к 3.3 В от Arduino
  • GND — к GND Arduino
  • RX — к TX Arduino
  • TX — к RX Arduino
Читайте также:  Блютуз шкода суперб 2 рестайлинг

Включаем Arduino с подключенным модулем. Если в вашем компьютере нет встроенного Bluetooth-контроллера, воспользуйтесь Bluetooth USB-донглом вроде этого:

Теперь займёмся программной частью. Для начала зальём в Arduino такой скетч:

enum < LED_PIN = 13 >; enum LedState < LED_ON, LED_OFF, LED_BLINK >; LedState led_state; void setup() < led_state = LED_OFF; pinMode(LED_PIN, OUTPUT); Serial.begin(38400); >void loop() < if (Serial.available()) < char command = Serial.read(); switch (command) < case '1': led_state = LED_ON; break; case '0': led_state = LED_OFF; break; case '*': led_state = LED_BLINK; break; default: < for (int i = 0; i < 5; ++i) < digitalWrite(LED_PIN, HIGH); delay(50); digitalWrite(LED_PIN, LOW); delay(50); >> > > switch (led_state) < case LED_ON: digitalWrite(LED_PIN, HIGH); break; case LED_OFF: digitalWrite(LED_PIN, LOW); break; case LED_BLINK: < static unsigned long start_millis = 0; if (millis() - start_millis >= 300) < start_millis = millis(); digitalWrite(LED_PIN, !digitalRead(LED_PIN)); >> > >

Кликните правой кнопкой мыши на значке Bluetooth в трее:

В появившемся списке устройств выбираем наш модуль и жмём Далее:

В следующем окне выберите вариант ввода PIN-кода вручную:

Введите код «1234» и нажмите Далее:

Если авторизация пройдёт успешно, то вы увидите следующее окно:

Откройте список Bluetooth-устройств и зайдите в свойства модуля:

На вкладке «Службы» поставьте галочку напротив профиля последовательного порта и нажмите ОК:

Windows установит нужный драйвер и покажет облачко с соответствующим сообщением и названием порта:

Теперь вам понадобится программа-терминал с хорошей настраиваемостью. Неплохим вариантом будет лёгкая и бесплатная (даже для коммерческого использования) программа Termite. Установите её, запустите и нажмите Settings. В настройках поставьте:
Port — COM6 (ну или какой порт Windows назначила модулю у вас)
Baud rate — 38400
Transmitted text — Append nothing

Жмите OK и в главном окне программы Disconnected — click to connect:

Модуль должен зажигать светодиод L в ответ на символ ‘1’, тушить на ‘0’ и мигать им на ‘*’ c частотой примерно два раза в секунду. При вводе любых других символов светодиод должен около секунды мигать с большей частотой.

Запустите bluetooth-wizard и нажмите «Вперёд»:

В следующем окне дождитесь нахождения вашего модуля и нажмите кнопку «Параметры PIN»:

Выберите PIN-код 1234 и закройте окно:

В окне со списком устройств Жмите «Вперёд», и если будут ошибки, повторите операцию с PIN-кодом. В случае успеха вы увидите такое окно:

Запустите сканирование доступных Bluetooth-устройств:

$ hcitool scan Scanning . 00:11:04:29:02:55 H-C-2010-06-01

H-C-2010-06-01 — это имя нашего устройства (может быть также «HC-05»). Создаём устройство для работы по протоколу RFCOMM:

$ sudo rfcomm bind /dev/rfcomm0 00:11:04:29:02:55

Всё, теперь можно обмениваться данными через виртуальный COM-порт /dev/rfcomm0. Можно прямо в консоли:

$ stty -F /dev/rfcomm0 38400 # устанавливаем скорость порта $ echo -n '1' > /dev/rfcomm0 # пишем туда символ '1', без символов перевода строки

Также можно воспользоваться замечательной программой cutecom: в поле Device введите /dev/rfcomm0, в списке Baud rate поставьте скорость 38400, внизу окна в списке выберите вариант No line end. Теперь жмите Open device и шлите через поле Input символы:

Читайте также:  Найти блютуз вин 10

Модуль должен зажигать светодиод L в ответ на символ ‘1’, тушить на ‘0’ и мигать им на ‘*’.

Чтобы задействовать такие функции модуля, как опрос «соседних» Bluetooth-устройств, установку другой скорости UART и прочие, необходимо использовать AT-команды, описанные в этом datasheet. Сразу предупреждаю: этот даташит очень китайский — многие вещи просто не описаны, для некоторых команд не описано даже их поведение, оформление кривое, куча ошибок из-за невнимательного copy&paste. Но другие даташиты на этот модуль ещё хуже >:[=]

Все команды имеют вид AT+КОМАНДА, AT+КОМАНДА? или AT+КОМАНДА=ПАРАМЕТРЫ и должны оканчиваться комбинацией CR+LF (символы с кодами 0x0D и 0x0A, ‘\r’ и ‘\n’). Примеры команд:

AT+NAME? — спросить у модуля его имя
AT+ROLE=1 — задать роль master
AT+INQ — запустить опрос соседних Bluetooth-устройств

  • В случае успеха:
    +КОМАНДА:ОТВЕТ
    OK
    Строки, начинающейся с ‘+’, может и не быть, если команда не должна ничего возвращать. Например, на команду AT+NAME? модуль ответит так:
    +NAME:H-C-2010-06-1
    OK
    а на команду AT (тест) просто:
    OK
  • В случае ошибки:
    FAIL
    или
    ERROR:(КОД ОШИБКИ) Самый первый код ошибки 0 значит, что формат команды неверен — на команду AT+ЖАХНИ, к примеру, модуль ответит:
    ERROR:(0) Кстати, зацените грустный смайл 🙁 в этом ответе. Многие команды имеют как форму запроса, так и форму установки параметра. Опять же, команда AT+NAME? возвращает имя модуля, тогда как AT+NAME=ИМЯ его устанавливает. Для того, чтобы модуль мог принимать AT-команды, нужно его перевести в соответствующий режим — для этого нужно установить вывод PIO11 в логическую 1 (подтянув к питанию, например). После этого соединяйтесь с модулем, используя Arduino в качестве переходника USB-UART, аккуратно вытащив из него микроконтроллер (не сломайте ножки МК!)
    Выставьте в терминалке конец строки CR+LF и попробуйте скормить модулю пару команд. Выглядеть это должно примерно так: Всего команд 36, описаны они все в даташите. Заданные командами настройки модуль сохраняет в своей flash-памяти, так что после его можно использовать без повторной настройки. А вообще, работать напрямую с AT-командами, да ещё на микроконтроллере, довольно сложно и уныло, так что я основательно вкурил ядрёный китайский даташит и накатал библиотеку Bluetooth_HC05. В библиотеке я реализовал все функции модуля, документация по библиотеке лежит в директории doc. И напоследок: возможность перепрошивки аналогичного модуля обсуждали на хабре, ну и в сообществе easyelectronics есть небольшая заметка.

Источник

Оцените статью
Adblock
detector