ラズパイ日記...20日目..DCモータコントロール

倒立振子実現のために、事前確認です。

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中は楽しめそうです。

5 件のコメント:

  1. このコメントは投稿者によって削除されました。

    返信削除
  2. 構成要素はそろってきたようですね。まあ〜、これからが大変かも?

    注文していたモータが届いたので、早速実験してみました。
    https://youtu.be/coYSWYs3CAY

    返信削除
    返信
    1. そうなんですよ。傾きと加速度をどのようにモーターに伝えるのかというのをmicropythonでどう書くのか妄想中です。

      削除
  3. 倒立失敗。失敗は成功のもとだよね?!?
    https://www.youtube.com/watch?v=NgLknS8Pbow

    返信削除
    返信
    1. パラメータとアルゴリズムの見直しですね。こちらも今日から組み立てです。

      削除

ラズパイ日記...esp32(arduino)+mpu6050

# esp32で6軸センサー読み出し esp32で6軸センサーを読み出し、値をグラフ表示して動作を確認します。 ## 準備 ハード的な接続は、センサーが3.3V駆動できるので、3.3VとGNDの2線で電源供給します。I2C用にSDAとSCLのデータ線が必要ですが、esp...