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 зарядку аккумулятора, спрятать всё в корпус-уточку, пусть суровые кладовщики порадуются.
Tags:
diy, mbed, nxp, arduino, usb, bluetooth, barcode, hid

You can't comment this post because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author's username will be hidden by an alias.