ESP32 開発ボードのセットアップ,Lチカ と PWM出力
1. ESP32とは
- Wi-FiとBluetoothを備えた低コスト・低消費電力なArduino互換機
2. この記事で使うもの
- ESP32 DevKitC V4 ESP32-WROOM-32D
- ESP32開発ボードであれば他のバージョン等でも使い方は概ね同じです.
- PC(Windows, MacどちらでもOK)
- Arduino IDE >= 1.8
- Micro USBケーブル
- ESP32開発ボードとPCの接続に使います
- その他電子部品
- LED
- サーボモーター
- ブレッドボード
- ジャンパワイヤ
3. セットアップ
3.1 ブレッドボードについて
ESP32開発ボードは1枚のブレッドボードに差すと,ジャンパワイヤ等を差すスペースがなくなってしまうので,2枚使うと便利です.
3.2 Arduino IDEの設定
基本的に,公式によるArduino-ESP32サポートをインストールする方法に沿って作業します.
※しばしばドキュメントが更新されるので,リンク切れ等に注意してください.
3.2.1 Boards Managerを使用したインストール
ESP32公式のインストール解説ページ にBoards Manager の URL があるのでこれをコピーします.
Arduino IDE を起動し、ファイル
→ 環境設定
→ 追加のボードマネージャのURL
に,先ほどの URL を追記して OK
を押します.
Arduino IDEで、ツール
→ ボード
→ ボードマネージャ
に進み,「esp32」で検索してESP32のボードをインストールします。
インストール後、ツール
→ ボード
メニューからESP32ボードを選択します.選択肢がたくさんありますが,よくわからない場合は ESP32 Dev Module
を選べば大抵は大丈夫です.
ESP32とPCをUSBケーブルで繋いだら,ツール
→ シリアルポート
から ESP32の繋がっているポートを選択します.
4. Hello World!
良い開発は挨拶から始まります.
void setup() {
Serial.begin(115200);
}
void loop() {
Serial.println("Hello World!");
delay(1000);
}
シリアルモニタで Hello World!
が見えれば成功です.
5. ESP32のピン配列
ESP32チップには、複数の機能を備えた48ピンが付属しています。すべてのESP32開発ボードですべてのピンが公開されているわけではなく、一部のピンは使用できません。
例えば,今回使用している DevkitC では,38ピン(片側19ピン×2)を使用することができます.
ESP32 DevkitCのピンに関するより詳しい情報は例えば以下を参照:
6. Lチカ
ESP32のほとんどのピンは多目的であるため,Lチカのためのデジタル出力ピンとしてはGPIOは0, 1, 3, 6~11以外のすべてのピンが使用できます.
例えば GPIO 5 を使う場合,GPIO 5 に LED のアノードを接続し,抵抗を介してGNDへ接続します.
さらに以下のコードを書き込むことでLチカが実行できます:
const int LED_PIN = 5;
void setup() {
pinMode(LED_PIN, OUTPUT);
}
void loop() {
digitalWrite(LED_PIN, HIGH);
delay(1000);
digitalWrite(LED_PIN, LOW);
delay(1000);
}
7. PWM出力
既に述べたようにESP32のほとんどのピンは多目的であり,ピンの大部分は、デジタル入力または出力として使用できます.
ただし,一部のGPIOピンは、起動時またはリセット時に自動的にHIGHになるか、自動的にPWM信号を出力します.これにより予期しない挙動になる場合がありますので,注意が必要です.
具体的には,PWM出力を制御したい場合には GPIO 0,1,3,14,15,34,35,36,39 は使用しないのが無難です.34,35,36,39はデジタル出力に対応しておらず,0,1,3,14,15は特別な用途や初期状態のために用いられます.
7.1 サーボモーターの制御
PWM信号で制御できる部品であればサーボモーター以外でも構いません.
まず,下のようにサーボモーターをESP32開発ボードに接続します:
- サーボモーターの制御線(オレンジや白など) ⇔ GPIO 13
- サーボモーターの電源線(赤など) ⇔ 5V
- サーボモーターのGND線(茶,黒など) ⇔ GND
7.1.1 Servoライブラリのインストール
ServoESP32のリポジトリをダウンロードし,解凍したフォルダをArduinoのライブラリフォルダへ配置します.(Windowsの場合はデフォルトだと C:\Users\(ユーザー名)\Documents\Arduino\libraries
です).
インストールはこれだけで完了です.
7.1.2 サンプルプログラム
角度を90度回転させて、元に戻るのを繰り返すプログラムです。
#include <Servo.h>
Servo myservo; //Servoオブジェクトを作成
void setup() {
myservo.attach(13); //13番ピンにサーボ制御線(オレンジや白など)を接続
}
void loop() {
myservo.write(90); //90度まで回転
delay(1000);
myservo.write(0); //0度まで回転
delay(1000);
}
以上です.
Discussion