Bluetooth пульт из джойстика Sega

Я продолжаю заниматься моделированием и постройкой роботов. Я уже писал инструкцию по созданию пульта для управления моделями и роботами. Пульт создан на основе старого джойстика от Sega. У данного джойстика есть четыре стрелки и 8 кнопок, достаточно для управления машинкой или небольшим роботом. Управление осуществлялось посредством ИК светодиода. Сегодня я напишу инструкцию по модернизации данного пульта, а именно переоборудование его в Bluetooth пульт. В зависимости от используемого Bluetooth модуля пульт или сам будет подключаться к заранее запрограммированному устройству или можно будет подключаться к пульту. Я опишу оба варианта. Нам понадобится:

— Джойстик от приставки Sega
— Arduino Pro Mini 3.3v 8MHz
— USB-TTL
— 2 Ni-Mn аккумулятора 1.2v 1000mA
— Bluetooth модуль HC-05 или HC-06
— Красный светодиод
— Синий светодиод
— Резистора 2x75Om, 2x5Om, 1x2Om
— Коннектор PLSх5 «мама»
— Термоклей
— Провода
— Отсек для батареек 4xAAA
— Разноцветные провода
— Паяльник, припой, канифоль
— Прямые руки

Шаг 1 Выбор Bluetooth модуля
Для связи необходимо два модуля. Один мы вставим в пульт, а второй будем подключать к машинке или роботу. Существует огромное количество Bluetooth модулей. Они различаются функциями и поддерживаемыми протоколами связи. Примерный список модулей, которые встречаются:
— HC-03, HC-04(HC-04-M, HC-04-S) на чипе BC417143 ;
— HC-05, HC-06(HC-06-M, HC-06-S) на чипе BC417143;
— HC-05-D, HC-06-D;
— HC-07 – модуль с чипом CSR 41C6;
— HC-08 – модуль с ультранизким энергопотреблением и протоколом Bluetooth 4.0;
— HC-09 – самый новый модуль, предназначенный для замены HC-06 и HC-07.

Я остановился на двух модулях HC-05 и HC-06, так как они оптимальны в соотношении ценафункционал. Они поддерживают протокол связи – Bluetooth Specification v2.0+EDR. Радиус действия – до 10 метров (уровень мощности 2). Совместимы со всеми Bluetooth-адаптерами, которые поддерживают SPP. Объем flash-памяти (для хранения прошивки и настроек) – 8 Мбит. Работают на частоте радиосигнала – 2.40 .. 2.48 ГГц. Хост-интерфейс – USB 1.1/2.0 или UART. Они обладаю небольшим энергопотреблением – ток в течение связи составляет 30-40 мА. Среднее значение тока около 25 мА. После установки связи потребляемый ток 8 мА. Эти модули легко найти, они являются самыми распространёнными. Модули очень похожи, а основное отличие между ними в том, что HC-05 может работать как в режиме ведущего (master), так и в режиме ведомого (slave). HC-06 может являться только ведомым устройством. Проше говоря, HC-06 не может сам обнаружить парное устройство и наладить с ним связь, он может лишь подчиниться ведущему. Модули продаются в виде двух спаянных вместе плат. Меньшая из них — заводской модуль. Большая — специальная макетная платка для DIY. Так выглядит меньшая плата с чипом BC417:

А так сами DIY модули HC-05 и HC-06:

Вы можете приобрести модуль без макетной платы. Он стоит немного дешевле, но тогда придется ставить стабилизатор напряжения 3.3 V для модуля. Также расстояние между контактами маленькое и придется помучится, припаивая к модулю провода.
Для установки связи между пультом и роботом или машинкой необходимо настроить два Bluetooth модуля на друг друга. В данном случаем модуль HC-05 мы настроим так, чтобы он находил и подключался к HC-06.

Шаг 2 Настройка HC-06.
Вначале необходимо подключить HC-06 к компьютеру. Сделать это можно подключив модуль через USB-UART переходник. В данном случае подключение, следующее:
Bluetooth – USB-UART
TX – RX
RX – TX
VCC — +5
GND – GND

Если под руками нет USB-UART можно записать в любую Arduino плату следующий скетч:

bluetooth_send_at.rar

[857 b] (скачиваний: 111)

Подключить по следующей схеме:
Bluetooth – Arduino
TX – pin 2
RX – pin 3
VCC — +5
GND — GND

Затем открываем любую терминальную программу, выбираем com-порт к которому подключен HC-06, скорость по умолчанию 9600, NL и CR не нужен. Если с HC-06 не установлено Bluetooth соединение, модуль находится в режиме ввода AT команд. Если модуль не отзывается попробуйте перегрузить его, отключив плюсовой провод и подключив его снова. И вводим следующие команды:

«AT» — без кавычек, должен прийти ответ «OK».
«AT+ADDR» — этой командой мы узнаем уникальный адрес HC-06, следует записать этот адрес
«AT+BAUD7» — устанавливаем скорость 57600
«AT+RESET» — перегружаем модуль

Следующие команды не обязательно вводить, но на всякий случай лучше их знать:
«AT+NAME<имя>» — смена имени устройства, имя вводится латинским буквами, без скобок.
«AT+ORGL» — возвращение модуля к заводским настройка
На этом настройка HC-06 закончена.

Шаг 3 настройка HC-05.
Подключаем модуль аналогично HC-06. Далее открываем любую терминальную программу, выбираем com-порт на котором висит USB-UART или Arduino, по заводским настройка скорость связи 9600, но я встречал и со скоростью 38400, если вы не меняли ее выбираейте 9600, не получиться соединиться меняем на 38400. Также стоит включить параметры NL и CR. Для перевода в режим ввода AT команд нужно нажать кнопку на плате HC-05, после этого вводим следующее:

«AT» — вводится без кавычек должен прийти ответ «OK». Если пришел продолжаем вводить команды дальше.
«AT+ROLE=1» — этой командой мы устанавливаем роль модуля цифрой:
0 — ведомый, 1 — ведущий, 2 — ведомый в цикле*. Должен прийти ответ «+ROLE:1rn» или «OK»
«AT+CMODE=0» — модуль в роли ведущего подключается только к тому Bluetooth устройству, адрес которого указан командой «AT+BIND».
«AT+BIND:1234,56,123456» — для установки соединения с вашим HC-06 нужно вписать сюда его адрес. После ввода всех команд модуль находится в роли ведущего (ROLE=1) и установлен режим подключения к фиксированному адресу (CMODE=0), он будет подключаться только к тому Bluetooth устройству, адрес которого указан данной командой. Части адреса вводятся: при установке — через запятую, а при ответе — через двоеточие. Придет ответа: «+BIND:1234:56:789ABC rn» или «OK»
«AT+UART=57600,0,0» — устанавливаем скорость 57600 бит/сек, стоп бит представлен цифрой: 0 — один, проверка представлена цифрой: 0 — без проверки

Если вы запутались в настройках модуля или он перестал работать правильно попробуйте следующую команду:
«AT+ORGL» — Модуль сбрасывает следующие настройки CLASS=0, IAC=9e8b33, ROLE=0, CMODE=0, UART=38400,0,0, PSWD=1234, NAME=hc01.com.

А затем заново проведите настройку нужных вам параметров.
Таким образом мы создали устойчивую связь между HC-05 и HC-06. При включении модулей HC-05 будет устанавливать соединение с HC-06. По личному опыту могу сказать, лучше вначале включать HC-05, а затем HC-06. Если соединение пропало перегружать нужно оба модуля.

Шаг 4 Подготовка пульта.
Данный шаг подробно описан в предыдущей инструкции по адресу:

https://usamodelkina.ru/8626-ik-pult-iz-dzhoystika-ot-sega.html

Необходимо выполнить шаги с 1 по 4. Припаивать ИК диод необязательно, хотя и мешать он не будет.

Шаг 5 Подключение Bluetooth модуля.
Я советую в пульт установить HC-06. Так как для изменения настроек модуля нужно будет только залить соответствующий скетч в Arduino Pro Mini. В случае с HC-05 придется разбирать пульт, чтобы нажать на кнопку перевода в режим AT команд. Соединяем все по следующей схеме

Джойстик – Arduino
Стрелка вверх — pin 2
Стрелка вниз – pin 4
Стрелка влево — pin 5
Стрелка вправо — pin 6
Кнопка A — pin 8
Кнопка B — pin 10
Кнопка C — pin 7
Кнопка X — pin 12
Кнопка Y — pin 11
Кнопка Z — pin 9
Кнопка Start — pin 14 (A0)
Кнопка Reset — RST
Общий — GND
Bluetooth – Arduino
TX – pin 16 (A2)
RX – pin 17 (A3)
VCC — + 5
GND – GND

HC-05 подключаем к ваше машинке или роботу которым собираетесь управлять. Варианты подключения и скетчи вы найдете в других моих инструкциях. При написании скетча робота надо установить скорость соединения 57600, и использовать в скетче библиотеку SoftwareSerial.

Шаг 6 Подготовка среды и прошивка.
Для написания и редактирования скетча лучше всего использовать Arduino IDE. Версия Arduino IDE должна быть не ниже чем 1.8. Скачиваем Arduino IDE с официального сайта:

https://www.arduino.cc/en/Main/Software

Затем необходимо добавить в Arduino IDE библиотеку. В скетче используется одна библиотека SoftwareSerial.h (для связи с Bluetooth модулем):

softwareserial.rar

[9,29 Kb] (скачиваний: 90)

Потребуется скачать и установить ее. Установить библиотеку можно распаковав архив и переместив распакованные файлы в папку «libraries», находящуюся в папке с установленной Arduino IDE. Или можно воспользоваться встроенным средством добавления библиотек — не распаковывая скачанный архив, выбрать в среде Arduino IDE меню Скетч – Подключить библиотеку. В верху выпадающего списка выбрать пункт «Добавить .Zip библиотеку». И указать место расположения скачанного архива. После установки библиотеки нужно перезагрузить Arduino IDE.
Прошивается наш пульт также, как и предыдущая версия пульта, через коннектор подключенный к USB-TTL, зарядка тоже через него. При заливке скетча необходимо нажать Reset.

pult_bluetooth.rar

[982 b] (скачиваний: 113)

Источник: usamodelkina.ru