В этой статье я рассказывал как собрал дополнительную плату COM-AY, которая расширяет функционал компьютера Орион-ПРО двумя портами COM1 и COM2. Используя COM1 можно подключить Орион-ПРО к домашнему компьютеру проводным соединением и обмениваться файлами. Вот так выглядит плата COM-AY:
Теперь, когда проводное соединение по COM порту с домашним компьютером работает, хочу подключить Орион-ПРО по беспроводному соединению.
Для COM1 на плате имеется два варианта подключения:
- классический RS-232, когда установлена микросхема MAX232;
- вариант UART/TTL, когда подключение осуществляется напрямую от ВВ51, MAX232 не устанавливается, а в место нее можно установить четыре пина для подключения.
Я сразу выбрал второй вариант, т.к. планировал попробовать сделать беспроводное соединение на основе Bluetooth (UART/TTL):
Экспериментировать с беспроводным подключением я буду проводить с помощью трех Bluetooth модулей HC-06, HC-05 и JDY-33. Все эти модули, как заявлено, поддерживают профиль последовательного порта (SPP) и позволяют заменить проводное соединение UART на беспроводное:
Для настройки и тестирования Bluetooth модулей мне пригодился вот такой конвертер USB в TTL (RS232) на базе CH340G:
Конвертер позволяет подключить модули с напряжением 5 и 3.3 вольта, а также имеет возможность установить уровень сигнала 5 вольт или 3.3 вольта. Мои Bluetooth модули питаются от напряжения 5 вольт, но уровень сигнала должен быть 3.3 вольта, на конвертере нужно установить правильно перемычку!
Еще один важный момент. Сигналы RxD и TxD Bluetooth модуля должны подключаться к конвертеру наоборот: RxD в TxD и TxD в RxD.
Перед тем как использовать Bluetooth модули их необходимо настроить через конвертер USB в TTL, указав скорость, с которой они будут обмениваться данными. Сейчас моя плата расширения COM-AY умеет взаимодействовать только на скорости 38400, соответственно ее и надо будет указать.
Настройка Bluetooth модулей осуществляется с помощью любого терминала, я буду использовать терминал встроенный в среду разработки Arduino IDE. В Arduino IDE в меню "Инструменты" необходимо выбрать любую плату и указать COM порт, который назначен Windows конвертеру USB в TTL (RS232). Комбинацией клавиш Ctrl-Shift-M в Arduino IDE открывается окно терминала. В терминале нужно указать правило конца строки команды, либо "Нет конца строки", либо "NL & CR", в зависимости от того, какой модуль используется. А также необходимо указать скорость. Если соединение установлено правильно, то команда "AT" должна вернуть "OK".
Далее рассмотрим каждый модуль отдельно.
HC-06
Первым модулем для исследования я выбрал HC-06. На маркет плейсах этот модуль выглядит также, как мой на фотографии:
Это не настоящий HC-06! Не рекомендую его заказывать!
В чем проблема. При сопряжении этого модуля с Windows 11 он подключается и добавляется в список устройств как HC-06. В диспетчере устройств появляется этот модуль, а также служба "Универсальная служба атрибутов Bluetooth с низким энергопотреблением":
Т.е. Windows 11 определяет этот модуль как устройство BLE (Bluetooth Low Energy), а не SPP (Serial Port Profile). COM порт такому устройству не назначается.
Изучая справочники я выяснил, что модуль HC-06 является упрощенной версией модуля HC-05 и работать может только в режиме Slave. Модуль должен иметь чип CSR BC417, такой же чип устанавливается на модули HC-05. В модуле HC-06 нет кнопки входа в режим команд AT, вводить команды можно, если модуль не подключен. AT-команды можно вводить когда светодиод часто мигает.
В моем модуле установлен чип, на сколько я смог разглядеть через микроскоп, С124316, а также флеш память INK256FV. Это явная попытка имитации HC-06. С124316 - скорее всего "эконом-модуль" из семейства BK3431. Флеш память на 256 Кбит (32 КБ), в оригинале должна быть флеш на 8-16 Мбит. 256 Кбит физически недостаточно, чтобы хранить полноценный стек Bluetooth Classic (SPP).
Версия прошивки этого модуля (можно узнать командой "AT+VERSION" в терминале) "hc06V2.1_le" однозначно указала, что это подделка.
Этот модуль подключается к Андроид телефону и возможно использовать для каких-то других проектов, но для сопряжения с Орион-ПРО он однозначно не подходит.
Из спортивного интереса я позже нашел оригинальный HC-06. Вот фотография подделки и оригинала:
HC-05
Вторым исследуемым модулем выбран HC-05:
В этом модуле все настоящее, модуль на базе чипа CSR BC417. Такой модуль можно смело приобретать для беспроводного подключения Орион-ПРО.
При сопряжении модуля с Windows в списке устройств можно увидеть два HC-05. Нужно выбрать то устройство, для которого открываются COM порты.
По умолчанию в модуле установлена частота 9600, для Орион-ПРО ее надо поменять на 38400. Для этого с помощью конвертера USB в TTL подключаем его к компьютеру. Перед тем, как подать питание на модуль необходимо переключить его в режим AT-команд кнопкой, которая находится рядом с контактной клеммой "EN". Светодиод будет медленно мигать. Не зависимо от настроенной частоты, в режиме AT-команд модуль работает на частоте 38400, ее надо установить в терминале, также нужно указать "NL & CR". Установка частоты для взаимодействия с Орионом-ПРО выполняется командой "AT+UART=38400,0,0".
Есть одна особенность режима AT-команд в модуле HC-05. При переходе в этот режим первая команда выполняется сразу, а вот последующие выполняются только с зажатой кнопкой. Для того, чтобы выполнить несколько команд и не держать в это время кнопку, достаточно подать 3.3 вольта на разъем "EN". 3.3 вольта можно взять с разъема конвертера USB в TTL.
Больше никаких настроек не требуется, модуль готов к сопряжению.
JDY-33
И последний Bluetooth модуль - это JDY-33:
JDY-33 по сравнению с HC-05 более современное устройство, реализованное на чипе BK3432 с поддержкой версии Bluetooth 3.0 (в HC-05 версия Bluetooth 2.0). У JDY-33 потребление тока в пять раз ниже модуля HC-05. Действительно, при использовании его в Орион-ПРО, JDY-33 показал себя более стабильным, чем HC-05, сбоев практически не было, но скорость осталась такая же, как и при использовании HC-05.
В моем JDY-33 чип с маркировкой BP21135, что является нормальным для JDY-33.
В этом модуле по умолчанию также установлена частота 9600 и ее, необходимо поменять на 38400. Для этого с помощью конвертера USB в TTL подключаем JDY-33 к компьютеру. Специально переводить модуль в режим AT-команд не требуется. В терминале нужно указать 9600 и "NL & CR". Установка частоты для взаимодействия с Орионом-ПРО выполняется командой "AT+BAUD6".
Подключение модулей Bluetooth к Ориону-ПРО.
Для подключение модуля Bluetooth к плате расширения COM-AY нужно соединить контакты на плате и на разъеме модуля в соответствии с маркировкой, т.е. RxD-RxD, TxD-TxD. Но есть один нюанс, на плате расширения COM-AY уровни сигналов 5 вольт, т.к. они напрямую подключены к КР580ВВ51, а модуль расширения ограничен уровнем сигнала 3.3 вольта. Необходимо уменьшить напряжение только сигнала RxD до 3.3 вольта с помощью двух резисторов: резистор на 2 КОм припаять с обратной стороны модуля Bluetooth к контактам разъема RxD и GND и разрезать провод возле подключения к модулю Bluetooth сигнала Rxd и в разрыв припаять резистор на 1.2 КОм.
Теперь можно подключить модуль Bluetooth к плате COM-AY, установить плату на свое место и включить питание компьютера Орион-ПРО.
На моем домашнем компьютере установлена Windows 11 со всеми последними обновлениями. Материнская плата домашнего компьютера MSI PRO Z790-А WIFI.
Сопряжение домашнего компьютера с Bluetooth модулем осуществляется в разделе "Bluetooth и устройства" в настройках Windows:
В окне "Добавить устройство" нужно выбрать "Показать все устройства":
Выбрать в списке наш Bluetooth модуль.
Если на Bluetooth модуле предусмотрен PIN сод, то при добавлении его надо указать, как правило это "1234".
Важный момент! При добавлении Bluetooth модуль только на короткое время подключиться, после чего перейдет в состояние "Не подключено". Это нормальное поведение. В списке добавленных устройств для нашего модуля будет написано "Сопряжено".
С установкой драйверов в Windows 11 не должно быть проблем, она автоматически установит все необходимое. Также в списке COM портов должны появится один или два COM порта, в зависимости от того, какой модуль подключаем.
Некоторые из модулей позволяют подключаться к ним в режиме Slave или Master, соответственно открывается два порта: "Исходящий" и "Входящий". Нас интересует только "Исходящий" порт (режим Slave модуля). Чтобы узнать номер COM порта, необходимо в настройках Windows в списке Bluetooth устройств найти пункт "Дополнительные параметры Bluetooth", как правило он находится в конце после списка устройств в разделе "Дополнительные параметры Bluetooth". Вот мой список портов для модулей HC-05 и JDY-33:
Теперь можно настроить программу oriserv.exe. Настройки я рекомендую делать в самом файле oriserv.ini, т.к. двузначный номер COM порта не корректно устанавливается из интерфейса:
Теперь можно запустить сервер oriserv.exe. Если все настройки правильные, то сервер откроет COM порт, модуль Bluetooth автоматически подключится и светодиод модуля HC-05 будет мигать редко, а если установлен модуль JDY-33, то его светодиод будет постоянно гореть.
oriserv.exe запущен, информация о каталоге отправлена в Орион-ПРО:
Диск "G" Орион-ПРО отображает список файлов на домашнем компьютере:
Файлы можно копировать, удалять, просматривать и запускать. Но скорость очень низкая по сравнению с проводным подключением. Это связано с особенность передачи данных через Bluetooth. Можно еще отключить использование буферов FIFO в настройках COM порта, но это не сильно улучшит ситуацию.
В общем скорость пока меня не устраивает и эксперименты с беспроводным подключением я буду продолжать... Но и возвращаться к проводному соединению мне уже не хочется.