Использование клавиатурного ПК Raspberry Pi 500+ в качестве обычной Bluetooth-клавиатуры

Хотя Raspberry Pi 500+ является полнофункциональным Linux-клавиатурным ПК, его также можно использовать в качестве обычной механической Bluetooth-клавиатуры.

На этой неделе возникла проблема с обычным комплектом беспроводной клавиатуры и мыши Logitech, поэтому его отправили в магазин для ремонта, так как он все еще находился на гарантии. Затем кто-то забыл RF-адаптер от своего комплекта дома, и в итоге осталась одна запасная клавиатура на двух человек. Не идеально. Но к счастью, как раз был завершен обзор клавиатурного ПК Raspberry Pi 500+ , поэтому оказалась доступна запасная механическая клавиатура, а проект btferret позволил использовать ее в качестве Bluetooth-клавиатуры, которая и применяется для написания этой статьи.

Using Raspberry Pi 500+ as a Bluetooth Keyboard

Можно было бы использовать Pi 500+ напрямую как Linux-машину, но пришлось бы переустанавливать все регулярно используемое программное обеспечение и не было бы доступа к некоторым файлам на обычных компьютерах.

Основные инструкции можно найти на форумах Raspberry Pi :

git clone https://github.com/petzval/btferret
gcc keyboard.c btlib.c -o keyboard
sudo ./keyboard

Вывод команды:

aey@raspberrypi:~/btferret $ sudo ./keyboard
Initialising...
Device data from keyboard.txt file
DEVICE = My Pi   TYPE=Mesh  node=1  ADDRESS =  2C:CF:67:FD:8B:AA
PRIMARY_SERVICE = 1800
  LECHAR=Device Name   SIZE=4   Permit=02 UUID=2A00
  LECHAR=Appearance    SIZE=2   Permit=02 UUID=2A01
PRIMARY_SERVICE = 180A
  LECHAR= PnP ID           SIZE=7 Permit=02   UUID=2A50
PRIMARY_SERVICE = 1812
  LECHAR=Protocol Mode   SIZE=1  Permit=06  UUID=2A4E
  LECHAR=HID Info        SIZE=4  Permit=02  UUID=2A4A
  LECHAR=HID Ctl Point   SIZE=8  Permit=04  UUID=2A4C
  LECHAR=Report Map      SIZE=47 Permit=02  UUID=2A4B
  LECHAR=Report1         SIZE=8  Permit=92  UUID=2A4D
Advertise as LE HID device
Listening for LE clients to connect (ESC=stop server)
Advertising as D3:56:D6:74:33:04 HID device
Wait for pair...
PAIR OK
Connected OK. Key presses sent to client. ESC stops server
F10 sends Hello plus Enter

Ноутбук не поддерживает Bluetooth в Ubuntu, поэтому пришлось перейти на Windows, где Bluetooth-клавиатура Pi 500+ была правильно обнаружена как устройство «HID», и с подключением не возникло проблем.

Raspberry Pi 500+ HID Bluetooth Keyboard

Но при начале печати ничего не происходило. Исходный код был изменен для вывода кода клавиши при нажатии, но снова ничего… Тогда стало понятно, что было ошибочное предположение. Программа была запущена в SSH-терминале, но клавиши захватываются только на рабочем столе. Поэтому терминал был открыт в среде рабочего стола Raspberry Pi OS, и программа была запущена снова — на этот раз все заработало.

Это отличное временное решение, но могут потребоваться некоторые корректировки для адаптации к раскладке клавиатуры путем изменения файла keyboard.txt в коде. Кроме того, клавиша Esc по умолчанию завершает программу, поэтому при ее нажатии программа останавливается и отключается от хоста:

Key press stop server...
Disconnecting 10:68:38:3A:0D:DB
10:68:38:3A:0D:DB has disconnected

Это происходило несколько раз, поэтому программу приходилось перезапускать. Это также означает, что рекомендуется подключать монитор при использовании функции Bluetooth-клавиатуры — как для перезапуска программы, так и для повышения стабильности (клавиатура отключается через некоторое время без подключенного монитора).

Некоторые клавиши не работают, такие как клавиша «Raspberry Pi/Windows», а комбинации вроде Alt+Tab и другие shortcuts работают нестабильно. Также появляются странные символы при использовании клавиш со стрелками с клавишей Shift для выделения слова: [1;2C соответствует Shift + стрелка влево, а [1;2D — Shift + стрелка вправо. Самопроверка не проводилась, но эти мелкие проблемы можно исправить путем модификации кода под вашу клавиатуру . В любом случае, это хорошее временное решение при отсутствии рабочей клавиатуры. Метод также работает с более ранними клавиатурными ПК Raspberry Pi 400 и 500.

Выражаем свою благодарность источнику, с которого взята и переведена статья, сайту cnx-software.com.

Оригинал статьи вы можете прочитать здесь.

 

0 0 votes
Article Rating
Подписаться
Уведомление о
guest

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

0 Комментарий
Oldest
Newest Most Voted
Inline Feedbacks
View all comments