DIY: USB HID over Bluetooth, делаем любое HID устройство безпроводным

Начало года, у кого как, а у нас новогодняя забава – инвентаризация склада запчастей!
Для инвентаризации используются стандартные USB сканеры штрих кодов, работающие как HID устройства. Чтобы немного облегчить работу парням на складе ну и для собственного опыта решил сделать беспроводной сканер.

image
Для реализации понадобилось:
  • микроконтроллер mbed (NXP LPC1768)
  • модуль Bluetooth (Bluegiga WT12)
  • аккумулятор Li-Po 2 Cell
  • ну и по мелочи: макетная плата, регулятор +5V, разъем USB-A,…

Микроконтроллер.

Давно ждал своего часа MBED, который пылился на полочке уже пару месяцев.
image
MBED приятно удивил, удобная онлайн среда разработки (С/C++), офлайн .NET, MATLAB, LabVIEW, Python, Java, активное комьюнити с кучей полезных и удобных инструментов и т.п.
Основные характеристики:
  • Cortex-M3
  • 96 MHz ARM, 64 KB SRAM, 512 KB Flash
  • Ethernet, USB
  • SPI, I2C, UART, CAN
  • GPIO, PWM, ADC, DAC

image

Для этого проекта функционал MBED явно избыточен, был использован только 1 UART и USB. Единственное неудобство было в том, что пришлось использовать внешний регулятор +5V, в отличие от того-же Arduino Mega/Nano/Uno, где если 5 Вольт есть, то они есть всегда, не зависимо от типа источника питания, но это мелочь.

Блютус!

Выбрал модуль Bluegiga WT12 как самый доступный у локальных дистрибьюторов на момент покупки.
image
  • Встроенная чип-антенна
  • Профили SPP, DUN, HID, OPP, OTA и др.
  • Питание 3.3V
  • ПО: iWRAP или HCI
Я использовал вариант прошивки с iWRAP (Wireless Remote Access Platform), управление модулем осуществляется с помощью простых ASCII-команд, как это делается при работе с обычными модемами через AT-команды.

Макетная плата

Тут все просто, как два провода соединить, во всех смыслах.
Соединяем порты UART микроконтроллера с bluetooth. Разъем USB-A соединяем с МК, +5V через регулятор к аккумулятору. Получаем нечто:
image

Программинг

Тоже все просто. Настраиваем bluetooth для автономной работы, включаем профиль HID, устанавливаем пароль, прописываем тип устройства (я пользовался вот этим калькулятором, любезно кем-то написанным). Выглядит это примерно так:
SET BT NAME DeBarCoder
SET PROFILE HID on
SET BT AUTH * usepass
SET BT CLASS 00540
RESET


Программируем микроконтроллер на прямую передачу HID Data -> UART и готово!

Соединяем все части вместе и получаем вот такой бутерброд
image
ну или такой
image

Todo

Сделать USB зарядку аккумулятора, спрятать всё в корпус-уточку, пусть суровые кладовщики порадуются.


0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.