売っていないモノ電子工作

眼前の課題に対処するだけの小物を電子工作する試行錯誤記

勝手に動くマウス

Raspberry Pi Pico でマウスポインタを微動させ続ける

自分に設定変更権限がない端末での作業。
ほんの少しデスクを離れただけなのに、戻ったらまたパスワード地獄!という方も多いのでは?

検索でヒットする「マウスふるふる」は当該端末に入れられない。

マウスを括り付けた愛猫に動き続けてもらう案は即却下(動かにゃい)。
結局ラズパイピコ550円(税込)で簡単に実現できました。

なお、以下の手順は全てWindows10パソコンを前提としています。

10コのステップだけで効果を発揮

VPN接続の切断防止

・スリープ突入防止

スクリーンセーバーの起動防止

・何度も何度もパスワード入力を繰り返す、不毛な負荷からの解放

 
ステップ1, 準備

Raspberry Pi Pico本体 と USBケーブル(A-microBタイプ) を用意。

f:id:bocororo:20210615233720j:plain


ステップ2, CircuitPythonをダウンロード

https://circuitpython.org/board/raspberry_pi_pico/

f:id:bocororo:20210616143844j:plain


右真ん中辺り「DOWNLOAD UF2 NOW 」をクリック。パソコン上の任意の場所に保存し、場所を覚えておきます。ステップ4で使います。


ステップ3, USB接続

まず、ピコ本体にmicroUSBを挿入します。小さいので本体破損に注意。
次に"ブートセルボタン"(ピコ本体USB端子のそばにあるBOOTSELと表記された白いスイッチ)を押しながら、パソコンのUSB端子にUSBケーブルを挿入します。

 

f:id:bocororo:20210615233816j:plain


ステップ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 をダウンロード

https://thonny.org/

f:id:bocororo:20210616141530j:plain

右上の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

f:id:bocororo:20210616142912j:plain


右上のボタン「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:)」として現れており、普通にコピー&ペーストできました。

f:id:bocororo:20210616155541j:plain

 
ステップ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)

f:id:bocororo:20210616155429j:plain

 

ステップ9,  動作確認

Thonnyメニュー 実行→"Run current script"  または F5 または ▷ボタン を押すと、保存先を聞かれます。

f:id:bocororo:20210616160115j:plain

 

CircuitPython device をクリック。

 

f:id:bocororo:20210616160407j:plain

 

File name: に main.py と記載して OKボタンをクリック。

ステップ8で書いたコードが「main.py」というファイル名でPicoのrootフォルダに保存されました。

(保存完了後に改めて撮った画面ショットなので、既に「main.py」が存在してしまっています。初めてこのステップ9を行う際には、lib フォルダとboot_out.txt だけが存在して見える状態でした。紛らわしくてすみません)

f:id:bocororo:20210616160811j:plain

 

コード実行開始から30秒後

マウスカーソルが動きました。成功!
特に動く頻度は各々の目的に依拠する箇所と思われるので time.sleep() の数字を加減してみて下さい。

 

ステップ10, 動作確認終了・パソコンからUSBを抜いて完成

Thonnyメニュー 実行→"Stop/Restart backend" または Ctrl+F2 またはSTOPボタン 

 f:id:bocororo:20210616160909j:plain

 

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.

*1:砂町技研様のサイトを参照しました