倒立振子実現のために、事前確認です。
DCモーターコントローラーは、東芝製のTA7921Pを使用してます。 こちらに詳しく説明とサンプルがあります。 https://www.marutsu.co.jp/contents/shop/marutsu/mame/81.html
回転方向の制御に2線、回転速度の制御に1線を使用します。 ESP32側は、回転方向制御に1,0をそれぞれ出力してあげれば問題ありません。 回転制御は、アナログ出力はないのでPWM出力をアナログ出力とみなして制御します。 周波数は、500Hzから1kHzがいいようです。 デューティー比を0(0%)~1023(100%)まで変化させると擬似的にアナログ出力となります。 デューティー比は、0→1→10→100→500→1000と変化させた時のモータの動きです。
デューティ比0,1,10ではモーターは動きません。 PWM信号にLEDをつけてます。段々明るくなっている状況がわかると思います。
もう1個のモーターも配線を半田付けして、モーターコントローラーと配線します。
反対側を見ながらコピーすればいいので簡単です。プログラムを反対側分も作成し、いざテスト。 うーん、新しく配線したモーターは、うんともすんとも動きません。反対側は問題なく回ってます。 再度、配線を見直しても間違ってません。 配線触ってると、モーター動き出しました。原因はここ。
モーターコントローラーのVCC線の剥き方が気持ち短くて、ブレッドボードと微妙に接触不良です。長めに剥いて配線しなおすと、左右同じように動くようになりました。
これで、左右のモータが動くようになりました。将来的な拡張を考えて左右個別にコントロールできるようにしてあります。
あとは、これまでのセンサー読み出し、モーター駆動等の個別コードをまとめて、倒立できるようにプログラムの作成です。 基板に取り付けて、ようやく倒立実験です。GW中は楽しめそうです。