M5Stack Basicが6,000円を超え、M5StickC Plusが元々のM5Stack Basicの値段となっている異常事態の中で、M5Stamp Pico MateはリーズナブルなままでESP32を手軽に使うポテンシャルを持っていると思います。
ただ、プログラムの書き込みに必要なUSBシリアル変換モジュールを本体ボードに積んでいないため、このような製品が一緒に売られています。
(CH9102はMacだとドライバをダウンロードしてインストールする必要があるため面倒くさいです。)
しかし、M5Stamp Pico Mateのプログラムを書き込めるのは「CP2104/CH9102搭載 ESPダウンローダキット」だけではなく、一般に売られているUSBシリアル変換モジュールでも書き込めるんです。
ここでは、私が既に持っていた秋月電子通商で売られている「FT234X超小型USBシリアル変換モジュール」で、M5Stamp Pico Mateにプログラムを書き込む方法を具体的に紹介したいと思います。
使ったもの
ハードウェア
・M5Stamp Pico Mate - 秋月電子通商 ¥1,150
・FT234X 超小型USBシリアル変換モジュール - 秋月電子通商 ¥600
・ミニブレッドボード BB-601(白) - 秋月電子通商 ¥130
・ブレッドボード・ジャンパーワイヤ 14種類×5本 - 秋月電子通商 ¥300
・ジャンパーワイヤ オスーオス 2本 - 手持ち
ソフトウェア
・Arduino core for the ESP32 (v1.0.6 or v2.0.3)
・macOS Monterey 12.4
ハードウェアの準備
ヘッダーピンのハンダ付け
M5Stamp Pico MateとFT234X超小型USBシリアル変換モジュールにヘッダーピンをハンダ付けします。
回路の作成
ブレッドボードにジャンパワイヤを差し込んで回路を作ります。
部品の差し込み
M5Stamp Pico MateとFT234X超小型USBシリアル変換モジュールをブレッドボードに差し込みます。
回路の説明
この回路は非常にシンプルで、FT234X超小型USBシリアル変換モジュールの4つのピンを対応するM5Stamp Pico Mateのピンに繋いでいるだけです。
FT234X M5Stamp
+5V ---> 5V
GND ---> GND
TxD ---> Rx0(3)
RxD ---> Tx0(1)
ソフトウェアの準備
次のサイトから自分のPCに適したものをダウンロードしてインストールします。
Arduino core for the ESP32の追加
Arduino IDEの環境設定画面を出し、追加のボードマネージャーのURLに次のいづれかを入力します。
v1.0.6の場合 : https://dl.espressif.com/dl/package_esp32_index.json
V2.0.3の場合: https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json
次にボードマネージャーを表示して、入力欄に「esp32」と入れてArduino core for the ESP32をインストールします。
ボードの選択
Arduino IDEのツールメニューから[ボード:xxx]-[ESP32 Arduino]-[ESP32 Pico Kit]を選びます。(v2.0.3の場合はESP32-PICO-D4)
macOSが12.3以上の場合
私の次の記事を見て、追加の作業を行なってください。
プログラムの書き込み
USBケーブルを接続する
PCとFT234X超小型USBシリアル変換モジュールをUSBケーブルで繋ぎます。
接続したポートを選択する
・Windowsの場合
Arduino IDEのツールメニューから[シリアルポート:xxx]-[COMx]を選びます。
COM番号はデバイスマネージャーの「ポート(COMとLPT)」で「USB Serial Port(COMx)」と表示されている番号です。
・macOSの場合
Arduino IDEのツールメニューから[シリアルポート:xxx]-[cu.usbserial-xxx]を選びます。
ESP32をダウンロードモードにする
Arduino IDEのツールメニューから[シリアルモニタ]を選んで、シリアルモニタを表示しておきます。(通信速度は115200bpsです)
次の順番でジャンパーワイヤを抜き差しします。
- M5Stamp Pico MateのENとGNDを繋ぐ(白線)
- M5Stamp Pico MateのGPIO0とGNDを繋ぐ(黄線)
- M5Stamp Pico MateのENとGNDを繋いだ線を抜く(白線)
- M5Stamp Pico MateのGPIO0とGNDを繋いだ線を抜く(黄線)
(本当は3の時にダウンロードモードになっていますが、黄線の役割が終わっているために抜いておきます。)
これで、ESP32がダウンロードモードになりプログラムを書き込むことができるようになります。
ESP32がダウンロードモードになると、シリアルモニタには次のように表示されます。
プログラムを書き込む
Arduino IDEのスケッチメニューから[マイコンボードに書き込む]を選んで、プログラムを書き込みます。
ESP32をリセットする
最後に、M5Stamp Pico MateのENとGNDを繋いで、繋いだ線を抜くとESP32にリセットがかかり、書き込んだプログラムが動きます。
おまけ
開発が終わって実運用する段階になれば、USBシリアル変換モジュールは電源を供給するだけの役割となるため、USBコネクタと配線だけの部品で代替えすることができます。
秋月電子通商から「電源用マイクロUSBコネクタDIP化キット(¥130)」や「電源供給用USB Type-CコネクタDIP化キット(¥130)」などが販売されています。
マイクロUSBコネクタDIP化キット(左)とUSB Type-CコネクタDIP化キット(右)に置き換えた例。