現時点での情報です。最新情報はM5StickC非公式日本語リファレンスを確認してください。
概要
これまでArduino Coreの情報しか書いていませんでしたが、どんな環境で開発ができるかを調べてみました。
C/C++言語
ESP-IDF
ESP32の標準的な開発環境です。一番低レベルまで制御が可能ですが、細かいライブラリは準備されていませんので、M5StickCのAXP192などの制御ライブラリが整備されていません。
自分でライブラリから構築できる人向けですので、一般的にはおすすめしません。
Arduino Core for ESP32(Arduino IDE)
事実上の標準開発環境です。ArduinoにESP32のライブラリを追加します。一番ライブラリが充実していて、情報も多く開発が楽です。
エディタがArduino IDEと呼ばれており、文字列補間ができないので、すこし使いにくいです。
Arduino for Visual Studio Code
- https://code.visualstudio.com/
- https://marketplace.visualstudio.com/items?itemName=vsciot-vscode.vscode-arduino
裏側はArduino Coreのままで、エディタ部分だけVisual Studio Codeを利用しています。
Microsoftが作って公開しているプラグインのため、信頼性はあります。しかしながらArduino Coreを使っている以上、エディタが使いやすくなった以上の差はあまりありません。
PlatformIO
Arduino Coreとほぼ同じ環境ですが、エディタが自由に選べます。Arduino IDEではなく、Visual Studio Codeと組み合わせて動かすことが多いようです。
基本的にはArduino Coreと同じプログラムがコンパイルできますが、ライブラリ管理が違うので、画面から入れることができるライブラリの種類は若干異なります。
コンパイラなども自動的にダウンロードして、環境を整備してくれるので初回にかなり時間がかかりますが、かんたんに環境構築はできます。一方Arduino Coreとは違う環境になりますので、差分がでてくる可能性があります。
ライブラリの設定などはArduino IDEと共通になります。
ブロック+MicroPython
M5Stack UIFlow Cloud
M5StickCの販売元が提供している開発環境です。最近よくあるブロックを組み合わせてプログラミングが可能です。
ブロックで表現できないことはMicroPythonでも記述可能です。基本的にはWi-Fiに接続して、ブラウザ上からプログラムを更新するスタイルになります。
パソコンに接続する必要がないので、かんたんにプログラムの更新が可能ですが、大量の端末がある場合にはWi-Fiが混雑して利用しにくいかもしれません。
最初にUIFlow用のプログラムを端末に転送し、Wi-Fi設定をすることで環境構築が完了します。
M5Stack UIFlow Desktop
UIFlowをWi-Fiを利用せずに、USB接続で利用する場合の環境です。こちらも最初にUIFlow用のプログラムを端末に転送し、USBモードに変更することで環境構築が完了します。
Wi-Fiが無い環境はこちらをおすすめします。ただしDesktop版は安定したバージョンしか提供されませんので、Beta版などの新機能は利用できません。
プログラム転送も、USB接続のため非常に早いです。教室などで複数人に教育する場合にはDesktop版をおすすめします。
JavaScript
obniz
こちらもWi-Fiに接続して、ブラウザからプログラムを転送するタイプの開発環境です。非常にサンプルやライブラリが充実しており、開発しやすいのが特徴です。
サンプルプログラムなども、大量に公開されており、クリックだけで自分の端末で動かすことができるのが便利です。
ただし、有料ライセンスのため気軽に試すことができません。
その他の環境
あまり情報がないのでおすすめしにくい開発環境です。
Mongoose OS
無料で使えるJavaScript開発環境です。
Espruino
無料で使えるJavaScript開発環境です。
Zerynth
PythonとCが利用できる開発環境です。
MicroPython
- https://micropython.org/download#esp32
- https://docs.micropython.org/en/latest/esp32/tutorial/intro.html
MicroPythonオフィシャルの環境。M5Stick社の製品を使っているのであればUIFlowで十分な気がします。その他のESP32ボードでPythonを使う場合にはこちらが適しています。
まとめ
個人的には一番標準であるArduino IDEを使っています。C言語に抵抗があるのであればPythonか、JavaScriptあたりが候補ですが、なかなか難しいところです。
コメント