ESP32でのサーボモーターの使い方

ESP32でのサーボモーターの使い方

現在カメに餌を遠隔であげるべく、サーボモーターを使った作品を制作中のwak-techです。

今回は備忘録的ですが、ESP32でのサーボモーターの基本的な使い方を紹介します。

今回の材料・環境

サーボモーターとは

角度や速度が指定できるモーターです。その性能は主に以下の点で分けられます。

  1. 可動範囲
  2. 精密さ(最小角度)
  3. トルク
  4. 重さ

サーボモーターの制御はPWM信号で行います。あるパルス幅のうちの割合で何度にするかが決定されるわけです。

自分で書いてもいいのですが、角度をPWM信号にしてくれるライブラリがありますので、利用してみましょう!

回路

サーボモーターには3つの色付きの線が付いています。
それぞれに以下の役割が付いています。

オレンジ
制御線 VDD(+) GND(-)

今回はESP32の開発ボードを使用するため、以下のような回路にしました。黄色(実際にはオレンジ)の線とESP32のGPIO 13に接続します。

Servoライブラリのインストール

  1. ESP32-Arduino-Servo-Libraryのページへ行き、緑色のClone or DownloadでzipファイルをDLする
  2. Arduinoのライブラリフォルダへ展開する。私の環境では以下の場所にライブラリ保存フォルダがありました。

これでインストールは完了です。

サンプルプログラム

非常に簡単な例を紹介します。角度を90度回転させて、元に戻るのを繰り返すプログラムです。

#include <Servo.h> Servo myservo; //Servoオブジェクトを作成 void setup() { myservo.attach(13); //13番ピンにサーボ制御線(オレンジ)を接続 } void loop() { myservo.write(180); //180度へ回転 delay(1000); myservo.write(0); //元に戻る delay(1000); }

writeメソッドで実行可能なのは0から180度までです。
これで以下のような動きが実現できます。

応用

サーボモーターは意外とトルクがあるので、スイッチにそのまま張り付けて電動スイッチにできます。
時間になったら自動で明かりを消す、なんてことも可能です。

回転体として使いたい場合は、360°回転可能なこちらのサーボをお勧めします。

サーボモーターと3Dプリントされた部品を組み合わせて、カメに餌をやる仕組みを作ってみました!

穴が開いているので、遠隔でESP32が操作できればある程度決まった量だけフリフリして出すことができます(たぶん)。

今後の制作にご期待ください。ありがとうございました!

返信を残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です