Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

※ 2019/5/17 注記: M5Stack で MicroPython 単体および M5Cloud はすっかりメンテされなくなり、UI.Flow に移行しているため、本記事はもう古すぎな内容となっています。

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調査(途中)

inachi
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした