ESP8266 : いまさらLチカをする

秋月の税込250円の ESP-WROOM-02を買ったので, いつも通りボード作ってLチカしてみた.

ESP-WROOM-02とは?

Espressif Systems社のWi-Fiモジュール. Wi-Fiモジュールなのに, ESP8266EXを搭載してるが故にマイコンとして使われてしまっている可哀想なモジュール.

32bit MCU, 4MB ROM, SPI・UARTとか主要インターフェースがあり, それに加えてWi-Fiが使える(技適あり)んだから便利, と数年前に流行った. つまり, ちょっと流行りが過ぎている.

しかも, ESP-WROOM-02Dという 後継のものがある. 周波数がD無しより改善されているらしい. そんなせいもあるのか, D無しは秋月では破格の税込250円で販売されている.

ちなみに, ESP-WROOM-32という 上位機種がある. こちらはBluetoothまで使える. ただし, 税込550円でマイコンチップにしては高級品. なぜか持っているがまだ遊んでいない. というかそれが必要となるほど大きなプロジェクトがない.

マイコンボードを作る

マイコンボード

いつも通り45基板にまとめてみた. シリアル変換はAE-CH340E-TYPECという 去年11月に発売されたモジュールを使った. なんと, USBコネクタがType-C. モダン. 現在, シリアル変換モジュールで最安(税込480円).

ESP-WROOM-02の取り付け

ESP-WROOM-02の端子は1.5mmピッチなので, ユニバーサル基板に取り付けるのには工夫が必要. 世の中にはDIP化基板が出回っているが, ブレッドボードで使う予定はないので, UEWを使って直付けした.

虫

回路

秋月のESP-WROOM-02開発ボードの回路図を参考に, 上手く組んだ. 本当ならいつも通り回路図を置きたいが, 先日, メインPCのOSを換装したためにまだ環境が整ってない… 水魚堂みたいに直感的に操作できる簡単なエディタがないものか.

ハマったところ

ATコマンドでOKされるまで

ファームウェアを書き換えていない素のESP-WROOM-02は, シリアル通信でコマンドを送信することによって, 本来のWi-Fiモジュールとしての設定をすることができる(参考). で, ATを送信すると正常ならOKと返ってくるはずなのが, ここでERRORばっかし返ってきて苦労した.

結論を言うと, シリアルコンソールの改行コードの設定を 受信CR, 送信CR+LFにする必要があった.

シリアルコンソール

書き込みモード切り替え

ESP-WROOM-02は, ファームウェア書き込みの際に「書き込み可能状態」にする必要がある. 具体的には, IO0(ピン8)をLOWにしながらマイコンをリセットすると, ファームウェアを書き込める状態になる.

それ自体はLPCシリーズやArduinoのブートローダと似ているので, ArduinoIDE等で書き込む際にフローで自動化できる(参考).

このボードでも自動化回路を組込もうとしたのが, CH340EにはDTRが無い! ので結局実装はしなかった. まあ, いつかOTA書き込みを標準にしてしまえば スイッチを押す必要は無くなるだろう…

Lチカする

さて主題のLチカが, Arduino IDEを使って爆速で終わらせる.

  1. 「ファイル」>「環境設定」の「追加のボードマネージャ」にhttp://arduino.esp8266.com/stable/package_esp8266com_index.jsonを追加
  2. 「ツールメニュー」>「ボード」>「ボードマネージャ」でESP8266 Communityを検索, 追加.
  3. 「ツールメニュー」>「ボード」でGeneric ESP8226 Moduleを選択.

で, 以下のよくみるコードを入力し, モジュールに書き込む.

void setup() {
  pinMode(16, OUTPUT);
}

void loop() {
  digitalWrite(16, HIGH);
  delay(1000);
  digitalWrite(16, LOW);
  delay(1000);
}

ようやくLチカに成功.

次はHello,world!したい.