Как отправить ключи, отличные от ASCII, через соединение BLE HID с помощью Adafruit nRF52 Feather?
Скетч примера <code>hid_keyboard</code> показывает, как отправлять символы ASCII, но как я могу отправлять коды, отличные от ASCII, такие как клавиша F1
или клавиши с модификаторами shift/control?
@bigjosh, 👍1
1 ответ
Лучший ответ:
Вы можете использовать функцию keyboardReport()
для отправки кодов клавиш с модификаторами. Вот пример, который отправит !
, отправив код клавиши для 1
плюс модификатор клавиши Shift...
// Функция keyboardReport() принимает массив из 6 кодов клавиш. Насколько я могу судить, это не
// последовательно нажимайте клавиши,. он нажимает их одновременно.
// Здесь мы хотим отправить только один код, поэтому мы заполняем массив HID_KEY_NONE
uint8_t keycodes[6] = { HID_KEY_1, HID_KEY_NONE , HID_KEY_NONE , HID_KEY_NONE , HID_KEY_NONE , HID_KEY_NONE };
blehid.keyboardReport( KEYBOARD_MODIFIER_LEFTSHIFT , keycodes );
// Этот релиз кажется обязательным. Без него последняя нажатая клавиша просто повторяется вечно.
blehid.keyRelease();
Здесь перечислены возможные модификаторы... https:// github.com/ adafruit/Adafruit_nRF52_Arduino/blob/200b3aaefb3256ac26df82ebc9b5b58923d9c37c/cores/nRF5/Adafruit_TinyUSB_Core/tinyusb/src/class/hid/hid.h#L188
...и возможные коды клавиш перечислены здесь.. http s://github.com /adafruit/Adafruit_nRF52_Arduino/blob/200b3aaefb3256ac26df82ebc9b5b58923d9c37c/cores/nRF5/Adafruit_TinyUSB_Core/tinyusb/src/class/hid/hid.h#L212
К сожалению, пример hid_keycodes
не компилируется, но это готовый к запуску скетч, показывающий, как отправлять коды клавиш напрямую...
https://gist.github.com/bigjosh/5d8575f26988228dcf9d40c3795d0928
- nRF52832 BLE «conn_handle» для отключения текущих подключенных устройств
- Несовместимость микроконтроллера MacBook + BLE?
- Как callback функция вызова может отозвать себя. Например, функция подключения отменяется при наличии нового подключения
- Использование SoC nRF52 в качестве РЧ-радио
- Как записать с клиентского узла на серверный узел в пользовательскую службу BLE?
- Библиотека ардуино или код для ESP32 для сканирования устройств Bluetooth?
- Отправка/получение данных от/на Raspberry Pi к/от Arduino с помощью HM-10 (модуль Bluetooth LE)
- Высокочастотный PWM на Adafruit Feather M0