Waveshare Pico-CapTouch-ePaper-2.9 をCircuitpythonで使う (完結)

前回、前々回で Waveshare Pico-CapTouch-ePaper-2.9 のePaper表示とタッチスクリーンの実装が出来ました。

あとはキーボードとして動かすだけです。ライブラリを使うだけなのでテキパキ進めましょう。

HIDライブラリ

HIDライブラリではKeyboard、Mouse、Gamepad、ConsumerControlが用意されています。

docs.circuitpython.org

ConsumerControlって何だ?と思ったけど、ボリュームなどのいわゆるマルチメディアキーのエミュレーションみたいです。

つかいかた

KeyboadクラスもConsumerControlクラスも同じ感じで使えます。

  • send - キーを押して離す
  • press - キーを押す
  • release - キーを離す

KeyboardクラスとConsumerControlクラスのキーの同時押しとかはpressreleaseを組み合わせて実現します。

例えば、「⌘」+「 輝度-」でディスプレイのミラー設定切り替えは以下のようにします。

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()

あとはこんな感じでアイコンを用意してタッチされた座標に応じたキーを送出すれば完成です。

とてもいい感じで動作しています。
私はマルチメディアキーの配置が全く覚えられていないので助かっています。

ソースコードはこちら。
boot.pyでシリアルポートとマスストレージを無効にしていますので利用の際は注意してくださいね。

github.com