Slide 1

Slide 1 text

さいとてつや @saitotetsuya PlatformIO IDE用M5Stack定型コード環境の紹介 Introduction to M5Stack Boilerplate Code Environment for PlatformIO IDE 20240923-01版 2024年9月23日(祝) M5 Japan Tour 2024 Autumn 東京

Slide 2

Slide 2 text

PlatformIO IDEとは? 2024年9月23日(祝) M5 Japan Tour 2024 Autumn 東京 • マイクロソフト社のVisual Studio Code上で動く組C/C++用統合開発環境 • Arduino IDEとともにM5Stackの プログラム開発でよく利用されている • 私が気に入っているところ • 使用するライブラリの管理が楽 →プロジェクト毎の管理 • コンパイルが速い • Visual Studio Code上で動く →Cursor(The AI Code Editor) 2

Slide 3

Slide 3 text

3 M5Stackのプログラム開発で困ること 2024年9月23日(祝) M5 Japan Tour 2024 Autumn 東京 • そもそも環境構築でつまずく →特にPlatformIO IDEで多い印象 • M5Stack沼の住人は初物を買いがち →動作確認のため専用ライブラリのexamplesを動かしたい • 専用ライブラリはAPIがまちまち • M5Unifiedで機種間の相違点はほぼ吸収されている 例:M5.begin()の引数がまちまちな問題の解決 • 一方でM5Unifiedベースの専用ライブラリが出現 例:M5Dial.begin([m5::M5Unified::config_t,] bool, bool) • 特定の機種にしか存在しないハードは専用ライブラリを使うしかない

Slide 4

Slide 4 text

出典: PlatformIO IDE用M5Stack定型コード環境 2024年9月23日(祝) M5 Japan Tour 2024 Autumn 東京 • PlatformIO IDEでもArduino IDEのように 楽したい • setup()・loop()を埋めて機種ごとに定義した 環境を選択するだけでOK • 現在22機種でビルドが可能 →platformio.ini参照 • 機種間の差異の吸収 • ARDUINO_M5STACK_* • M5_BEGIN(), M5_UPDATE() • M5DEV_LOG*() →include/main.hpp参照 https://github.com/3110/m5stack-platformio-boilerplate-code/ 4 差異はすべてここに 書かれている

Slide 5

Slide 5 text

一般的なPlatformIO IDEでの開発手順 2024年9月23日(祝) M5 Japan Tour 2024 Autumn 東京 初期設定 ① Visual Studio Codeをインストール ② 拡張機能からPlatformIO IDEをインストール プロジェクトの作成 ① PIO HomeからNew Projectを押してProject Wizardダイアログを表示 ② 実機に合わせてボードを選択してプロジェクトを作成 ③ PIO HomeのLibrariesから対応する公式ライブラリをインストール ④ src/main.cppにコードを書く(examplesからコピペでも良い) →面倒くさい 5

Slide 6

Slide 6 text

M5Stack定型コード環境での開発手順 2024年9月23日(祝) M5 Japan Tour 2024 Autumn 東京 初期設定 ① Visual Studio Codeをインストール ② Source Controlアイコンを押してClone Repositoryを選択し, https://github.com/3110/m5stack-platformio-boilerplate-code/ を クローンする ③ platformio.iniをクリックすると自動的に拡張機能がインストールされる プロジェクトの作成 ① 実機に合わせて環境を選択する ② src/main.cppにコードを書く(examplesからコピペでも良い) 6 GitHubから Use This Templateで クローンしたものを 開いても良い

Slide 7

Slide 7 text

7 MFT 2024のUnit Puzzle Demoの場合 2024年9月23日(祝) M5 Japan Tour 2024 Autumn 東京 • unit_puzzle.hppをincludeに置く UNIT_PUZZLE_DATA_PIN(2)の確認 • puzzle_demo.cppをmain.cppにコピペ • M5.begin()→M5_BEGIN() • M5.update()→M5_UPDATE() • M5.→M5DEV. • env:m5stack-atoms3を選択 →M5Unifiedベースの専用ライブラリ • PlatformIO:uploadボタンを押して ファームウェアを実機にダウンロード 便利 ATOMS3.* ※FastLED依存