Raspberry Pi Pico で MicroPython その7 CircuitPython でHID マウス

CircuitPython の HID ライブラリを使って Raspberry Pi Pico をUSB HID マウスにしてみます。
Raspberry Pi Pico で MicroPython その6 CircuitPythonの書き込みと動作確認  でCircuitPythonを書き込んだPicoを使用します。
Raspberry Pi Pico の購入は こちら が確実です。

1.Adafruit_CircuitPython_HID ライブラリのダウンロードとCircuitPythonに追加
GitHub – adafruit/Adafruit_CircuitPython_HID: USB Human Interface Device drivers. を開いて、「Code」「Download ZIP」をクリックして「Adafruit_CircuitPython_HID-master.zip」をダウンロードします。

「Adafruit_CircuitPython_HID-master.zip」を適当なフォルダに解凍します。
CircuitPythonが書き込まれたPicoをUSBケーブルでPCに接続します。

解凍した「Adafruit_CircuitPython_HID-master\adafruit_hid」フォルダをPicoの「lib」フォルダにコピーします。

2.Thonny Python IDE でコーディングと動作確認
以下のコードをThonnyに書きます。

import usb_hid
from adafruit_hid.mouse import Mouse
import time
mouse = Mouse(usb_hid.devices)
while True:
    for num in range(10):
        mouse.move(10, 10, 0)
        time.sleep(0.1)      
    for num in range(10):
        mouse.move(10, -10, 0)
        time.sleep(0.1)  
    for num in range(10):
        mouse.move(-10, -10, 0)
        time.sleep(0.1)  
    for num in range(10):
        mouse.move(-10, 10, 0)
        time.sleep(0.1)

「Run current script」ボタンをクリックします。

Thonny はなぜかPicoのメモリに書き込みできない(たぶんバグ)ので「This commputer」をクリックして適当なフォルダに「mouse.py」として保存します。

マウスのポインター(カーソル)が勝手にひし形を描くように動き出したら成功です。
止めるときは「Ctrl」+「C」を押してください。
mouse.move(10, 10, 0) の引数1はX移動量、引数2はY移動量、引数3はホイール移動量 です。
その他、右ボタン、左ボタン、中央ボタンなどについては、GitHub – adafruit/Adafruit_CircuitPython_HID: USB Human Interface Device drivers. の「Usage Example」の「The Mouse class simulates a three-button mouse with a scroll wheel.」を参照してください。

今回はここまでです。

2021/3/8 追記
ファイルをPicoのメモリに書き込めない件について、コメント欄で助言をいただきました。ありがとうございます。
PicoのRootフォルダに boot.py ファイルを置くことでRead-Onlyが解除できした。
boot.pyのソースコードは以下の2行です。

import storage
storage.remount("/", False)

参考文献
GitHub – adafruit/Adafruit_CircuitPython_HID: USB Human Interface Device drivers.

Raspberry Pi Pico で MicroPython その7 CircuitPython でHID マウス” への3件のフィードバック

  1. ツールからのRead-Onlyを解除するには、Rootフォルダに boot.py ファイルを置いておくようです。
    storage.remount(“/”, 0)

    同時二重書き込みアクセスで壊れるので、要注意とのことです。

    いいね

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中