Trinket M0でWebブラウズを便利にする

y-sni.hatenablog.com

ハードウェアは前回と同じで, キーボードのふりをしてボタン操作でブラウザバック・上下スクロールができるようにします。

学び

ブラウザバックには0.2秒ほどスリープを入れないと戻りすぎた。 逆に上下スクロールは0.1秒毎にポーリングしないと遅すぎた。

懺悔

何も考えていないコピペだらけのクソコードでごめんなさい

参考

adafruit_hid.keycode — Adafruit HID Library 1.0 documentation

コード

from adafruit_hid.keyboard import Keyboard
from adafruit_hid.keycode import Keycode
from adafruit_hid.keyboard_layout_us import KeyboardLayoutUS
import board
import digitalio
import time

back = digitalio.DigitalInOut(board.D0)
back.direction = digitalio.Direction.INPUT
back.pull = digitalio.Pull.UP

up = digitalio.DigitalInOut(board.D4)
up.direction = digitalio.Direction.INPUT
up.pull = digitalio.Pull.UP

down = digitalio.DigitalInOut(board.D2)
down.direction = digitalio.Direction.INPUT
down.pull = digitalio.Pull.UP

kbd = Keyboard()
layout = KeyboardLayoutUS(kbd)

led = digitalio.DigitalInOut(board.D13)
led.direction = digitalio.Direction.OUTPUT

print("Waiting for button presses")

while True:
    if not back.value:
        print("back")
        led.value = True
        kbd.press(Keycode.ALT, Keycode.LEFT_ARROW)
        time.sleep(0.1)
        kbd.release_all()
        led.value = False
        time.sleep(0.2)
    
    if not up.value:
        print("up")
        led.value = True
        kbd.press(Keycode.UP_ARROW)
        kbd.release_all()
        led.value = False
    
    if not down.value:
        print("down")
        led.value = True
        kbd.press(Keycode.DOWN_ARROW)
        kbd.release_all()
        led.value = False
        
    time.sleep(0.1)