前回、M5StackのスライダーでESP32のDCモーターをPWM制御させてみました。↓
今回は、DCモーター+サーボモーターを制御させてみます。
M5Stackに2つスライダーを用意しているので、左側の縦向きのスライダーをDCモーター、右側の横向きのスライダーをサーボモーターの制御として使用します。
目次 [非表示]
初めに
概要
UDP通信でM5Stackのスライダーの値をESP32に転送し、ESP32は受信した値に応じて各モーターを制御します。
M5Stack ⇒ UDP ⇒ ESP32 ⇒ モーター
左側のスライダーは前回と同様DCモーターの制御、上にスライドで正転、下にスライドで後転、真ん中辺りで停止とします。
右側のスライダーはサーボモーターの制御で、左いっぱいが0度、中央が90度、右いっぱいを180度とします。
構成
・ESP32
・M5Stack core2
・DCモーター
・DCモータードライバ
・サーボモーター
・ブレッドボード、ジャンピングワイヤ
プログラム
クライアント側、M5Stack core2(micropython)
前半は過去記事で解説しているので割愛します。
Slider2のレンジを40~115としているのは、ホビー用サーボモータは、約 40〜115 のデューティを必要とし、77 を中心値としている為です。(0度~90度~180度に近い動きとなります。)
メインループでDCモーターとサーボモーターのスライダーの値をESP32に転送しています。
サーバー側、ESP32(micropython)
PWM制御のため、DCモーターには5KHz、サーボモーターには50Hzを定義しています。
ループ内では随時M5Stackからスライダーの値を受信し、DCモーターとサーボモーターの制御を行っています。
完成
2つのモーターを制御できています。↓
次回はステアリング付のラジコンキットを改造し、ESP32を載せてM5Stackのスライダーで操作できるラジコンを完成させたいと思います。