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 | 公式ライブラリを使用(不具合があるためM5Unifiedベースではないv0.1.8に固定)。 |
M5Stack CORES3 | env:m5stack-cores3 env:m5stack-cores3-m5unified |
公式ライブラリを使用。 M5Unified を使用。USB CDC On Boot が有効。 |
M5StickC | env:m5stack-c | 公式ライブラリを使用。 |
M5StickC Plus | env:m5stack-c-plus | 公式ライブラリを使用。 |
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 が有効。 |
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 | 公式ライブラリを使用。 |
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 | 公式ライブラリを使用。 |
コードの整形は.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 = 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-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-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
外部ライブラリを使用する場合は,[env]
セクションにあるlib_deps
に追加します。
lib_deps =
fastled/FastLED
main.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 on
PlatformIO: Upload(VSCode のステータスバーにある → ボタン)を実行します。