MicroPythonの動作しているSTM32のボードをUSBマウスとして動作させ、PCに接続してみました。
ボードは以前も使ったNUCLEO-F767ZIです。
これは以下のページのサンプルをそのまま使ったもので、上のように、MicroPythonのコードでPCのマウスポインタを動かすことができます。
(画像はLICEcapでキャプチャしました。)
8. Making the pyboard act as a USB mouse — MicroPython 1.9.3 documentation
USBデバイスとして動作するUSBポートは、プログラムを書き込むST-LINKではなく、ボードの反対側についているUSB端子のほうです。
PCへの接続は、以下のようにマウス用とプログラミング用の2本のUSBケーブルが必要になります。
マウス用のUSBポートは、MicroPythonを動かしている場合、初期状態ではPCからはUSBマスストレージとして認識されます。
このストレージでアクセスできるのは、REPLからosモジュールでアクセスできるものと同じファイルシステムです。
以下のように「PYBFLASH」というドライブ名で見えています。
先に、このストレージにある「pybcdc.inf」をPCにコピーしておいてください。
マウスのデバイスドライバをインストールする際に必要になります。
次のステップ以降では、このストレージへのアクセスができなくなります。
コピーしたら、ストレージのboot.pyをメモ帳などで開いて修正します。
コメントアウトされている
#pyb.usb_mode('VCP+HID') # act as a serial device and a mouse
の先頭の#を削除して、この行を有効にして保存します。
これでリセットすると、MicroPythonはマスストレージではなくHIDデバイスとして起動します。
初回起動時はWindowsからマウスとして認識されないので、さきほどコピーしたpybcdc.infを使ってデバイスをインストールする必要があります。
以下のようなコードを入れて、osc(200,20)等と入力すると、マウスカーソルが水平方向に動きます。
USBマスストレージとしてアクセスできるように戻したい場合は、ST-LINK側からboot.pyをuPyCraftなどを使って書き換えてください。
コメント