
ESP32-C3と互換性が高く、若干安価なESP8684(ESP32-C2)を購入しました。 …が、PlatformIOのArduinoFrameworkが対応しておらず。 この記事ではPlatformIOの環境を活かしつつESP8684の開発環境を準備する手順を説明します。 また、ESP8684ほかESP32シリーズいずれにも対応する書き込み器を作成しました。 こちらについては「ESP8684開発ボード兼ESP32汎用書き込み器」を参照してください。
PlatformIOのESP32のArduinoFrameworkは、現状、ESP8684(ESP32-C2)やESP32-H,Pなど新しめのシリーズに対応していません。 これらのマイコンを使うには次の選択肢があります。この記事では3番について説明します。
PlatformIOとpioarduino、それぞれのplatform-espressif32は共存できません。そのためプロジェクトごとに使い分けることはできません。 3番の場合、既存の(PlatformIOの)platform-espressif32がpioarduinoのplatform-espressif32に置き換わり、 実質的にpioarduinoを導入したことになります。
PlatformIOでpioarduinoのplatform-espressif32を利用する手順は、
platformio.iniを次のように書き換えます。platformとboardの項です。[サンプル(platformio.ini)]
platformの項は'https://github.com/pioarduino/~'となっていることに注意してください。
[env:esp8684]
platform = https://github.com/pioarduino/platform-espressif32/releases/download/stable/platform-espressif32.zip
board = esp32-c2-devkitm-1
framework = arduino
monitor_speed = 115200
stable版を指定することをお勧めしますが、
development版
を指定することもできます。この場合、別途Gitをインストールしておく必要があります(https://gitforwindows.org)。
pioarduinoはライブラリの整合性を厳密にチェックするようです。 しかし自身の設定に誤りがあるのか、もともと存在しないフォルダに対して「~が見つからない」と警告を出してきます。 ※環境によるかもしれない。
"~/platformio/packages/framework-arduinoespressif32-libs/esp32c2/include/esp_system/port/soc" が見つかりません。
無視して構いませんが、気になるので警告を消します。platformio.iniに下記を記述します。
Windowsの場合、パス区切りはバックスラッシュ'\'とすることに注意してください。
また、ライブラリをデフォルトのインストール先から変更して環境変数'PLATFORMIO_PACKAGES_DIR'
を設定しているのであれば、別の書き方もできます。
build_unflags = -I"C:\Users\<ユーザー名>\.platformio\packages\framework-arduinoespressif32-libs\esp32c2\include\esp_system\port\soc"
または、
build_unflags = -I"${sysenv.PLATFORMIO_PACKAGES_DIR}\framework-arduinoespressif32-libs\esp32c2\include\esp_system\port\soc"
ESP8684へプログラムを書き込むにはUSB-シリアル変換器を通してPCとESP8684を接続します。 GPIO-9をGNDへ接続した状態でENをLow→HighとするとESP8684はダウンロードブートモードに入ります(書き込み待機状態)。 この動作はESP32シリーズ共通です。 ブートストラップピンがどれなのかについては各マイコンのデータシートを確認してください(ESP8684はGPIO-8,9)。
| USB-シリアル変換器 | ESP8684 |
|---|---|
| 3.3V | 3V3 |
| TXD | RXD |
| RXD | TXD |
| GND | GND |
| GPIO-8には何も接続しない(内部でプルアップされている) | |
| GPIO-9をGNDへ接続する |
手持ちのモジュールを利用し、プログラムを書き込み、実行している様子です。
[サンプル(main.cpp)]
PlatformIOでpioarduinoのplatform-espressif32(ArduinoFrameworkライブラリ)を利用し、 ESP8684の開発環境を準備することができました。 また、冒頭にあるように別の記事となりますが、ESP8684開発ボード/書き込み器を作成しました。