1. Qiita
  2. 投稿
  3. ESP32

ESP32(ESP-WROOM-32)でLチカ

  • 29
    いいね
  • 0
    コメント

はじめに

みんな大好きESP8266(ESP-WROOM-02)の上位バージョン、ESP32(ESP-WROOM-32)が国内でも容易に入手可能になってきました。

秋月の通販または店頭で購入できます。
http://akizukidenshi.com/catalog/g/gM-11647/

技適も通ってて、電波ゆんゆんしても安心です。

私も入手してみたので、Arduino IDE で開発する方法を紹介します。

ESP8266を使ったことのある方を念頭に置いてます。また、半田ごては必須です。

とりあえず、Windows 10 64bit で試しています。

ハードウェア

ブレイクアウトボードがまだ出回っていないので、はんだ付けが大変です。そこで! 大変な思いをしながらはんだ付けしてください。。。

2017/2/5追記
aitendo さんのブレイクアウトボード P-ESP32 は2月下旬発売予定となっています。

大変なので、はんだ付けするピンは最小限にしたいところです。

最低限、引き出さなければならないのは6ピン(GND, 3.3V, EN, TXD0, RXD0, IO0) だけです。Lチカのためにもう1本(IO2)引き出して、7ピンとなります。

7本だけなので、頑張ってはんだ付けしましょう。裏返しに配線したほうが、ピンアサインのシルク印刷が見えて便利です。

DSC_0842.JPG

(写真のはさらにIO4も配線していて、8本配線されています)


:warning:警告:warning: (2017/2/5追記)
上の写真のような配線で、ブレッドボードへの抜き差しを繰り返すと、ランドが剥げて再びはんだ付けすることができなくなってしまう場合があります。

DSC_0843.jpg
ENのランドが剥げている様子

下図のように、一旦基板で受けてからブレッドボードに差す側のピンを実装するとよいでしょう。

DSC_0844.jpg

ピンの並びは好きにしていいのですが、この写真のモノは、ESP8266のT型ブレイクアウトボード(スイッチサイエンス秋月)とピンコンパチになるようにしています。


周辺の配線ですが、GND, 3.3V, TXD0, RXD0 は言わずもがなでしょう。

EN は10kΩぐらいの抵抗でプルアップし、スイッチを通してGNDに繋ぎます。このスイッチがリセットスイッチとなります。ESP8266ではENとRSTがありましたが、ESP32ではENがRST相当という感じになりました。

3.3v
 |
10kΩ
 |
 +--- EN
 |
 SW
 |
GND

IO0 は単にスイッチを通してGNDに繋ぎます。このスイッチが、書き込みモード指定スイッチとなります。こちらはプルアップしなくても動作しました。

 +--- IO0
 |
 SW
 |
GND

IO2 は、適当な抵抗とLEDを繋いでGNDに落とします。3.3Vに繋ぐ方法だと、ブートモードが意図しないモードになって動かないかもしれません。Lチカせず、シリアル通信だけで何かする場合は何もつながなくてOKです。

 +--- IO2
 |
 R
 |
LED
 |
GND

IO2のプルダウン要否を確認するために、自分はIO2 を使いましたが、これから配線する場合はほかのピンを選んだ方がいいかもしれません。

DSC_0840.jpg

ESP8266と比べると無駄なプルアップ・プルダウンが無くなった印象です。(どうせならENも内部でプルアップして欲しかったところです。)

ソフトウェア

ESP8266 は、Arduino IDE のボードマネージャを使ってインストールしましたが、ESP32 では自力でファイルシステムに配置する方法でのインストールとなります。

一次情報は Steps to install Arduino ESP32 support on Windows です。

ちょっと手順を変えつつ、日本語で紹介していきます。

arduino.cc のサイト から Arduino IDE Windows Installer をダウンロードし、インストールします。現在の最新版は1.8.1でした。

ZIP版やApp版はどうなんだろうと気になりますが、公式が「Windows Installer」を指定しているので、従った方がいいかもしれません。また、当然ですがインストール済みならそのまま使いましょう。

次に Git をインストール、、、はしません。

https://github.com/espressif/arduino-esp32.git にアクセスし、緑のボタン「Clone or download」をクリックし、出てきたポップアップ右下の 「Download ZIP」 をクリックしてZIPダウンロードします。

ダウンロードしたZIP を C:/Users/[YOUR_USER_NAME]/Documents/Arduino/hardware/espressif/esp32 に展開します。

(Arduino IDE の環境設定でスケッチブックの保存場所を変えている場合は、C:/Users/[YOUR_USER_NAME]/Documents/Arduino の代わりにそれを使ってください)

配置する際、arduino-esp32-master というフォルダは無い状態にしてください(esp32 の下に cores, doc, libraries, ... が並ぶようにしてください)。

次に、C:/Users/[YOUR_USER_NAME]/Documents/Arduino/hardware/espressif/esp32/tools の中の get.exe をダブルクリックして起動します。DOS窓が開いて何かgetするようです。DOS窓が閉じるまで待ちましょう。

これでインストールは以上です。

昔のインストール方法を見ると、python と pyserial が必要だったようですが、今は公式に言及がないので必要ないようです。get.exe のところが、MacやLinux では get.py を実行するみたいなので、Windows では get.exe を作ったことで python が不要になったのかなと思います。(しかし、手元で試したPCにはpythonが入っているので、実は必要ということもあるかもしれません。)

2017/2/5追記
GitHubのログ を見ると、17日前に get.exe が追加されています。

サンプルソース

手始めなので超簡単なLチカで行きます。セッカチなので間隔を250msとしました。

blink.ino
void setup() {
  pinMode(2, OUTPUT);
}

void loop() {
  digitalWrite(2, HIGH);
  delay(250);
  digitalWrite(2, LOW);
  delay(250);
}

書き込み

Arduino IDE のメニュー、ツール → ボード から、ボードを選ぶのですが、何を選んだらいいのでしょうか。

よくわからないので、とりあえずそれっぽい ESP32 Dev Module を選択します。

(ちと脱線しますが、ESP32 Dev Module を選び、ハードウェアを https://dl.espressif.com/dl/schematics/ESP32-Core-Board-V2_sch.pdf の通りに配線すると、書き込み時のモード変更とリセットを勝手にやってくれます。配線は全部必要というわけではなく、シリアルのDTS,RTS と ESP32のEN,IO0 の間だけ回路図通りならOKです。)

また、シリアルポートを正しく選択してください。

それ以外は特にいじらず、書き込みボタン(メニュー左から2番目の→アイコン)をクリック!

で、ハードウェア側IO0とENに繋いだ物理ボタンを押します。押すタイミングは比較的どっちでもいいのですが、離すタイミングはENが先、書き込みが始まったらIO0を離す、という感じにするとうまくいくと思います。

書き込み終わったら再度ENのボタンを押してリセットしてください。押して離した時に起動して、Lチカが始まると思います。

おわりに

うまく動きましたか?

ESP8266を使ったことのある前提で、さらっと流してしまいました。Qiitaで一番乗りしてやるぜ! という勢いで書いています。

ESP8266のarduino対応は有志が作成しましたが、ESP32のarduino対応はEspressif自身が作成されたようです。ESP32への力の入れ方が半端ないなーという印象を受けています。ESP32はこれからさらに使いやすくなっていくことでしょう!

Comments Loading...