ESP32のすゝめ

ESP32のすゝめ

こんにちは、けりです。
これは 東京工業大学ロボット技術研究会(rogy) Advent Calender 2017 の6日目の記事です.

本日は、私が愛用しているマイコン「ESP32」を紹介します。

ESP32とは?

ESP32とは上海にあるEspressif Systemsという会社のマイコンです。

最新の IoT マイコンで、240MHzのデュアルコア CPU に WiFi と BLE を備えていながら約5ドルという低価格を実現しました。

ESP32

ESP32

ESP32 と ESP-WROOM-32 の関係

ESP32はWiFiのコントローラでもあるので、日本で使用するには技適が必要です。

その技適を取得したモジュールがESP-WROOM-32です。

モジュールになったことでパスコンや無線周りの回路がすべて内蔵されており、電源をつなぐだけで使うことができます。

ESP-WROOM-32

ESP-WROOM-32

どこで買えるの?

ESP-WROOM-32は秋月電子で購入できますので、日本ですぐに買うことができます!

ESP32の長所と短所

長所

  • Arduinoと同じコードで開発できる
  • メモリがとても多い (RAM が 520kB、Flash が 4MB(ESP-WROOM-32))
  • CPUの性能が高い (240MHz・デュアルコア)
  • ほぼすべてのピンでSPI、I2C、PWMなどが使える (ピンの再割り当てが可能)
  • 内部に不揮発性ファイルシステムが用意されている (EEPROMより圧倒的に使いやすい)
  • Wi-Fi通信とBluetooth Low Energy (BLE) 通信ができる
  • 価格が安い(700円程度)
  • サンプルコードが豊富 (サンプルコードを切り貼りするだけで割といろいろなことができる)

短所

  • スリープしないと電流を結構消費する(CPUが30~50mA)
  • ライブラリが完成していないものもある

ESP32の開発環境

ESP32の開発環境は主に以下の2つです。どちらもEspressif公式のGitHubリポジトリにあります。

開発環境概要コメント
ESP-IDF公式の開発環境(Espressif IoT Development Framework)ESP32をフル活用したいならこれを使おう
Arduino core for the ESP32ESP-IDFをベースとしたArduino IDEプラグイン簡単に使えてびっくり!

開発に必要なもの

とりあえず、以下のものがあれば動作確認はできます。

ESP32-DevKitC

ESP32-DevKitC

ESP32開発環境づくりの概要

一番簡単な Windows & Arduino IDE で開発する方法の流れを紹介します。詳しくは公式のドキュメントをご覧ください。

  1. Arduino IDE をインストール
  2. Arduino core for the ESP32をダウンロードしてArduino IDEのソースディレクトリに展開
  3. コマンドプロンプトで、さっき展開したファイルに含まれる get.exe を実行
  4. Arduino IDE を起動すると、ボード一覧に ESP32 Dev Module があるので選択する
  5. Arduino IDE のサンプルコード一覧にESP32があるので適当なものを開く
  6. ESP32-DevKitC を PC につないでポートを選択する
  7. Arduino IDE の書き込みボタンを押してプログラムを書きこむ
  8. 書き込みが終わったら RESET ボタンを押してプログラムを実行する

ESP-WROOM-32を使う上での注意事項一覧

ESP32が動かなくて困ったときは以下のことを確認してみてください。

  • 電源レギュレータが貧弱だと起動できない
  • IO6からIO11までの6ピンは内蔵フラッシュメモリと通信しているので基本的に使えない
  • IO0,IO2,IO5,IO12,IO15は起動時に特定の状態になっていなければならないので使用の際は注意
  • IO34からIO39までのピンは入力専用で、出力には使えない
  • ADC1とADC2があるが、現時点ではADC2とWiFiは同時に使えない(修正される可能性あり)

デュアルコアについて

ESP32は同じCPUが2つ内蔵されており、デュアルコアとなっています。

デュアルコアの使い方については以前の記事をご覧ください。

まとめ

  • ESP32 とは、超ハイスペックな無線付きマイコン
  • 公式の開発環境は ESP-IDF
  • Arduino IDE でも開発することができて、Arduinoのライブラリをそのまま使える
  • サンプルコードが豊富で、サンプルコードを見ているとなんかできた気になる

ここまで魅力的なマイコンは今まで見たことがありません!
ぜひ使ってみてくださいね!

最後に

世の中にはこの記事含め、二次解説記事が溢れています。

その筆者はさまざまな工夫を凝らしてわかりやすい記事を書くように努めていると思いますが、間違った情報や不確実な情報も含まれていると思います。

是非、公式サイトが提供している 一次ドキュメント を読む癖をつけましょう。

ESP32の場合、ESP32 Technical Reference Manualを熟読すると、ESP32の魅力を再確認できます!

ESP32リンク集

最後までお読み頂きありがとうございました。
明日の 東京工業大学ロボット技術研究会(rogy) Advent Calender 2017 は、Aktzkさんです。お楽しみに!