Trinket M0 でマウスを作る

正直, 購入事例が少なくてバグの解決策を見つけづらいことからTrinket M0を買ったことを後悔している。 (まあ後でProMicroを買うからええやろ)

コードの内容

上下(vertical)と左右(horizontal)それぞれ1ボタンで, リバースボタンが押されていないとき右上に, リバースボタンが押されると左下に移動する。

気づいたこと

正しいmain.pyが書き込まれているときは仕様通りに書き込みに応じて新しいmain.pyファイルが実行されるが, 誤ったmain.pyファイルを書き込んだ後はいくら書き換えても実行されない。エラーメッセージも表示されない。リセットボタンを押すしかない。

誤ったmain.pyファイルを書き込んだあとは, Blinkなどの確実に動くファイル(ライブラリを要求しないものがおすすめ)を書き込んでリセットボタンを押すと, 再度誤ったファイルを書き込んだときにエラーが表示されるようになる。

常にエラーメッセージが表示されるようになると嬉しいなあ。

コード

from adafruit_hid.mouse import Mouse
import board
import digitalio
import time

m = Mouse()

v = digitalio.DigitalInOut(board.D0)
h = digitalio.DigitalInOut(board.D4)
r = digitalio.DigitalInOut(board.D2)

buttons = [v, h, r]

for button in buttons:
    button.direction = digitalio.Direction.INPUT
    button.pull = digitalio.Pull.UP

print("Waiting for button presses")

while True:
    if not v.value:
        if r.value:
            print("UP")
            m.move(y=-10)
        else:
            print("DOWN")
            m.move(y=10)
    if not h.value:
        if r.value:
            print("RIGHT")
            m.move(x=+10)
        else:
            print("LEFT")
            m.move(x=-10)
    time.sleep(0.02)