ちょっと前に買うだけ買って開封すらしていなかったESP32-WROOM-32Dをようやく開封しました
Amazonで1,000円ちょっとで買えて無線機能(Wifi/Bluetooth)を搭載しています
また、Arduinoとして使うことが出来るらしく、世の中に溢れかえっているArduinoのソフトウェア資産を使うことが出来ます
今回はサクッとPlatformIOで環境を構築してせっかくなのでサンプルコードで無線機能を動作させてみようと思います
PlatformIO(VSCode)のインストール
VSCodeはWIndowsが無償で提供している高機能コードエディタでPlatformIOは色々なマイコンのビルド・デバッグ環境を簡単に構築できる拡張機能です
インストール方法はSTM32向けの開発環境構築の記事を参照ください

USBシリアルドライバのインストール
ESP32-WROOM-32DにはSilicon LabsのCP2102というUSBシリアル変換ICが搭載されているようです
FTDIのドライバはプリインストールされている場合が多いと思いますが、私のPCにSilicon Labsのドライバは入っていなかったのでメーカWebページよりドライバをインストールします
インストールが完了したらシリアルポートとして表示されるようになります

サンプルプログラムのインポート
PlatformIOのホーム画面からサンプルプログラムをインポートします
今回は無線機能を試してみたかったので「arduino-wifiscan」を選択しました
[PlatformIOのホーム画面]→[Project Examples]→[Espressif 32]の中にある[arduino-wifiscan]を選択してImportをクリックします初回は結構ダウンロードに時間がかかるので慌てずに完了するのを待ちます

サンプルプログラムのビルド、アップロード
インポートが完了したらとりあえずplatformio.iniを開きます
サンプルプログラムなのでボード環境が複数定義されているので必要な環境以外はコメントアウトしておきます
今回の場合だと、[env:esp32dev]以外の環境は全てコメントアウトします
; PlatformIO Project Configuration File
;
; Build options: build flags, source filter, extra scripting
; Upload options: custom port, speed and extra flags
; Library options: dependencies, extra library storages
;
; Please visit documentation for the other options and examples
; https://docs.platformio.org/page/projectconf.html
[env:esp32dev]
platform = espressif32
framework = arduino
board = esp32dev
monitor_speed = 115200
; [env:esp-wrover-kit]
; platform = espressif32
; framework = arduino
; board = esp-wrover-kit
; monitor_speed = 115200
; [env:espea32]
; platform = espressif32
; framework = arduino
; board = espea32
; monitor_speed = 115200
; [env:esp320]
; platform = espressif32
; framework = arduino
; board = esp320
; monitor_speed = 115200
ここまで来たらビルドを実行します
何の問題もなくビルドが完了しました

次にボードを忘れずPCに接続してからUploadボタンをクリックします

ボードがシリアルポートとして認識出来ていれば勝手にポートを設定してくれると思いますが、他のデバイスが存在するなどでうまく認識しない場合はplatformio.iniに「upload_port」という設定を追記して使用するポート名を記述すればよいらしいです
初回アップロード時はツールのインストール作業が実行されるので少しだけ時間がかかります
本来であれば使用するマイコンに合わせてツール類を自分でインストールする必要がありますが、PlatformIOは勝手にインストールしてくれるので本当に楽ちんです
サンプルプログラムの動作確認
アップロードが完了したらマイコンが動作を開始します
今回のサンプルプログラムはWifi Scanということで周囲にあるWifiのSSIDをシリアル通信で表示するというもののようです
早速tera termを開いて確認します
ポートはUploadに使用したポートと同じでボーレートはplatformio.iniに「monitor_speed」で定義されている数値となります(デフォルトでは115200bps)
自宅のWifiを含む周囲のWifiが表示出来ていますのでとりあえずは正常に動いているようです(時刻は適当ですが・・・)

まとめ:ESP32-WROOM-32DのPlatformIO開発環境構築
本当にあっけないほど簡単に環境構築およびサンプルプログラムの動作確認が出来ました
とはいってもデバッガを持っていないのでデバッグ機能は未確認ですが・・・
デバッガはMini-Module FT2232HというJTAGインターフェイスを使うのが定番みたいです
とはいえ開封ととりあえずの動作確認が出来たので良かったです
無線搭載でArduinoのライブラリが使えて安価で入手しやすいという死角のないマイコンだと思います
マニュアルにモータ制御PWM的な記載があったので今度時間あったら試してみようと思います
(あとはもっと無線機能を色々と活用したいけど使いこなせる自信が・・・)