こんにちは。最近 Amazon で ESP32 こと、ESP-WROOM-32 を購入していました。気づいたらポチっていました。マイコン狂とは怖いものですね。気づいたら沼の上、もがけばもがくほどハマっていくのです。呪いのように。
さて、当方 Mac ユーザーなので、この環境で ESP32 を導入した話を現在進行形で進めながら、ハードも含めて説明していきます。というかポエムに近いですかね。実際に自分がやった手順を書くので。閲覧してくださっている方はなんとか解読してくださると幸いです。
購入
秋月で DevKitC が売っているんですが、話によるとブレッドボードで使う場合、使えるピンが片側1列のみになってしまうということで、これは見送りました。Amazon で例の HiLetgo がいい感じの値段で1ピッチ狭いボードを売っていたのでポチりました。注文から 2日で到着。我が地元は宅配僻地で、日付指定をしなかった場合は当初の予定配送日から1日遅れて届く割合が半分を超えているんですね。ああ不便。
だからと言って一般的に言って僻地というわけじゃないですからね。ちゃ〜んと駅の乗降車数は一日6万くらいいますし、電車は急行も一部特急も止まります。すごいでしょう。(これ以上言ったら地元が割れる..)
電源周りの強化
さて、ここまでは良かったんですが、どうやらねむいさんによると、電源のドロップが激しいということらしいです。すなわち、このモジュールは電源投入時に一瞬電流をエグいくらいに消費するらしくて、5V→3.3V のレギュレータがこれについていけず、3.3Vよりも低く電圧降下してしまうという問題があるそうなんです。ありがとう、ねむいさん。
ADP3338というレギュレータがおすすめらしいのですが、これバケモノですね。表面実装なのに許容電流がすごい。まるでオペアンプ黎明期の uA741 のようだ。
Digi-key とかで探して、う〜ん送料がもったいない〜とか思っていたのですが、大学の課題に忙殺されている間に秋月で取扱を開始したようです。やったあああ
それにしても高い。1チップ300円ですよ。これは仕方がないですね。だってバケモノですから。そしてこの ESP32 が 1A 近くの電流を消費するのでこれくらいしか候補がないんですね。早速秋葉原に買いに行きました。日比谷線直通で一本。快適な経路です。(これで路線名バレましたね完全に)
ということで、手持ちの調温式半田ごてでボードにくっついているレギュレータをエクストリーム熱してひっぺがしました。そしてそこへ 3338 を載せるだけで手術完了です。
IDF のインストール
基本的にここの Get Started に従います。
まずは Pyhton
と pip
のインストール。これは皆さん当然ありますよね。マカーなら。Linux の方は、例えば Ubuntu では
$ sudo apt install python python-pip
とでもしてサクッと入れてしまってください。その上で Python でのシリアル通信ライブラリである pyserial
を入れてください。
$ pip install pyserial
あとはリンク先の tar を展開してパスを通してください。詳しくは上のリンク先で(丸投げ)。これでコマンドの実行ができると思います。
デバイスドライバのインストール
さて、コマンドが実行できてもデバイスが認識されない事には始まりません。現行の USB シリアル変換 IC によりますと、型番は CP210x のようです。従って メーカーのドライバのページから適切なドライバパッケージをダウンロード、インストールしてください。Mac の場合はインストールされた直後に認識されているはずです。万が一認識されていない場合は再起動してください。
esp-idf のディレクトリを指定して、以下のコマンドを打って出荷時の ROM をダンプさせました。
$ esptool.py --port /dev/tty.SLAB_USBtoUART --baud 921600 read_flash 0 0x400000 original_contents.bin
Baud Rate が 921600 bps という、これまでに見たことのないバケモノビットレートで通信することが出来ます。それでも結構時間がかかりました。初期 ROM 重いなぁ。
お酒が回ってきたので、続きは後日。すみません。