勝手に動くマウス
Raspberry Pi Pico でマウスポインタを微動させ続ける
自分に設定変更権限がない端末での作業。
ほんの少しデスクを離れただけなのに、戻ったらまたパスワード地獄!という方も多いのでは?
検索でヒットする「マウスふるふる」は当該端末に入れられない。
マウスを括り付けた愛猫に動き続けてもらう案は即却下(動かにゃい)。
結局ラズパイピコ550円(税込)で簡単に実現できました。
なお、以下の手順は全てWindows10パソコンを前提としています。
10コのステップだけで効果を発揮
・VPN接続の切断防止
・スリープ突入防止
・スクリーンセーバーの起動防止
・何度も何度もパスワード入力を繰り返す、不毛な負荷からの解放
ステップ1, 準備
Raspberry Pi Pico本体 と USBケーブル(A-microBタイプ) を用意。
ステップ2, CircuitPythonをダウンロード
https://circuitpython.org/board/raspberry_pi_pico/
右真ん中辺り「DOWNLOAD UF2 NOW ↓」をクリック。パソコン上の任意の場所に保存し、場所を覚えておきます。ステップ4で使います。
ステップ3, USB接続
まず、ピコ本体にmicroUSBを挿入します。小さいので本体破損に注意。
次に"ブートセルボタン"(ピコ本体USB端子のそばにあるBOOTSELと表記された白いスイッチ)を押しながら、パソコンのUSB端子にUSBケーブルを挿入します。
ステップ4, CircuitPythonのUF2をPicoに書き込み
パソコンでエクスプローラを開き、ステップ2でダウンロードした「adafruit-circuitpython-raspberry_pi_pico-ja-6.2.0-beta.2.uf2」をPicoのフォルダにコピーします。自動的にピコが再起動してCircuitPythonモードになれば成功です。
(ステップ7の画面ショットが例です。Picoが「CUICUITPY(D:)」としてエクスプローラ上で確認できます。)
ステップ5, Thonny Python IDE をダウンロード
右上のDownload version 3.3.10 for 「Windows」部分をクリックし、ダウンロードした.exeを実行します。
これでThonnyPython IDE を起動できるようになりました。
ThonnyではPythonのコマンド入力・プログラム作成等ができるので、Raspberry Pi Picoをパソコンから操れます。
ステップ6, Adafruit_CircuitPython_HID ライブラリのダウンロード
https://github.com/adafruit/Adafruit_CircuitPython_HID
右上の緑ボタン「↓Code▽」から「Download ZIP」をクリック、
「Adafruit_CircuitPython_HID-master.zip」をダウンロード。
ここですぐに
「Adafruit_CircuitPython_HID-master.zip」を適当なフォルダに解凍します。ステップ7で使います。
ステップ7, ライブラリのコピー
パソコンでエクスプローラを開き、ステップ6で解凍した「Adafruit_CircuitPython_HID-master」フォルダの中から、「adafruit_hid」フォルダだけをPicoの「lib」フォルダ内にコピーします。
この例ではPicoが「CIRCUITPY(D:)」として現れており、普通にコピー&ペーストできました。
ステップ8, Thonny Python IDE でコーディング
ステップ5でWindows10メニュー「すべてのアプリ→Thonny」が選択できるようになっているので、ThonnyPython IDE を起動します。
以下の8行のコードを<untitled>に書きます。*1
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(30)
ステップ9, 動作確認
Thonnyメニュー 実行→"Run current script" または F5 または 緑▷ボタン を押すと、保存先を聞かれます。
CircuitPython device をクリック。
File name: に main.py と記載して OKボタンをクリック。
ステップ8で書いたコードが「main.py」というファイル名でPicoのrootフォルダに保存されました。
(保存完了後に改めて撮った画面ショットなので、既に「main.py」が存在してしまっています。初めてこのステップ9を行う際には、lib フォルダとboot_out.txt だけが存在して見える状態でした。紛らわしくてすみません)
コード実行開始から30秒後
マウスカーソルが動きました。成功!
特に動く頻度は各々の目的に依拠する箇所と思われるので time.sleep() の数字を加減してみて下さい。
ステップ10, 動作確認終了・パソコンからUSBを抜いて完成
Thonnyメニュー 実行→"Stop/Restart backend" または Ctrl+F2 または赤STOPボタン
Thonnyメニュー ファイル → 終了 でThonnyを終了。
USBを抜きます。いきなり抜いて大丈夫です。
完成!お疲れ様でした。
現状このピコは「勝手に動くマウス」のみの機能。少しもったいない。
でもとりあえず使えるようになったので、今日はここまで。
◆今後の課題:USBケーブル抜き差しでしかon/offできない問題
・手をかざすとon, 再度かざすとoff →人感センサーの増設 または 単なる物理スイッチの増設
・main.pyという名のファイル探求
今回は「Thonnyがない環境でも、USB挿入と同時にピコチュウに動いてもらう」を主眼としたのでmain.pyを使用したが、扱いが厄介。rshellで/pyboardディレクトリを使用しないとファイル自体の削除や自動起動停止ができない等。
マニュアルには下記しかないので、今後要探求。
If you "save a file to the device" and give it the special name main.py, then MicroPython starts running that script as soon as power is supplied to Raspberry Pi Pico in the future.