ESP32の開発環境:Arduino IDE vs PlatformIO vs ESP-IDF

ESP32の開発環境にはArduino IDE, PlatformIO, ESP-IDFの3種類があるが(更に、PlatformIOとESP-IDFにはIDE版とCLI版がある)、 現時点(2024年2月)のワタシ的には手間やライブラリの豊富さからArduino IDEで行こうと思う。

PlatformIOとESP-IDFはコンソール版とVSCodeのExtension版があり、エディタをvim(風)にして編集効率を上げることができるのだが、 マイコンの世界ではArduinoの影響が強く、Arduino IDE用のライブラリや情報が最も多い。

今回、M5StackのAtomS3を購入したので、その時に開発環境を準備したときの備忘録。 なので、AtomS3限定の情報もあるが、ESP32デバイス全般にも参考になるかもしれない。 ちなみに、PlatformIOとESP-IDFはVSCodeのExtension版をインストールしてみた。

I. Arduino IDE

参考にしたのは、M5STACK ATOMS3製品ページから辿った。

インストール

  1. インストーラをダウンロードし、インストール。
  2. Open the Arduino IDE, select File->Preferences->Settings
  3. Copy the M5Stack board management URL below to the Additional Development Board Manager:
https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json
  1. Select Tools->Board->Boards Manager...: M5Stackをインストール
  2. Select Tools->Board->M5Stack, and select the corresponding board (M5AtomS3).
  3. Select Sketch->Include Library->Libraries Management...
  4. Search for M5AtomS3 and install it.

スケッチの作成とアップロード

  1. AtomS3を接続し、ポートとボードを選択する
  2. スケッチを作成しコンパイル
    コンパイル時に赤い字で
pragma message "No hardware SPI pins defined.  All SPI access will default to bitbanged output"

なんて出てくる場合があるが、意味不明なウォーニングらしく、無視して良いらしい。

  1. AtomS3のリセットボタンをLEDが緑になるまで長押しし、アップロードモードにする(*)
  2. スケッチをアップロード
  3. アップロードが完了したらリセットボタンを(短く)押すと、プログラム実行モードになる() ()アップロードモードにしなくても、アップロードできる時もある。

HelloLCD.ino : AtomS3のLCDに文字を表示する

#include <M5AtomS3.h>
void setup() {
  M5.begin();
  M5.Lcd.println("Hello AtomS3 LCD!");
}
void loop() {}

参考

II. PlatformIO IDE for VSCode

インストール

参考にしたのは、EspressifのArduino-ESPチームのインストール方法のページから PlatformIO IDEを経て PlatformIO IDE for VSCode

  • VSCodeにてPlatformIO IDE Extensionをインストール

これだけ。実に簡単だ。

プロジェクトの作成とアップロード

  • VSCodeのサイドバーでPlatformIO IDEボタンをクリック
  • PlatformIO HomeにてCreate New Project - + New Project
  • Project WizardにてBoards: M5Stack AtomS3 / Framework: arduino
  • (プログラム作成)
  • PlatformIO Toolbarのコンパイルボタンでコンパイル
  • PlatformIO Toolbarのアップロードボタンでアップロード

Library/Package

PlatformIO Homeのサイドバーの"Libraries"にて、検索窓に入れたいライブラリ名を入力して検索し、インストールする。

しかし、プログラム毎にライブラリをインストールするので、PCの保存域をバカ食いするのは何とかならんもんか。

参考

III. ESP-IDF

Espressifの公式開発フレームワーク

インストール

プロジェクトの作成とアップロード

参考: "View"-"Command Palette"-"ESP-IDF: welcome"でESP-IDF Basic useより

  • サンプルプログラムは"View"-"Command Palette"-"ESP-IDF: Show Examples Projects"
  • 新規プロジェクト作成は"View"-"Command Palette"-"ESP-IDF: Create ESP-IDF Project"
  • "ESP-IDF: Set Espressif Device Target"でターゲットデバイスを選択
  • "ESP-IDF: Select Port to Use (COM, tty, usbserial)"で接続ポートを指定
  • "ESP-IDF: Build your Project"でビルド
  • "ESP-IDF: Flash Device"でアップロード

  • ESP-IDF: SDK Configuration Editor

  • ESP-IDF: Size Analysis of the Binaries

Library

ライブラリはどうするのだろう?

参考