M5: Visual Studio Code + PlatformIO
Visual Studio Code + PlatformIO の基本的な使い方を簡単に整理してみました。
PlaformIO の画面構成
サイドバー
サイドバーの PlatformIO アイコンをクリックすると Project Tasks パネルにタスクの一覧、Quick Access パネルに PlatformIO のグローバルなメニューが表示されます。ここからプロジェクトの作成や管理、ファームウェアのビルドやアップロードなどをおこなうことができます。
ステータスバー
ステータスバーには選択中のプロジェクトやシリアルポートなどの情報が表示され、よく使う処理をアイコンから実行することができます。
ホーム画面
サイドバーの Quick Access > PIO Home > Open またはステータスバーの Home アイコンをクリックすると、PlatformIO のホーム画面を表示します。
ここからプロジェクトの作成など、プロジェクトに対する操作をおこないます。
プロジェクト
プロジェクトの作成
ホーム画面の「New Project」から適当なディレクトリにプロジェクトを作成します。
- Name: プロジェクトの名前を指定
- Board:
M5Stack Core ESP32
など対象の機種を指定- M5Paper 用は専用に用意されていないため、代わりに
M5Stack FIRE
を指定する
- M5Paper 用は専用に用意されていないため、代わりに
- Framework:
Arduino
これによりプロジェクトの雛形となるディレクトリ構成と、指定した内容が設定された platform.ini というファイルが作成されます。PlatformIO では、この設定ファイルの記述を元に必要なライブラリのダウンロードやビルド処理がおこなわれます。
参考) "platformio.ini" (Project Configuration File) - PlatformIO
ライブラリの追加
ホーム画面または Quick Access の Libraries > Registry から必要なライブラリを検索し、インストールすることができます。追加したライブラリは platformio.ini の lib_deps 設定に記述されます。
M5 デバイスを制御するためのライブラリは機種ごとに分かれており、適切なライブラリを選択して使用する必要があります。以下はその一部です。使用できる機能だけでなく、インクルードするヘッダファイルや使い方も微妙に異なっていたりするので注意が必要です。
例
- M5Stack Core : m5stack/M5Stack
- M5Stack Core2 : m5stack/M5Core2
- M5StickC : m5stack/M5StickC
- M5StickC-Plus : m5stack/M5StickCPlus
- M5Paper : m5stack/M5EPD
- ATOM : m5stack/M5Atom
- ATOM-S3 : m5stack/M5AtomS3
プロジェクトのファイル構成
設定ファイル
- .gitignore : バージョン管理対象外とするファイルの指定
- .vscode/extensions.json : VSCode 拡張機能
- .vscode/c_cpp_properties.json : VSCode 用設定ファイル (バージョン管理対象外)
- .vscode/launch.json : VSCode 用設定ファイル (バージョン管理対象外)
- platformio.ini : PlatformIO 用設定ファイル
ディレクトリ
- include/ : ヘッダファイルを格納する。
- lib/ : プロジェクト固有のライブラリ。この中のソースは実行ファイルに静的リンクされる。
- src/ : ソースファイルを格納する。
シリアルポートの速度設定
plaformio.ini に以下の設定を追記します。
monitor_speed = 115200
基本的な操作
プロジェクトの選択
複数のプロジェクトを同時に開いていたりプロジェクトに複数の環境が設定されている場合、作業対象が選択されていることを確認しておきます。
ターミナルを開く
サイドバーの Project Tasks > Default > Miscellaneous > New Terminal またはステータスバーの New Terminal アイコンをクリックすると、ターミナルを開きます。ここから、コマンドを実行してビルドやインストールなどのタスクを実行することもできます。
例)
- Build)
pio run --environment <env>
- Upload)
pio run --environment <env> --target upload
デバイスとの接続
デバイスを接続したシリアルデバイスを指定できます。auto でうまくいかない場合は確認してください。
ファームウェアのビルド
サイドバーの Project Tasks > (環境) > General > Build またはステータスバーの Build アイコンをクリックすると、ソースコードからファームウェアを作成します。
ファームウェアの書き込み
サイドバーの Project Tasks > (環境) > General > Upload またはステータスバーの Upload アイコンをクリックすると、ファームウェアをデバイスに書き込みます。
シリアルモニター
サイドバーの Project Tasks > (環境) > General > Upload and Monitor またはステータスバーの Serial Monitor アイコンをクリックすると、シリアルポートに出力したログを出力して確認することができます。
ファームウェアの消去
ターミナルから以下のコマンドを実行すると、デバイスのファームウェアを消去することができます。
pio run --environment <env> --target erase