久しぶりにマイコンを触る必要が出来たので、シンプルな ESP-WROOM-02 を対象として選択しました。必要な機能がネットワークでアクセスできること、という点で ESP-WROOM-32 も候補だったのですが、ESP32 DevKitC のようなものしか手元に無く、なるべく小型で済ませたいということから ESP-WROOM-02 の選択となったのでした。
前提条件など
ESP-WROOM-02 はブレッドボードで使うために配線を出したものを使用しています。秋月電子で以前購入したもの (AE-ESP-WROOM-02) です。このモジュールでは使うための必要最低限のパーツもないので、プログラムを書き込むためには自分で回路を作るところから必要です。
多くの場合で、物理的なスイッチを付けてプログラム書き込み時には手動の操作を必要とするものが紹介されています。しかし、今回は手持ちのパーツと組み合わせて、プログラム書き込み時に手動スイッチの操作が不要なものが出来たので紹介します。
私のオリジナルではなく、他で紹介されていたものです。自分でも試して、自分なりの状態が作れたので、備忘録の意味合いも強く、ここに書き残しているというところです。
配線
重要なパーツが、 USB シリアル変換を担当する AE-UM232R です。これも秋月電子で購入しました。これを用いて次の写真のような回路を作成しました。
写真では細かいところが分かりづらいと思うので、同様の配線を Fritzing を用いて書き起こしたものが次の図です。
重要なのは、 IO0 のピンと DTR#、 ESP側のRST と RTS# のピンを繋ぐというところです。これらの信号線が USB シリアル変換のボードから出せるのが大切というわけです。よく安価で手に入る変換ボードではこれらの信号線が出ていないようです。
写真のほうでは LED を付けていますが、これは通信で点滅して稼働状態が分かるようにしているだけのシロモノです。上記のパーツ群では回路を見て目視で状態が全く分からないため追加した次第です。
Arduino スケッチを書き込む
この回路で全自動的に書き込むためには少々設定が必要になったので、ここに記載します。
ほとんどのパラメータは一般的に使用されるものかと思いますが、大切なのは Reset Method: dtr (aka nodemcu) を設定する点でした。
試しに、以下のスケッチを作成して書き込む様子を撮影したので掲載します。
unsigned int count = 0;
void setup() {
Serial.begin(74880);
Serial.println("test");
}
void loop() {
char buf[64];
sprintf(buf, "count=%d",count);
Serial.println(buf);
count++;
delay(500);
}
書き込む前にリセットがかかり、自動でプログラムを書き込んでいきます。基板上のボタンを操作することもないのでとても楽チンです。
まとめ
今回のこの回路のおかげで、どちらのボタンを先に離すんだっけ、と悩まずにプログラムの書き込みが出来るようになりました。また、回路構成もここに記録しておくことで将来、自分が再び参照してスムーズに作れるように支度できたのではないか、と思っています。
今回の回路などを作るにあたり、参考にした Web サイトを紹介しておきます。
コメント