前回、前々回で Waveshare Pico-CapTouch-ePaper-2.9 のePaper表示とタッチスクリーンの実装が出来ました。
あとはキーボードとして動かすだけです。ライブラリを使うだけなのでテキパキ進めましょう。
HIDライブラリ
HIDライブラリではKeyboard、Mouse、Gamepad、ConsumerControlが用意されています。
ConsumerControlって何だ?と思ったけど、ボリュームなどのいわゆるマルチメディアキーのエミュレーションみたいです。
つかいかた
KeyboadクラスもConsumerControlクラスも同じ感じで使えます。
send
- キーを押して離すpress
- キーを押すrelease
- キーを離す
KeyboardクラスとConsumerControlクラスのキーの同時押しとかはpress
とrelease
を組み合わせて実現します。
例えば、「⌘」+「 輝度-」でディスプレイのミラー設定切り替えは以下のようにします。
import usb_hid from adafruit_hid.keyboard import Keyboard from adafruit_hid.keycode import Keycode from adafruit_hid.consumer_control import ConsumerControl from adafruit_hid.consumer_control_code import ConsumerControlCode kb = Keyboard(usb_hid.devices) cc = ConsumerControl(usb_hid.devices) kb.press(Keycode.COMMAND) cc.send(ConsumerControlCode.BRIGHTNESS_DECREMENT) kb.release_all()
あとはこんな感じでアイコンを用意してタッチされた座標に応じたキーを送出すれば完成です。
とてもいい感じで動作しています。
私はマルチメディアキーの配置が全く覚えられていないので助かっています。
よく使うショートカットのタッチパネルキーボードができた。最初はミラーリングを切り替えるボタンだけだったんだけど、メディアキーも追加したらとても便利になりました。特に今は無いEJECTキーを使うスリープのショートカットが便利 #pipico pic.twitter.com/2em0OBM13A
— イナバ (@hollyhockberry) 2022年11月6日
ソースコードはこちら。
boot.pyでシリアルポートとマスストレージを無効にしていますので利用の際は注意してくださいね。