「環境が整ったなら、次は動かせ。話はそれからだ」
AIからの次なる指令は、マイコン学習の登竜門「Lチカ(LEDを点滅させること)」。 MacとESP32を接続し、あとはプログラムを流し込むだけ……と思っていた私の前に、冷酷なエラーメッセージが立ちはだかる。
今回は、書き込みトラブルの解決劇から、ブレッドボード上での回路作成までを報告する。
1. 接続、そして絶望のエラー
まずはMacとESP32をUSBケーブルで接続する。 接続はUSBケーブルで繋ぐだけだ。次にArduino IDEを立ち上げ、まずは空のプログラム(スケッチ)を書き込んで動作確認を試みる。
ところが、書き込みの途中で無情なエラーが発生。

……ほうほう、なるほど。さっぱりわからん。
2. AIに泣きつく
プライドを捨て、エラー内容をそのままAIに投げてみた。返ってきた回答がこれだ。
【AIによる解決策まとめ】
- 手動ブートモード: 書き込み中に「BOOTボタン」を長押しする。
- 書き込み速度(Baud Rate)を下げる: 921600から115200へ。
- ケーブルの確認: データ転送対応のものかチェック。
- ハードウェア対策: ENピンとGND間にコンデンサを追加。
なるほど、わからんが上から順に試す。 ちなみにこの回答で、私の個体が「ESP32-D0WD-V3」という名称であることを初めて知ることとなる。
検証1:手動ブートモード
「Connecting…」が出た瞬間にBOOTボタンを渾身の力で押してみたが……ダメだ。同じエラーが出る。
検証2:書き込み速度の変更(解決!)
Arduino IDEの [ツール] > [Upload Speed] を 921600から115200 に落として再試行。 すると、何事もなかったかのように書き込みが完了した。

AIの回答、やるじゃないか。私のAIは案外、仕事ができるらしい。
3. ブレッドボードの狭さと闘う
空のプログラムが通ったので、いよいよ本題のLチカへ。 手持ちのブレッドボードにESP32を配置してみたのだが、ここで問題が発生した。
「ボードの幅が広すぎて、片側のピンしか使えない」

……まあ、今回は片側のピン(12番)しか使わないので、見なかったことにして作業を進める。
4. 回路設計と「勘」の抵抗選び
ESP32の12番ピンを使用し、LEDへの経路に抵抗を配置する。
調べたところ、ESP32の端子出力電流の絶対最大定格は40mAらしい。これを超えないように抵抗を入れる必要がある。
手持ちの220Ωの抵抗器を2個直列に繋ぐ。
計算するのも面倒だが、これくらいの抵抗値があれば大丈夫だろう。知らんけど。
(※慎重な性格の方は、オームの法則 V=IR を使って計算するが吉)

5. Lチカプログラムの実装
ブレッドボード上に部品が並んだところで、Arduino IDEでLEDを点滅させるコードを書き込む。

プログラムの要点解説
- 1行目
#define LED_PIN 12: 12番ピンに名前をつけて管理しやすくする。 5行目pinMode(LED_PIN, OUTPUT):setup()内で、12番ピンを「出力用」として設定。10,12行目digitalWrite(LED_PIN, HIGH/LOW):loop()内で1秒ごとに電圧のON/OFFを切り替える。
書き込み速度を落としたおかげで、今回もスムーズに転送完了。書き込んだ途端、LEDが規則正しく点滅を始めた。
Lチカ成功である。

書き込みができないというトラブルはあったが、AIの助言を借りてなんとか第一関門を突破した。 ようやく、私のESP32に「命」が宿った瞬間だ。
次回、「【表示編】ESP32からディスプレイへ」。 はたして画面出力まで辿りつけるのか。

