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 の購入は こちら が確実です。
記事の最後で mouse jiggler としての利用法を紹介します。

  1. ライブラリのダウンロード
  2. コーディングと動作確認
  3. プログラムをPicoのメモリに書き込む方法
  4. mouse jigglerとして利用

ライブラリのダウンロード

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 ライブラリのダウンロードページ

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

Picoを接続

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

フォルダのコピー

コーディングと動作確認

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)
Thonnyの画面

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

プログラム実行

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.」を参照してください。

プログラムをPicoのメモリに書き込む方法

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

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

mouse jigglerとして利用

上記のサンプルプログラムの time.sleep(0.1) を time.sleep(100) などに書き換えるとマウスカーソルの動きが遅くなり市販の mouse jiggler (マウスジグラー)と同じように使うことができます。プログラムはPicoのメモリにファイル名「code.py」で書き込んでください。
これをPCに刺しておけば作業から離れている間にPCがログアウトしたりスクリーンセーバーに入るのを防ぐことができます。在宅勤務、テレワークで、Teamsが不在表示になるのを防ぎたいという場合にも使えます。マウスの移動量が大きくて気になる場合は mouse.move(*, *, 0) の引数を小さくしてみてください。使用は自己責任でお願いします。

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

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

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

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

    いいね

コメントを残す