esp32-wroomDevkitCをarduino IDEでセットアップからサーボ駆動まで(Windows)


はじめに

大学の研究室にて比較的新しいマイコンボード "esp32" を渡されたのでその開発環境構築からサーボモータ駆動までとりあえずやってみました。

私はWindows10を使用していますのでWinUser向けです。

必要なもの

・Arduino IDE

・ESP32-DevKitC wroom-32開発ボード購入は秋月電子通商様です。                      
 購入はこちらから。ESP32-DevKitC wroom-32開発ボード 秋月電子通商

・ブレッドボード(片側6本線があるといいと思います。)

・LED

・抵抗 (購入したLEDに合わせたもの)

・ジャンパワイヤ-オスオス三色

・書き込み線(esp32の場合はマイクロUSB_Btypeです。PS4のコントローラの充電器があればそれで構いません)

・SG90

開発環境の構築

Arduino IDE編

まずは何といってもArduinoIDEがなければ話が始まらないのでArduinoIDEをインストールしましょう。
こちらからインストールできます。ArduinoIDE

Win10の方はWindows app Requires Win8.1 or 10を選択しましょう。
アプリをインストールしてesp32が使えるようにします。

ArduinoIDEはArduinoで開発するための環境ですのでArduinoIDEでESP32を認識できるようにしなければなりません。

Arduino-esp32
上のリンク先から画像のURLをコピーします。
↑リンクが切れていましたので画像の下部に同様のモノを張り付けてあります。
そちらをご利用ください。2021/12/18 追記

[  https://dl.espressif.com/dl/package_esp32_index.json  ]
↑リンクが切れていましたので、こちらの緑の部分のみをコピーしてください 2021/12/18 追記

そしてArduinoIDEを開き、画面上のツールバーにあるファイル→環境設定から追加のボードマネージャを開きましょう。

画像の"追加のボードマネージャのURL"にペーストします。

ArduinoIDE画面のツール→ボード→ボードマネージャの検索バーにesp32と入力します。

esp32 by Espressifl Systemsをインストール。

これで環境構築は完了です。

ドライバ編

プログラムを書いていきたいところですがこのままではPCがArduinoを認識してくれないことがあります。
つまりせっかく書いたプログラムをesp32に書き込むことができません。
その時はこちらのドライバをインストールしてみてください。

自分のOSにあったファイルを選択し、' VCPをダウンロード 'をクリック。

Windows10_ドライバ

これでツールからシリアルポートにアクセスできるようになるはずです。

またツール→ボード選択からESP32 Dev Moduleを選択してください。

追加のライブラリ編

後に解説しますサーボ駆動ですがesp32ではArduinoにもともとあるメソッドであるmyServoなどでサーボモータを駆動することができません。
なので先にライブラリを追加しておきます。
追加するライブラリは下記から。

Arduino_esp32_add_library

clone or downloadをクリックしてZIPファイルをダウンロードします。

ArduinoIDEを開いてツール→ボードからZIPファイルをインクルードします。

ハードウェア

Lチカ編

サンプル配線

サンプルコード

LED_HIGH_LOW.ino

void setup(){
  pinMode(25,OUTPUT);}

void loop(){
 digitalWrite(25,HIGH);
 delay(500);
 digitalWrite(25,LOW);
 delay(500);
}

簡単ですね.
サンプル配線を見ていただければわかると思いますが、せっかくあるピンを半分埋めてしまっているため、ブレッドボードは両側とも6本線のあるものを選ぶと良いでしょう。

サーボ駆動編

サンプル配線

サンプルコード

Servomotor.ino
#include "esp32-hal-ledc.h"
const int IN1 = 25;

void setup(){
 ledcSetup(1,60,16);
 ledcAttachPin(IN1,1);
}
void loop(){
 for (int i=500;i<6000;i=i+500){
 ledcWrite(1,i);
 delay(100);
 }
}

ledcは本来LEDをPWM値を用いて操作する際にこのコードを使用します。ゆっくり点滅するイルミネーションなど。
それをサーボモータ駆動に代用していますので、興味のある方はこのコードをそのままに、PIN配置をLEDに交換してみてください。

終わりに

esp32はwifiモジュール及びBluetoothモジュールが標準搭載されています。
にもかかわらず1500円弱という他のマイコンと比べて非常に安価なため、将来様々な場面で使用されることが予想できます。
これを機に触れるようになっておくのもいいかもしれません。

参考にしたリンク集

ESP32-DevKitCを使ってみた〜環境構築からタッチセンサによるLチカまで〜
ESP32(ESP-WROOM-32)でLチカ (WindowsでArduino IDE使用)
[esp-idf]ESP-WROOM-32で、サーボモータを使ってみる
【ESP32】PWMでモーターを制御する方法
Arduino core for the ESP32 のインストール方法
ESP-WROOM-32を使ってみる2 -そんな電源で本当に大丈夫か-