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版をインストールしてみた。
参考にしたのは、M5STACK ATOMS3製品ページから辿った。
インストール
- インストーラをダウンロードし、インストール。
- Open the Arduino IDE, select File->Preferences->Settings
- 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
- Select Tools->Board->Boards Manager...: M5Stackをインストール
- Select Tools->Board->M5Stack, and select the corresponding board (M5AtomS3).
- Select Sketch->Include Library->Libraries Management...
- Search for M5AtomS3 and install it.
スケッチの作成とアップロード
- AtomS3を接続し、ポートとボードを選択する
- スケッチを作成しコンパイル
コンパイル時に赤い字で
pragma message "No hardware SPI pins defined. All SPI access will default to bitbanged output"
なんて出てくる場合があるが、意味不明なウォーニングらしく、無視して良いらしい。
- AtomS3のリセットボタンをLEDが緑になるまで長押しし、アップロードモードにする(*)
- スケッチをアップロード
- アップロードが完了したらリセットボタンを(短く)押すと、プログラム実行モードになる()
()アップロードモードにしなくても、アップロードできる時もある。
HelloLCD.ino : AtomS3のLCDに文字を表示する
#include <M5AtomS3.h>
void setup() {
M5.begin();
M5.Lcd.println("Hello AtomS3 LCD!");
}
void loop() {}
参考
インストール
参考にしたのは、EspressifのArduino-ESPチームのインストール方法のページから
PlatformIO IDEを経て
PlatformIO IDE for VSCode
これだけ。実に簡単だ。
プロジェクトの作成とアップロード
- 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より
Library
ライブラリはどうするのだろう?
参考