1-2.ESP32-DevKitC概要

2019年5月29日

ESP32-DevKitCの概要を説明します。

「ESP-WROOM-32」と「ESP32-DevKitC」

内部に実装されるESP-WROOM-32(D)自体は電子基板に直接取り付けることを想定して設計されているため、パソコンと接続するためのマイクロUSBなどの端子は用意されていません。(入出力端子はこちらを参照)
「ESP32-DevKitC」は開発用ボードとして、ESP-WROOM-32(D)にコネクタや端子、スイッチなど開発に必要な機能を実装し、そのままで電子工作ができるよう設計されています。
「ESP32-DevKitC」の外観は以下となります。

具体的にはマイクロUSBコネクタの他に2.54mmピッチ端子とプログラム書込モードとリセットのためのボタンが2つ付いています。また、機能としても以下の大きく2つの機能を付加されて一体化されています。

①USBシリアル変換
②5Vから3.3Vへ電圧変換

①はパソコンのUSBポートを開発ボードのシリアル通信に変換してデータ通信を行うための機能です。USB端子の送受信とESP-WROOM-32(D)の送受信を接続するだけでは通信ができません。異なる通信方式を変換してデータ通信を可能とすることで、プログラム書き込みやシリアルモニタを実現しています。
②はパソコンやUSBアダプター電源のUSB5Vですが、ESP-WROOM-32(D)の動作電圧は3.3Vです。このため、USBの5V電源を3.3Vに制限するための電圧レギュレータ機能です。開発ボードはUSB端子の5V出力も取れるように端子が用意されています。

《参考》自作で開発ボード

説明した通り、ESP-WROOM-32(D)に①、②の機能を追加したものが「ESP32-DevKitC」ですので、①、②の各パーツも秋月電子通商などで購入可能し、ESP-WROOM-32(D)と接続することで開発ボードは自分で「ESP32-DevKitC」を組み立てることも可能です。参考として購入する物品などの情報を共有しますので、興味のある方は回路図を参考に組み立ててください。

【秋月電子通商でのパーツ名称】
①超小型USBシリアル変換モジュール
②低損失三端子レギュレーター 3.3V

【ESP32-DevKitC V4回路図】
Espressif社 技術資料の回路図

ESP32-DevKitC起動モードと配線

ESP32-DevKitCのコア部分はESP-WROOM-32(D)ですので同様に利用可能です。起動モード(Booting Mode)は以下の2つのモードがあり、起動時のGPIO0端子の状態によりモードが変わります。

① Flash Boot:フラッシュのプログラムから起動モード
起動時のGPIO0端子状態HIGH
② Download Boot:シリアル通信でプログラム書込モード
起動時のGPIO0端子状態LOW

GPIO0は何も接続しない場合は集積回路ESP32-D0WD内部でHIGH状態(Pull-Up)に接続されていますので、フラッシュメモリからプログラムを読み込み起動します。内部プログラムをパソコンから書き込み変更したい時はGPIO0をLOWにして起動して利用し書込みを行います。このGPIO0はESP32-DevKitCにおいてBootボタンとして用意されていますので、ボタンを押すとLOWに接続されるようになっています。
また、通常利用時はEN端子をHIGHにしておく必要がありますが、ESP32-DevKitC内部でHIGHに接続(Pull-Up)されていますので何も配線せずに利用できます。また、ENボタンはリセット(再起動)機能も有していますので、ボタンを押してLOW(GND)に接することで本体をリセット(再起動)することが出来ます。

《ESP32-DevKitCボタン内容》
・ENボタン  : EN端子をGND接続 (本体の再起動)
・Bootボタン : GPIO0端子をGND接続 (起動時にプログラム書き込みモードへ)

《注意》ESP32-DevKitCのシリアル端子ドライバ

ESP32-DevKitCに一体化されているUSBシリアル変換機能のICを利用するには、Windows/Mac端末でドライバが必要ですので、認識されない場合は「USBシリアル変換IC用ドライバインストール」を参照ください。

《参考1》端子状態と初期起動モード

起動時に端子状態の読み込みを行い、起動モードなどを決定しています。
モードを決定する端子はGPIO 0,2,5,12,15となり、GPIO0は説明していますが、その他の端子は今回の利用では内部の初期状態で変更の必要はありません。
その他の端子の役割については電子工作一般知識ではなくモジュール個別機能のため詳細は割愛しますが、興味のある方はこちらも参照してください。
(11ページに起動時の各端子の役割が掲載されています。)

《参考2》ESP32の開発環境

本サイトではESP32の開発環境にArduinoIDEを用いて説明していますが、他にも多くの開発環境があります。他の主な開発環境には以下のようなものがあります。

(1)ESP-IDF (ESP-IoT Development Framework)
(2)MicroPython

ESP-IDFはEspressif社が提供している開発環境でESP32の全機能を利用することが可能です。開発言語はC、C++でWindows,Mac,Linux環境で利用可能です。端末上で作成したプログラムファイルを「make flash」でコンパイルし本体に書き込みするコマンドベースでの開発環境となります。
MicroPythonは名前の通り組み込み向けPythonであるMicroPythonを開発言語に利用するための環境です。Pythonはコードがシンプルで記述量が少なく済むという特徴があり、Pythonを使って開発したい場合にこちらの開発環境を利用します。
初心者向けにも理解や操作がしやすくライブラリやネット上での情報も豊富なためArduinoIDEを利用しています。ArduinoIDEでも多くのことが実現できますので学習する上では不足はないと思います。
興味のある方や用途に合わせて他の開発環境も適宜検討して利用して下さい。