2018年03月06日

MicroPythonでUSBマウス

pybmouse.gif

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ケーブルが必要になります。

pyb-usb-test.jpg


マウス用のUSBポートは、MicroPythonを動かしている場合、初期状態ではPCからはUSBマスストレージとして認識されます。
このストレージでアクセスできるのは、REPLからosモジュールでアクセスできるものと同じファイルシステムです。
以下のように「PYBFLASH」というドライブ名で見えています。

pybcdc.png


先に、このストレージにある「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などを使って書き換えてください。
ラベル:USB MicroPython
posted by boochow at 23:01| Comment(0) | stm32 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。
人気記事