M5Stackは、esp32という中華製高性能IOT向けCPUを搭載してます。
ARM coretex M4 100MHzで処理能力が150DMIPS
なので、ESP32が240MHzで600DMIPSなので、4倍の処理能力があります。
当然、電力も5V500mAと食います。CoretexM4の4倍以上食いますので
電池駆動では持ちません。
何が良いかというとマイコンでは、なかなか大変なアプリが使える点です。
mbedでTFT液晶でグラフィックを表示するのは大変な仕事ですが、esp32ならすいすいです。
Pythonがデフォルトで動く点が魅力なので、今回は、M5Stack Pythonの入門環境である
UIFlowをいじってみました。
参考にさせていただいたブログ記事https://qiita.com/mashed-p/items/1ba7a3dc54e3b766c2a8
(2018年までは、microPythonとM5 Cloudを提供していたのですが止めたみたいで
M5Stack 正式HPでは、UIFlowを前面に押して推奨してます。
https://m5stack.com/#/
●始め
前回は、Arduino用にAPI環境をファームウェアをインストールしてあったのですが、
UIFlow用にファームウェアを書き換えることから始めます。
①ダウンロードしておくファイル
UIFlowでPythonを動作させるのに必要なファイル類をまとめてダウンロードします。
https://m5stack.com/pages/download
A:UIFlow-Desktop-IDE
これは、UIFlowそのもののDESKTOP版です。WEB上でUIFlowを動作させる場合は、CLOUDで
IDEの代わりをしてくれるので、DESKTOP版は必要ありませんが、初めていじる時は、
WEB接続操作が面倒なので、DESKTOP版だとUSBケーブルでつなぐだけでUIFlow動作できます
B: M5Burner
初期にArduino環境でファームウェアをインストールしてあるのが普通ですので、
UIFlowを使う時は、UIFlow用のファームをインストールしないといけません。
M5Burnerは、ファーム書き換えをワンタッチでやってくれる便利TOOLです。
以上2つを上記ダウンロードページからダウンロードして解凍して、EXEファイルを実行できる
ようにしておきます。
②ファームウェアをUIFlowにする
M5Burnerを立ちあげると、左に並んでいるソース群は実際はダウンロードされてないので
一番上のUiFlow ver xxxをクリックすると自動でダウンロードしてくれます。
それをしないと、ずっとファイルが無いというエラーがでて書き込みができません。
あとは、
USBでM5Stackをつないで 左上のUIFlow指定しておいて右上のBURNを押すだけです。
最後にSccessとでてくるまで待っていればよいです。
③UIFlowをUSB modeに変更
M5の電源を切って、立ち上げるとUIFlowのロゴ画面がでてきて、画面下にボタン機能表示が3つでます、左のSETUPを急いで押します。すぐ押さないと次のデモ画面に移ってしまうので、UIFlwo画面を見逃す場合があって、初心者には、非常に使いにくい設定となってます
(デフォルトをどこにおくかの仕様次第ということですが)
今回は、DESKTOP版を使うので、デフォルトのinternet modeではなく、USB modeに変更します。
SETUPを押すと選定モードが表示されるので、右ボタンをしてカーソルをさげて
Switch to USB modeを指定して 真ん中のselectボタンを押して設定完了します。
画面は、APIKEYとQRコードが表示されますが、UIFlow DESKTOP版を使っているとAPIコードが聞かれた場合はこのコードをいれればいいと思いますが、私の場合は、APIコードは聞かれないでそのままUSBシリアル接続できました。
④UIFlow DESKTOP版を立ち上げる
いよいよUIFlowを動作させます。解凍したえおいたUIFlow DESKTOP版のEXEをダブルクリックで
立ち上げます。すると CP21xx USBドライバが無いじゃないのかと聞いてきますが、
既にarduinoで動作させたことがあれば、SKIPでいいです。初めてのUSB接続の場合は
CP21xxドライバを install します。
次に本画面が現れます
自動でCOM番号がでてきますが、でてない場合は、WINのデバイスマネージャーCOMで番号を確認しておいてから入力します。言語は日本語に設定しておきます。OKで本画面がでます。
画面がでたら、左下のCOMポート connectedになっているか確認したら、左上のM5Stackの画面に
上にあるTITLEとかのツールをDRAGして画面に書き込んで、M5Stackの任意画面を作ります。
左上の▶を押すとコンパイルが開始されて転送されて、M5Stack本体に表示されます。
左のドラッグによるPYTHONプログラム作成ですが、真ん中にいろいろ機能名が書いてあるのが
ブロックエディタといって、プログラムの関数にあたるものをブロック絵にしてPYTHONを作れるようになっているものです。
グラフィックのテキストブロックをドラッグして右の空き地へ持っていって文字を入力します。
左上の▶を押すとコンパイルが開始されて転送されて、M5Stack本体に表示されます。
ドラッグだけでPythonプログラムが出来ましたが、コードがどうなっているかは
上のBlocklyからPythonへクリックするとコードが現れます。
一番下の行にABCEFのPRINT行がありました。
上の3つのボタンが見えないのはvisibility がFalseになっているので,Trueに書き換えれば
ボタン機能が表示されます。
●以後
こんなに簡単にPYTHON学習ができるTOOLがあったので、いろいろいじりながら
PYTHON学習してみます。コードをみてもC++より楽になりそうで、メジャーな言語に
なりそうなので、学習しても損はないと思います。