Arduino IDE 環境と同じように PlatformIO IDE 環境でも setup()とloop()の中身を書いてすぐにコンパイルして実行できます。
| 機種名 | 環境名 | 備考 |
|---|---|---|
| M5Stack BASIC | env:m5stack-basic | 公式ライブラリを使用。 |
| M5Stack Fire | env:m5stack-fire | 公式ライブラリを使用。 |
| M5Stack M5GO | env:m5stack-m5go | 公式ライブラリを使用。 |
| M5Stack CORE2 | env:m5stack-core2 env:m5stack-core2-m5unified |
公式ライブラリを使用(ライブラリ廃止予定)。 M5Unifiedを使用。 |
| M5Stack CORES3 | env:m5stack-cores3 env:m5stack-cores3-m5unified |
公式ライブラリを使用。 M5Unified を使用。USB CDC On Boot が有効。 |
| M5StickC | env:m5stick-c | 公式ライブラリを使用。 |
| M5StickC Plus | env:m5stick-c-plus | 公式ライブラリを使用。 |
| M5StickC Plus2 | env:m5stick-c-plus2-m5unified | M5Unified を使用。 |
| M5ATOM Matrix | env:m5stack-atom-matrix env:m5stack-atom-matrix-m5unified |
公式ライブラリを使用。 M5Unified を使用。 |
| M5ATOM Lite | env:m5stack-atom-lite env:m5stack-atom-lite-m5unified |
公式ライブラリを使用。 M5Unified を使用。 |
| M5ATOM Echo | env:m5stack-atom-echo env:m5stack-atom-echo-m5unified |
公式ライブラリを使用。 M5Unified を使用。 |
| M5ATOM U | env:m5stack-atom-u env:m5stack-atom-u-m5unified |
公式ライブラリを使用。 M5Unified を使用。 |
| M5ATOMS3 | env:m5stack-atoms3 env:m5stack-atoms3-m5unified |
公式ライブラリを使用(M5Unifiedベース)。USB CDC On Boot が有効。 M5Unified を使用。USB CDC On Boot が有効。 |
| M5ATOMS3R | env:m5stack-atoms3r-m5unified | M5Unified を使用。USB CDC On Boot が有効。 |
| M5ATOM EchoS3R | env:m5stack-echo-atoms3r-m5unified | M5Unified を使用。USB CDC On Boot が有効。 |
| M5ATOMS3 Lite | env:m5stack-atoms3-lite env:m5stack-atoms3-lite-m5unified |
公式ライブラリを使用(M5Unifiedベース)。USB CDC On Boot が有効。 M5Unified を使用。USB CDC On Boot が有効。 |
| M5ATOMS3 U | env:m5stack-atoms3-u env:m5stack-atoms3-u-m5unified |
公式ライブラリを使用(M5Unifiedベース)。USB CDC On Boot が有効。 M5Unified を使用。USB CDC On Boot が有効。 |
| M5Stack CoreInk | env:m5stack-core-ink | 公式ライブラリを使用。 |
| M5Stack Paper | env:m5stack-paper | 公式ライブラリを使用。 |
| M5Stack PaperS3 | env:m5stack-papers3 | 公式ライブラリはなし。 M5Unified を使用。 |
| M5StampS3 | env:m5stack-stamps3 env:m5stack-stamps3-m5unified |
公式ライブラリはなし。 M5Unified を使用。USB CDC On Boot が有効。 |
| M5Capsule | env:m5stack-capsule-m5unified | M5Unified を使用。USB CDC On Boot が有効。 |
| M5Dial | env:m5stack-dial env:m5stack-dial-m5unified |
公式ライブラリを使用(M5Unifiedベース)。 M5Unifiedを使用。USB CDC On Boot が有効。 |
| M5Cardputer | env:m5stack-cardputer | 公式ライブラリを使用(M5Unifiedベース)。USB CDC On Boot が有効。 |
| M5DinMeter | env:m5stack-din-meter | 公式ライブラリを使用(M5Unifiedベース)。USB CDC On Boot が有効。 |
| M5NanoC6 | env:m5stack-nanoc6 | 公式ライブラリを使用。プラットフォームはpioarduinoを使用。 |
| M5Stack Tab5 | env:m5stack-tab5 | M5Unified を使用。プラットフォームはpioarduinoを使用。 |
| M5Stack BASIC w/LLM | env:m5stack-basic-m5unified-llm | M5Unified を使用。 |
| M5Stack Core2 w/LLM | env:m5stack-core2-m5unified-llm | M5Unified を使用。 |
| M5Stack CoreS3 w/LLM | env:m5stack-cores3-m5unified-llm | M5Unified を使用。 |
コードの整形は.vscode/settings.jsonで"C_Cpp.clang_format_style": "file"にしているため,.clang-formatで設定できます。ご自身の好きな設定に変更してください。
platformio.iniの[platformio]セクションにあるupload_portとmonitor_portのコメントを外し,upload_portに設定するポートを実機が接続しているポートに変更します。
upload_port = COM16
monitor_port = ${env.upload_port}※PlatformIO IDE v3.0.0より,ステータスバーからポートの切り替えができるようになりました。
「Switch PlatformIO Project Environment」(VSCode のステータスバーにある)で機種に合った環境名を設定します。
platformio.iniの[platformio]セクションでdefault_envsを明示的に指定することでも環境を設定できます(既に書いてあるので,いずれかのコメントを外す)。以下の例ではm5stack-basicを指定しています。
[platformio]
default_envs = m5stack-basic
; default-envs = m5stack-fire
; default-envs = m5stack-m5go
; default_envs = m5stack-core2
; default_envs = m5stack-cores3
; default_envs = m5stack-cores3-m5unified
; default_envs = m5stick-c
; default_envs = m5stick-c-plus
; default_envs = m5stick-c-plus2-m5unified
; default_envs = m5stack-atom-matrix
; default_envs = m5stack-atom-lite
; default_envs = m5stack-atom-echo
; default_envs = m5stack-atom-u
; default_envs = m5stack-atom-matrix-m5unified
; default_envs = m5stack-atom-lite-m5unified
; default_envs = m5stack-atom-echo-m5unified
; default_envs = m5stack-atom-u-m5unified
; default_envs = m5stack-atoms3
; default_envs = m5stack-atoms3r-m5unified
; default_envs = m5stack-atom-echos3r-m5unified
; default_envs = m5stack-atoms3-lite
; default_envs = m5stack-atoms3-u
; default_envs = m5stack-atoms3-m5unified
; default_envs = m5stack-atoms3-lite-m5unified
; default_envs = m5stack-atoms3-u-m5unified
; default_envs = m5stack-coreink
; default_envs = m5stack-paper
; default_envs = m5stack-papers3
; default_envs = m5stack-stamps3
; default_envs = m5stack-stamps3-m5unified
; default_envs = m5stack-capsule-m5unified
; default_envs = m5stack-dial
; default_envs = m5stack-dial-m5unified
; default_envs = m5stack-cardputer
; default_envs = m5stack-din-meter
; default_envs = m5stack-nanoc6
; default_envs = m5stack-tab5
; default_envs = m5stack-basic-m5unified-llm
; default_envs = m5stack-core2-m5unified-llm
; default_envs = m5stack-cores3-m5unified-llm外部ライブラリを使用する場合は,[env]セクションにあるlib_depsに追加します。
lib_deps =
fastled/FastLEDmain.cppのsetup(),loop()にコードを書きます。必要なヘッダファイルはmain.hppで環境名に合わせて実機に合ったヘッダファイルをインクルードするようにしています。
各機種でM5.begin()の引数がまちまちでわかりにくく,CoreS3.begin()のように機種固有の名前が付いている場合もあるので,M5_BEGINとM5_UPDATEというマクロで差異を吸収しています。
また,機種によってはM5のインスタンスに機種固有の名前(M5Stack CoreS3 の公式ライブラリの場合はM5ではなくCoreS3)がついている場合があるので,どの場合でも同じM5DEVでアクセスできるように設定しています。
共通の書き方でログの出力をするために,M5DEV_LOGE(),M5DEV_LOGW(),M5DEV_LOGI(),M5DEV_LOGD(),M5DEV_LOGV()を定義しました。
それぞれの定義内容に関してはmain.hppを参照してください。
注意:M5Unified でSD.hやSPIFFS.hを使用する場合は,#include "main.hpp"より前に入れてください。
// clang-format off
#include <SPIFFS.h>
#include "main.hpp"
// clang-format onPlatformIO: Upload(VSCode のステータスバーにある → ボタン)を実行します。