【第3回】AI機嫌メーター:難所突破!書き込みエラーをAIの助言で解決し、執念のLチカ

AI機嫌メーター

「環境が整ったなら、次は動かせ。話はそれからだ」

AIからの次なる指令は、マイコン学習の登竜門「Lチカ(LEDを点滅させること)」。 MacとESP32を接続し、あとはプログラムを流し込むだけ……と思っていた私の前に、冷酷なエラーメッセージが立ちはだかる。

今回は、書き込みトラブルの解決劇から、ブレッドボード上での回路作成までを報告する。

1. 接続、そして絶望のエラー

まずはMacとESP32をUSBケーブルで接続する。 接続はUSBケーブルで繋ぐだけだ。次にArduino IDEを立ち上げ、まずは空のプログラム(スケッチ)を書き込んで動作確認を試みる。

ところが、書き込みの途中で無情なエラーが発生。

……ほうほう、なるほど。さっぱりわからん。

2. AIに泣きつく

プライドを捨て、エラー内容をそのままAIに投げてみた。返ってきた回答がこれだ。

【AIによる解決策まとめ】

  1. 手動ブートモード: 書き込み中に「BOOTボタン」を長押しする。
  2. 書き込み速度(Baud Rate)を下げる: 921600から115200へ。
  3. ケーブルの確認: データ転送対応のものかチェック。
  4. ハードウェア対策: 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からディスプレイへ」。 はたして画面出力まで辿りつけるのか。

タイトルとURLをコピーしました