🙌

Seeeduino XIAOでキーボード入力をする

2021/09/06に公開

目的

インタラクティブコンテンツを作っていると、ボタン1つ2つだけを使用するものを作ることがあります。
実装中はスペースキーとかで代用するのですが、いざ本番となるとある程度簡単に使えるHIDデバイスがあればいいなと思って探していました。

2024/09/12 追記:
Keyboard.hでやってる方もいらっしゃいますし、そちらの方がスムーズな気がしました。
https://qiita.com/mikecat_mixc/items/c3f5e39e54b36b1a538a
当時なんでTinyUSBのライブラリ使おうと思ったんだろ、、。

条件

  • マイコンがコンパクトでHIDデバイスになる
  • コネクタで脱着できる(GROVEコネクタやQwiicコネクタなどの既存のものが信頼性や交換のしやすさからも望ましい)

いくつか検討した中で、Seeeduino XIAOがいいのではないかと思って試してみました。

  • 小型
  • Grove Shield for Seeeduino XIAOでGROVEコネクタも簡単に使える
  • USB-C (Micro bの端子をあまり信用していない)

Seeeduino XIAOの使い方

Board ManagerにXIAOを追加する

公式ページがわかりやすい
https://wiki.seeedstudio.com/jp/Seeeduino-XIAO/#_10

USBとして使う

ライブラリをインストールする。こちらも公式ページに記載あり。サンプルコードもここに載っている。
https://wiki.seeedstudio.com/jp/Seeeduino-XIAO-TinyUSB/

(2023.11.24追記)上記URLはアクセスできなくなっていて、こちらならアクセスできた。
https://wiki.seeedstudio.com/Seeeduino-XIAO-TinyUSB/

エラー発生

以下のエラーが発生する。

cannot declare variable 'usb_hid' to be of abstract type 'Adafruit_USBD_HID'

同じようなエラーに遭遇した人がいる。
https://forum.seeedstudio.com/t/adafruit-tiny-usb-example-xiao-hid-compiler-error-cannot-declare-variable-usb-hid-to-be-of-abstract-type-adafruit-usbd-hid/258815

解決法

解決策はライブラリのダウングレードとのこと。

If you use v1.0.0 or later, please roll back to v0.10.5.

/Users/miyano-yuji/Documents/Arduino/libraries にある新しいライブラリを削除し、以下のサイトでv0.10.5をダウンロードする。
https://github.com/adafruit/Adafruit_TinyUSB_Arduino/releases

これで動いた。

Discussion