micropython
M5stack

M5stackでMicroPythonを使えるようにする

ESP32を使った開発モジュールM5stack、カラー液晶画面つきで、キーボード開発キット「FACES」も出て、MicroPythonも使えるとあって手を出しました。

IMG_4287.JPG

技適の表示もあることを確認。日本でも安心して電波出せます。

IMG_4293.JPG

FACESの電源入れるといきなりスーパーマリオブラザースが起動します(さすがに、スイッチサイエンスが日本で取り扱っているFACESではこのプレインストールがありません)。ちょっと遊んでみる限り、液晶の発色はあまりよくなく、スピーカからの音もひどいノイズで聞けたもんじゃありません。

IMG_4290.JPG

さて、マリオはさっさとつぶしてMicroPython環境を入れることにします。ただ、公式ページに情報がほとんどありません。ググってみてPycomのファームウェアを入れるというのは見つけたのですが、これはちょっと違う気が。そこで、M5stackのgithubを見てまわって、それっぽいものがあったので試してみることにしました。

中国語ですが、それっぽい説明はここにあります。"M5Stack MicroPython"というキーワードもあるので、いかにもそれっぽい。この説明にしたがって試してみることにします。

ファームウェアのダウンロードと書込み

ファームウェアはここにあります。とりあえず最新の m5cloud-20180102-v0.2.5.bin m5cloud-20180228-v0.3.4.bin をダウンロードします。m5cloud-psram-20180102-v0.2.5.bin m5cloud-psram-20180228-v0.3.4.bin というのはたぶん2017年末に出た4MB PSRAM付用です。

ファームウェアをESP32に書き込むのにはesptool.pyを使いました。バージョン2.1以上がいいらしいです。書込みは、PCとM5stackを付属のUSBケーブルでつないで以下の2つのコマンドラインで出来ます (Macの場合)。

$ esptool.py --chip esp32 --port /dev/tty.SLAB_USBtoUART erase_flash
$ esptool.py --chip esp32 --port /dev/tty.SLAB_USBtoUART write_flash --flash_mode dio -z 0x1000 m5cloud-20180228-v0.3.4.bin

Wi-Fi接続の設定

ファームウェアの書込みが終わると、自動でリセットがかかり、M5stack 自体が Wi-Fiのアクセスポイントになります。この時点でLCD画面の表示から MicroPython が動いているらしいことがわかります。

IMG_4294.JPG

LCD画面の表示からアクセスポイントの SSID は "M5Stack-49c048" なので、PCのWi-Fi接続先をそこに変えます。

スクリーンショット 2018-01-02 21.06.47.png

Webブラウザで 192.168.4.1 にアクセスして、普段使っている Wi-Fi のSSIDとパスワードを入力して "Configure" をクリックします。

スクリーンショット 2018-01-02 21.09.18.jpg

Wi-Fi接続が行われます。Wi-Fi接続中にLCD画面にパスワードが表示されるのはセキュリティ的にマズイ。他の人に使わせるときには注意してください。 Wi-Fi接続に成功すると、LCD画面にチェックコードが表示されます。

IMG_4299.JPG

PCのWi-Fi接続先は元に戻しておきます。

M5Cloud へのデバイス登録

WebブラウザでM5Cloudにアクセスします。ログイン画面になるので、まずはアカウントを登録するために "Register" をクリックします。

スクリーンショット 2018-01-02 21.13.03.png

アカウント登録画面になるので、アカウント名となるEメールアドレスとパスワードを入力して "Register" をクリックします。

スクリーンショット 2018-01-02 21.13.25.png

"Device Management" 画面になるので、"+Add" をクリックします。

スクリーンショット 2018-01-02 21.14.01.png

M5stack のLCDに表示されていたチェックコードを入力します。チェックコードは一定間隔で変わるので、必ずLCD画面に表示されている最新のものを入力します。

スクリーンショット 2018-01-02 21.19.06.png

デバイス一覧に出てきて、"status" が "online" になっていれば登録完了です。

スクリーンショット 2018-01-02 21.19.40.png

IDEでの開発とアップロード

”Device Management" 画面の左側にあるアイコン "</>" をクリックすると IDE画面になります。最初に使用するデバイスの選択になるので、登録したデバイスを選択します。

スクリーンショット 2018-01-02 21.20.28.png

IDEでは最低限のファイルが用意されます。

スクリーンショット 2018-01-02 21.22.00.png

boot.py は デバイスブート時に実行されるもので、デフォルトではWi-Fi設定、NTP時刻取得、デバイスとクラウド間の通信の設定が行われます。

config.jsonにはWi-Fi接続のためのSSIDとパスワードが設定されています。パスワードは暗号化されていないので他人に見られないよう要注意。

main.pyがMicroPythonスクリプトの本体です。デフォルトでは "Hello world!" をLCD画面に出力ものがコメントアウトされています。このコメントアウトを外して、左側の雲のアイコンをクリックします。ファイルが M5stack に転送・実行されます。

IMG_4302.JPG

オフラインでの開発方法(元に戻す自信のない人は止めときましょう)

いちおう、これでM5stackのMicroPython開発環境は出来たわけですが、Wi-Fiに繋がってないと開発できないというのはちょっと不便。Wi-Fi使えない環境だと、M5stackが接続待ちで固まってしまうので、オフライン環境で開発するにはブート時のWi-Fi接続を止める必要があります。これを行うにはboot.pyでの "wifisetup" と "m5cloud" のimportをコメントアウトしてM5stackに転送します。

スクリーンショット 2018-01-02 21.27.52.png

以後は自動でM5cloudに接続しに行かなくなるので、PCとM5stackを付属のUSBケーブルで繋いで、シリアル端末からREPL操作したり、ampyでファイル転送ができるようになります。ただし、これを行うと、当然ながら以後のM5cloudからのファイル転送は出来なくなりますので、元のboot.pyを復活させる自信の無い人は止めておきましょう。

また、v0.3.0からM5Clouldを使わない人のためのファームウェアも用意されました。


API調査(途中)