M5Stack、ESP32の開発を行う環境はいくつかあります。
組み込みプログラムの経験がある方であれば、C/C++で開発が可能なArduinoを利用されている方が多いのではないかと思います。
Arduinoは、初心者には使いやすい開発環境です。しかし、M5StackやESP32の開発を進めてくると、そのコンパイルの遅さが気になってきます。また、ライブラリがすべてのプロジェクトで共通に参照される仕組みとなっているため、プロジェクト間でライブラリのバージョンの互換性による問題が発生することがあります。
C/C++でM5Stack、ESP32の開発を行うのであれば、PlatformIO がおすすめです。
PlatformIOは、Make機能を利用しており、一度コンパイルしたソースなどは再コンパイルされないため、2回目以降のコンパイルが大幅に高速化されます。また、ライブラリもプロジェクトごとに設定できるため、ライブラリの管理が容易になります。
Arduino IDEとPlatformIOの比較
ESP32やM5Stackの開発環境として、Arduino IDEとPlatformIOの2つがよく使われています。それぞれの特徴と利点について説明します。
Arduino IDE
特徴
以下、Arduino IDEの特徴です。
- シンプルで使いやすい
- Arduino IDEは初心者向けに設計されており、シンプルなインターフェースで簡単にプログラムを書くことができる。
- 豊富なライブラリ
- 多くのライブラリが提供されており、センサーやディスプレイなどのデバイスを簡単に利用できる。
- コミュニティサポート
- 大規模なコミュニティがあり、問題が発生した際には多くのリソースやフォーラムで解決策を見つけることができる。
- 新しいデバイスへの対応が比較的早い。
- ライブラリが、Arduino IDEで共通となり、各プロジェクトでのライブラリィの依存関係の解決が煩雑になることがある。
PlatformIOの特徴
特徴
以下、PlatformIOの特徴です。
- 強力な拡張機能
- PlatformIOは高度な開発機能を提供し、複数のプラットフォームをサポートしている。VS Codeとの統合により、コード補完やデバッグ機能が強化されている。
- 依存管理の自動化
- PlatformIOは自動でライブラリの依存関係を管理し、プロジェクトごとに異なるライブラリバージョンを簡単に設定できる。
- 柔軟なプロジェクト設定
- 複数のプロジェクトやボードを一つの環境で管理できるため、複雑な開発が容易に行える。
- ビルド速度
- 高速なビルド処理により、開発効率を効率良く行える。
- マルチプラットフォーム
- Windows、Mac、Linuxなど、様々なOSに対応しています。
利点
- プロフェッショナルな開発環境
- プロジェクトが大規模になる場合や、複数のプラットフォームを扱う場合に最適。
- 強力なデバッグ機能
- PlatformIOは高度なデバッグ機能を提供し、コードの問題点を迅速に特定できる。
- 広範なサポート
- 多くのボードやフレームワークをサポートしており、Arduino IDEでは扱えないデバイスや機能を利用できる。
比較のまとめ
Arduino IDEは初心者向けで、簡単なプロジェクトに最適です。一方で、PlatformIOはより高度な機能を提供し、プロフェッショナルな開発環境を求める場合におすすめです。特にESP32やM5Stackのような多機能なデバイスを使用する場合、PlatformIOの方が柔軟で効率的な開発をサポートします。
PlatformIOのインストール
PlatformIOのインストール、設定につきましては、以下の記事をご覧ください。
以下のHPも参考にしてください。
Windowsへのインストール
PlatformIOのWindowsへのインストール方法は、以下の手順で行います。
- VSCode(Visual Studio Code)をインストール
- VSCodeの「拡張機能」から「platformio」をインストール
詳細は、以下のHPを参照ください。
デバッグ(ESP32)
M5Stackで使用するESP32は、JTAGを使用してデバッグが可能です。 しかし、ESP32のピン数が少なく、LCDなどのデバイスを接続している場合、ピン数が不足してJTAGのピンを別の目的に使用せざるを得ない場合がありますので注意してください。
以下は、ESP32のJTAG専用ピンです。(ESP32は色々な製品があり、一例です。)
ESP32 Pin | JTAG Signal |
---|---|
MTDO / GPIO15 | TDO |
MTDI / GPIO12 | TDI |
MTCK / GPIO13 | TCK |
MTMS / GPIO14 | TMS |
Adafruit FT232H搭載 変換基板が、デバッグ用に使用できるようです。
PlatformIOの設定
PlatformIOの設定は、platformio.iniファイルで行います。基本的には、プロジェクトの作成時、ライブラリのインストール時に、自動的に設定が書き込まれます。
以下の記事も参考にしてください。
Arduinoで、コンパイル時間を短縮するには
Arduinoのデフォルトの設定では、毎回テンポラリのフォルダを作成してフルコンパイルするため、コンパイルに時間がかかってしまいます。それを回避する方法が以下のHPで公開されています。
参考URL
以下、参考URL