NOBのArduino日記!

NOBのArduino日記!

趣味は車・バイク・自転車・ラジコン・電子工作です。

ESP32-DevKitCの使い方(インストール編)

f:id:nobita_RX7:20200826225449j:plain

ESP32-DevKitC
 
 「ESP32-DevKitC」を使ってタッチ機能を使ってみたいです。 今回はArduinoIDEで使える様にボードマネージャーの追加とタッチ機能の実験をしてみました!(^^)!
 

1.ESP32とは

 ESP32シリーズは Wi-FiBluetoothを内蔵する低コスト、低消費電力なSoCのマイクロコントローラです。TensilicaのXtensa LX6マイクロプロセッサを採用しデュアルコアとシングルコア版のバリエーションがあります。ESP32は上海に拠点を置くEspressif Systemsが開発をしTSMCの40nm工程で製造されています。
 
1.1 「製品」の概要
 今回使用する「ESP32-DevKitC」の特徴として、「ESP32-WROOM-32D」と言うマイコン プラス、USB-シリアル変換・マイコンリセット回路及び、USBからの給電を可能にするDCDCコンバータを備えています。なので、ArduinoIDEにボード情報を書き込んでおけばUSBケーブル一本で実験可能と言う便利なキットです。
 ※間違えて「ESP-WROOM-32 2-line breakout」版(周辺回路なし)を安いからと買ってしまいました。ブレッドボード上に周辺回路を準備し(かさばる)、スケッチのアップロード時には手動でリセット(接触が不安定で割と書き込み失敗する)し・・・。結局「ESP32-DevKitC」に買い直しました(;'∀')
 
1.2 「製品」の仕様
 「ESP32-DevKitC」の仕様を表1に「ESP-WROOM-32」の仕様を表2に示します。
 
表1:「ESP32-DevKitC」の仕様
項目 内容
電源 5V(PCからのバスパワー給電: マイクロUSB-Bメス)
シリアル⇔USB変換チップ CP2102(Silicon Laboratories)
LDO NCP1117(5V⇒3.3V、1A)
ピンの仕様 2×19、2.54mmピッチ、1000mil(25.4mm)
その他 TXD0、RXD0、IO13、IO15を除くすべてのGPIOが利用可
 
表2:「ESP-WROOM-32」の仕様
項目 内容
WiFi 802.11 b/g/n
Bluetooth v4.2
デュアルコア Tensilica LX6
SRAM 520KB
電源電圧 2.2V~3.6V
静電容量タッチインターフェース x10
32kHzオシレータ x1
GPIO x21
UART x3
SPI x2
I2S x2
ADC x16
DAC x2
I2C x2
SDIO マスター/スレーブ
工事設計認証(技適)番号 211-161007
 
1.3 「ESP-WROOM-32」のピンアウト図
 「ESP-WROOM-32」のPinout図を図2に示します。

f:id:nobita_RX7:20200826225453p:plain

図2:「ESP-WROOM-32」のPinout図
 

2.インストール

 ArduinoIDEで「ESP-WROOM-32」にスケッチ(プログラム)をアップロード可能にするため、2.1~2.8 の手順でArduinoIDEにボード情報を書き込みます。
 
2.1 環境設定を開く
 ArduinoIDEを開き、図3の様に「ファイル」→「環境設定」をクリックします。

f:id:nobita_RX7:20200826225500p:plain

図3:ArduinoIDE
 
2.2 環境設定
  図4赤〇部をクリックします。

f:id:nobita_RX7:20200826225504p:plain

図4:環境設定
 
2.3 ボードマネージャーのURLを追加する
 図4操作で図5画面が開きます。
 既にボードマネージャーのURLが登録されている場合は、下記の様に先のURL末尾に「;」を付け、続けて「https://dl.espressif.com/dl/package_esp32_index.json」を入力し「OK」をクリックします。
 ボードマネーシャーの登録が初回の場合は「https://dl.espressif.com/dl/package_esp32_index.json」のみ入力し「OK」をクリックします。
https://***_index.json;
https://dl.espressif.com/dl/package_esp32_index.json

f:id:nobita_RX7:20200826225509p:plain

図5:追加のボードマネージャーのURL
 
2.4 環境設定を確定
 環境設定画面に戻り、「OK」をクリックし設定を確定します。

f:id:nobita_RX7:20200826225513p:plain

図6:OKをクリック
 
2.5 メニュー
 図7の通り、ArduinoIDEメニューから「ツール」→「ボード」→「ボードマネージャー」を選択しクリックします。

f:id:nobita_RX7:20200826225518p:plain

図7:メニュー選択
 
 
2.6 ボードマネージャー
 図8の画面上部Textbox中に「esp32」と入力すると「esp32」のボードパッケージが見つかります。
 画面右「インストール」ボタンを押し、青字で「INSTALLED」と表示された後、閉じるを押して終了します。

f:id:nobita_RX7:20200826225524g:plain

図8:ボードマネージャーでインストール
 
2.7 ボードを選択
 「ESP32-DevKitC」のボード選択は「ESP32 Dev Module」です。
 図9の通り「ツール」→「ボード」→「ESP32 Dev Module」の順にボードを選択します。

f:id:nobita_RX7:20200826225532p:plain

図9:ボード選択
 
2.8 シリアルポートを選択
 「ESP32-DevKitC」をUSBケーブルでPCに接続します。
 ドライバーが正常にインストールされていれば、PCがUSB機器として自動認識し、シリアルポート番号が振られます。
 私の場合は「COM4」でした。図10の通り「ツール」→「シリアルポート」→「COM*」の順にシリアルポートを選択します。
 以上でスケッチ(プログラム)を書き込む準備完了です(^^)/

f:id:nobita_RX7:20200826225537p:plain

図10:シリアルポート選択
 
 

3.実験!

 実際に「ESP32-DevKitC」にジャンプワイヤーを接続してタッチ機能を試してみました!
 
3.1 接続
 実際に繋げた状態を図11に示します。
 図2 Pinout図よりTouch0はGPIO4ピンなので、そこにジャンプワイヤーを挿しただけです。

f:id:nobita_RX7:20200826225554j:plain

図11:ブレッドボード接続状態
 
3.2 プログラム
 サンプルコードとして「ESP32-DevKitC」に書き込むプログラムを図12に示します。
 内容としては、100ms間隔(+処理1ms?)でGPIO4ピンの静電容量変化を測定し、測定結果をシリアルモニタに出力します。
void setup(){
  Serial.begin(115200);
  while (!Serial) {}
}

void loop() {
 Serial.println(touchRead(T0));//GPIO4にジャンパー線接続
 delay(100);
}
イメージ 1
図12:プログラム例
 
3.3 実験!
 図11の「ESP32-DevKitC」に図12のプログラムを書き込み、実行した結果を図13に示します。

f:id:nobita_RX7:20200826225548g:plain

図13:Arduino IDE シリアルモニター
 
〇ジャンプワイヤーの金属部を触る
 1~8
 
〇ジャンプワイヤーの被覆部を触る
 47~58
 
〇ジャンプワイヤーを触らない
 64~71
 

4.まとめ!

 タッチ前後で、十分タッチ検出可能な差が出ました!
 金属部に直接触れずとも、ジャンプワイヤーの被覆程度であれば感知するようですので、今度膜厚の条件を振って実験してみようかと思います(^^)/

 
イメージ 1 イメージ 3
励みになりますのでよければクリック下さい(^o^)/

↩【ESP32-DevKitCの使い方】目次に戻る