「M5Stack」カテゴリーアーカイブ

M5Stack Core 2入門 – 2 – UIFlowでプログラミングする

ども。こんばんは。

前回の続きです。

M5Stackの開発には、大きく、
Arduino IDE
M5Cloud
UIFlow
が、あるようでそれぞれファームウェアを入れ替えることで開発環境も変わります。

Python(MicroPython)での開発だと、M5CloudかUIFlowですが、M5Cloudはあんまりメンテナンスされていないらしい?という情報もあり、最新のUIFlowを導入します。

なお、UIFlowは完全ブラウザベースのものとDesktop版がありますが、今回は折角なので完全ブラウザベースのもので挑戦します。

■ファームウェアの書き換え

いろんな記事を見ていると、以前はesptoolで書き込むのが主流だったようですが、現在はM5Burnerを使うようです。

M5Burnerは公式サイトからダウンロードできます。

https://m5stack.com/pages/download

インストーラはないのですが、重要な注意事項があります。

必ず、「アプリケーション」にappを移動してください。そうしないと、起動するものの、ファームウェアのリストが全然出てきません。地味にはまりました。。ちゃんと同梱のテキストファイルに書いてます。
【注意書き】

あと、やっぱりブロックされるのでセキュリティとプライバシーから解除する必要があります。

起動するとこんな感じです。
いろんなファームウェアやサンプルが並んでますね。
初期のエヴァ風のものは、「Core2FactoryTest」のようです。

とりあえず「UIFlow_Core2」をDownloadして、Burnします。
このとき最新は「v1.6.5.1-core2」でした。

なるほど。内部的にはesptoolが動いているんですね。

■M5Stack Core 2をWI-Fiに接続する

ファームウェアの書き込みが終わるとリセットされて、こんな感じで立ち上がります。

Setupをタップして、Config WI-Fi by WebのStartをします。

すると、こんな画面になります。

指定されたSSIDにPCやスマホを接続ます(パスワードはかかっていません)

次に「http://192.168.4.1」にアクセスします。
以下のような画面が見えるので、アクセスポイントを選択して、パスワードを入力したら「Configure」をクリックします。

URLにパスワードがダダ漏れorz

再起動してもちゃんとアクセスポイントの設定は残っています。

で、真ん中のFlowを押すとモードを聞かれるのでWI-FIを選びます。
※メニューの移動?が毎回リセットしないとだめっぽくてちょっと鬱陶しいかも。

Wi-Fiに接続中。

無事に繋がると、APIキーが表示されます。
ここまででM5Stack側の準備は完了です。

なお、m5stack社のサーバとは、mqttを使って通信しているようです。途中にFW等がある場合は、1883/tcpポート宛の通信を許可してあげてください。

■UIFlowを使う

https://flow.m5stack.com/にアクセスします。
Core 2はBetaでしか対応していないようなのでBetaを選択します。

設定画面が勝手に出てくる(でなければ右側メニューから)ので、API Keyには、M5Stack上に表示されているキーを入力し、DeviceはM5Stack Core 2っぽいのを選択します。

テストプログラムを適当に書きます。

ちゃんとPythonコードも見ることができます。

できたら、右上の▷をクリックして実行します。

いけた!

時計がめちゃくちゃずれてるっぽいので以下のようなプログラムを実行して時計をあわせておきました。

■おまけ:シリアルコンソール接続

UIFlowはMicroPythonが動くファームウェアですが、シリアル接続でかんたんなPythonコマンドを実行することもできます。

TeraTermなどでつながると思いますが、うちはmacなのでscreenコマンドを使います。
こんな感じ。

screen /dev/tty.SLAB_USBtoUART 115200

※スクリーンコマンドを抜けるには、Ctrl+A+Kのあとにy。

何回かエンターキーを押すとプロンプトになるので、適当に実行できます。

【バックナンバー】

ではでは。またの機会に。

M5Stack Core 2入門 – 1 – 開封&Arduino IDEでサンプルが動くまで

ども。こんばんは。

発売から少し経ってしまいましたが、ようやく在庫が復活していて買うことができました。

ESP32のチップが乗っていて、WiFi、Bluetoothに標準対応。タッチスクリーンや、マイク、スピーカも備えるIoTのプロトタイプ開発キットですね。
Arduinoというオープンソースなハードウェアとなっており、Arduinoのコードが利用できます。
また、MicroPythonも動きます。

ESP32が使われているものとしては、Makeblock社のCodey rockyとhalocodeを以前動かして遊びました。

【参考】
Codey rocky
halocode

M5Stack Core2 IoT開発キット

スイッチサイエンスで2020/11/02購入。¥5,225なり。

■開封

中身はとってもシンプルで本体と短いUSB Type-Cケーブル1本です。

本体裏はこんな感じ。

とりあえず電源を入れてみます。

デフォルトで、エヴァっぽいサンプルプログラム(スケッチ)がインストールされています。なかなか格好いい!

■PCとの接続準備

PCはmacbook air(macOS Catalina 10.15.7)です。

以下のページからドライバをダウンロードします・・・と言いたいところですが、どうもここにあるドライバは古くて、おいらのmacbook airではちゃんと認識できませんでした。
※「/dev/tty.SLAB_USBtoUART」が出てきません。

https://m5stack.com/pages/download

ので、とりあえず上記サイトのリンクからArduino IDEとm5Burnerをダウンロードしておきます。
※Arduino IDEはただのリンクで、外部サイトに飛びます。

ということで、silabsのページから最新ドライバをダウロードします。

https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers

適当にインストールします。

インストール後はmacOSの設定→セキュリティとプライバシーから実行許可する必要があります。

■Arduino IDEのインストールと準備

今回インストールしたのは、1.8.13です。

普通にインストールして起動します。

M5Stsack Core 2をUSBケーブルで接続し、[ツール]->[シリアルポート]を確認すると、ちゃんと認識されていますね。

続いて、ボードマネージャにESP32を追加します。

以下のURLを[Preferences…]の「追加のボードマネージャのURL」に入力します。

https://dl.espressif.com/dl/package_esp32_index.json

[ツール]->[ボードマネージャ]にESP32が出てくるので、インストールします。

サイトによっては、以下のドキュメントのコマンドを流す手順を入れているものもありましたが、よくわからなかったので今回はやっていませんが、とりあえず普通に使う分には大丈夫そう。

https://github.com/espressif/arduino-esp32/blob/master/docs/arduino-ide/mac.md

[スケッチ]->[ライブラリをインクルード]→[ライブラリの管理…]から、m5stack関連をインストールします。

おいらは「M5Core2」 と「M5Stack」をインストールしました。

■サンプルスケッチを動かす

[ツール]->[ボード]から[ESP32 Arduino]-[M5Stack-Core-ESP32]を選択します。

続いてサンプルスケッチを読み込みます。

[ファイル]->[スケッチ例]->[M5Stasck]->[Basic]-[HelloWorld]を選択して読み込みます。

なお、このままでは、M5Stack Core 2では動かないようです。
以下のようにスケッチを修正します。

・ヘッダファイルをCore2用に修正

#include <M5Core2.h>

// the setup routine runs once when M5Stack starts up
void setup(){

// Initialize the M5Stack object
M5.begin();

// LCD display
M5.Lcd.print(“Hello World!!!!!あああ”);
}

// the loop routine runs over and over again forever
void loop() {

}

できたら、✔(チェックマーク)の横の「→」をクリックしてM5Stackに書き込みます。ちょっと時間がかかります。

おおー!動いた!

なお、[スケッチ例]のM5Stackのものは、コードの修正が必要ですが、M5Core2のものは修正せずに動きます。いかはtouchのスケッチを動かしている様子です。

とりあえず、動作確認としてArduino IDEでサンプルスケッチを動かしました。

ただ、あんまりArduino IDEで開発するつもりはないし、Pythonで書きたいので、次回は、UIFlowを使ってプログラミングできるところをやりたいと思います。

ではでは。またの機会に。