ESP-WROOM-02

ESP-WROOM-02 に関する記事です。



ESP-WROOM-02

Espressif Systems 社の ESP-WROOM-02 は Arduino ではないのですが、Arduino IDE で Arduino ライクな使い方ができます。

ESP-WROOM-02 の SoC が ESP8266EX で、ESP8266EX の MCU (CPU) が "32bit で 80MHz" の Tensilica L106 です。書き込めるスケッチの最大サイズはファームウェアに依存します。フラッシュメモリが 434,160 バイト (約 424KB) で、うちプログラム (ファームウェア) が半分程占有しています...それでも Arduino UNO (ATmega328P) の 10 倍近いメモリが使えます。ちなみに速度も Arduino UNO (ATmega328P) の 10 倍くらい速いです。

See Also:


購入

どこでも購入できます...が、ESP-WROOM-02 だけでは何もできません。最低でも 3.3V 電源と USB<->シリアル変換モジュールが別途必要となります。

ESP-WROOM-02 はそのままでは使いにくいので、ブレッドボードに挿せるようなブレークアウトボードも各社から出ています。

このサイトの趣旨は Arduino ライクに使うという事ですから、単体で動作するスイッチサイエンスの ESPr Developer (ESP-WROOM-02 開発ボード) をオススメします。

本当に Arduino ライクに使いたいのなら、Arduino 用シールドも差せる ESPr One(Arduino Uno同一形状 ESP-WROOM-02開発ボード)もあります。

逆に Arduino のシールドとして使いたいのなら、ESP-WROOM-02 Wi-Fi シールドがあります (ピンヘッダは付属しません)。


スイッチサイエンス ESPr Developer (ESP-WROOM-02 開発ボード) 各部詳細

Micro USB で PC と繋ぐだけなので楽ちんポンです。

開発ボードにはピンヘッダが付属していないので、ブレッドボードで使うためには秋月の細ピンヘッダを購入する必要があります (普通のピンヘッダだとブレッドボードに挿せなくて困ります)。


マイクロテクニカ ESP-WROOM-02 ブレークアウトボード (BB-ESP-WROOM02) 各部詳細

実はこちらも購入しました。別途以下のようなものが必要となります。

また、このブレークアウトボードは mikroBUS 対応のため TOUT がピンに出ていません。右側に未接続のピン (NC) があるので、ESP-WROOM-02 からジャンパを飛ばして TOUT を引き出しておくといいでしょう。但し、本来の mikroBUS では +5V のピンなので注意が必要です。

EN ジャンパには工夫をした方がいいようです。

参考にしたサイトは以下の通りです。

これが正解という訳ではありませんが、私はこのようにして使っています。

See Also:


セットアップ

スケッチを書き込むための準備です。

ハードウェア (スイッチサイエンスの開発ボードの場合には読み飛ばしてください)

ESP-WROOM-02 にスケッチを書き込むには電源と何らかの USB<->シリアル変換モジュールが必要です。配線例は以下の通りです。

ボードの幅が広いので、配線はボードの下から引き出します。

配線例では USB<->シリアル変換モジュールに秋月電子の AE-UM232R を使っていますが、TX / RX / GND だけしか結線しないので、任意の USB<->シリアル変換モジュールで構いません。

最初の一つ目であれば、秋月で FTDI のモジュールを買う事をオススメします。

ソフトウェア

ESP-WROOM-02 を Arduino IDE で使うには Arduino.cc の IDE が必要になります。Arduino.org の IDE とごっちゃになるのを防ぐため、ZIP 版を解凍して使うといいでしょう。

  1. Arduino.cc から Arduino IDE を DL
  2. 任意の場所に展開 (Ex. "C:\Program Files (x86)\arduino-1.6.7")
  3. arduino.exe を実行
  4. [ファイル | 環境設定]
  5. "Additional Boards Manager URLs:" に http://arduino.esp8266.com/stable/package_esp8266com_index.json を追加
  6. [ツール | マイコンボード: | ボードマネージャ] を開く
  7. リストから esp8266 を探しインストールする
  8. [ツール | マイコンボード: ] で Generic ESP8266 Module を選択する
  9. [ツール | シリアルポート] でポートを選択
  10. ESPr Developer (ESP-WROOM-02 開発ボード) の場合、[ツール | Reset Method: ] で nodemcu を選択する

スケッチを書き込む時の注意点ですが、ESP-WROOM-02 は起動時に IO15 / IO2 / IO0 の状態を見て動作モードを決定しています

IO15 IO2 IO0
プログラム実行 LOW HIGH HIGH
プログラム書込 LOW HIGH LOW

動作モードを適切に設定しないと、スケッチを実行できなかったり、スケッチを書き込めなかったりします。ポケコンの PRO モードと RUN モードみたいですね (w


Blink

ESP-WROOM-02 でLチカをやってみます。

  1. [ファイル | スケッチブックの例 | ESP8266 | Blink] を開く
  2. 書き込む

これだけの事なのですが、注意点があります。


analogRead()

ESP-WROOM-02 で analogRead() を行うには TOUT (A0) を使います。

但し、この TOUT がクセ者で、ESP-WROOM-02 は 3.3V 駆動なのに、TOUT の入力電圧は 0~1.0V なのです。つまり、3.3V から 1V を作ってやらなくてはなりません。

簡易的には分圧回路を用いて 3.3V から 1V を作ってやります。画像の左の抵抗は 220Ωで右が 100Ωですが、220kΩと100kΩを使う事をオススメします。抵抗の下にあるオレンジ色の線の電圧は 1V 付近になります (実測値で 1.006~1.007V でした)。つまり、その下にある半固定抵抗を回して得られる電圧は 0~1V となります。これを TOUT に接続し、以下のようなスケッチを書き込みます。

void setup() {
  Serial.begin(9600);
}

void loop() {
  int adc_key_in = analogRead(A0);
  Serial.println(adc_key_in);  
}

シリアルモニタを開いて半固定抵抗を回すと、値が 0~1023 の範囲で増減します。

上記例では 3.3V から分圧している訳ですが、例えば単三乾電池2本による直接駆動の場合には得られる電圧が 3V なので、220kΩ/100kΩ抵抗を使って分圧しても、そこから 1.0V を得る事はできません (電池の電圧低下もありますし)。

なお、ESPr One(Arduino Uno同一形状 ESP-WROOM-02開発ボード) の A0 は最初から抵抗分圧されています


ESP Car

ESP-WROOM-02 はメモリの大きい Arduino として使えるから重宝されているのではありません。何のために技適マークが付いているのでしょう?ESP-WROOM-02 は Wi-Fi が使えるのです。

ESP Car は名前の通り ESP-WROOM-02 を搭載しており、 Wi-Fi 機能を利用して Android / iOS からコントロールできます。

スケッチの書き込み

ESP Car 側のスケッチは GitHub で公開されています。

スケッチを書き込む具体的な手順は以下の通りです。

  1. 基板左上のジャンパを下側にセットする
  2. 基板に電池ボックスを接続する
  3. USB<->シリアル変換モジュールを右側の端子に接続する (TXD と RXD をクロス接続)。
  4. USB<->シリアル変換モジュールを PC に接続
  5. スケッチを書き込む
  6. 書き込みが正常に完了すると R/G/B の LED が 5 回点滅する
  7. USB<->シリアル変換モジュールを外し、電池ボックスも一旦外す
  8. 基板左上のジャンパを上側にセットする
  9. 電池ボックスやモーター等を配線する
  10. 電池ボックスを接続した際に R/G/B の LED が 5 回点滅すれば OK

ESP Car Controller

Android / iOS 用のコントローラーは各ストアで公開されています。

接続方法と設定は特に難しくありません。

  1. スマホの Wi-Fi 設定から ESP Car のアクセスポイントを探す (ecar8266~というのがあるはずです)
  2. 接続し、パスワードを入力する (初期パスワードはソースコードに書いてあります)。
  3. ESP Car Controller を起動
  4. 特にソースコードをいじっていないのであれば [Control] タブに移動。
  5. イロイロと触ってみる

詳しくは以下の記事をご覧ください。

なお、この ESP Car Controller は Delphi で書かれています。

ESP Car の入手方法

各イベントにて頒布中で、一般販売も検討中との事です。ESP Car が欲しい方は qa65000.com まで連絡してみてください。

画像の ESP Car は私が組み立てたもので、シャーシは電池ボックス / フリスクケース (の上蓋) / プラダンを使って作られています。


ここにある情報が役に立って、「調べる手間が省けたからオマイに飯でもおごってやるよ」 というハートウォーミングな方がいらっしゃいましたら、下のボタンからどうぞ。

メニュー: