2015年10月15日木曜日

自作の H8 で作成したモータコントローラをROSで制御する

動機など

自分で実験する移動ロボットの駆動系を制御するため
モータを動かすシステムを自作しています。

昔から持っていたエンコーダ付きのマクソンモータを制御するHブリッジモータドライバを作った。
たぶん、エンコーダとDCモータ別々でもちゃんと接続すれば動作します。(ロボコンで頂いたマブチモータでも動作しました。)

マクソンの高価なモータドライバEPOSも持っているのに酔狂なことですが、自分が使うものは、自分が中身を全部知りたい欲が働いていらん苦労を楽しんでいます。
この世の中、自分が使うものの中身を完全に知ることは既に不可能ですが、できる範囲でということです。

モータドライバについて

モータドライバは秋月電気で購入できる、ハーフブリッジドライバ IR2302 2個を使ってFETのゲートを駆動する回路をユニーバーサル基板上に実装して作成。
回路の作成にはnekolabさんのページの回路を全面的に使用させていただいた。感謝です。

作ったモータドライブ回路にH8-3052マイコンを接続して制御する。H8というところがトレンドじゃないかもしれないけれど、使い慣れたマイコンがまずは手っ取り早いということで。

ドライバ回路にちょっと手を加えるといいのだけれど、ハンダ付けの手間を嫌って、今回のモータドライバはHブリッジのハイサイドとローサイドの駆動信号はH8から別々に入れます。これらの信号は相互に反転している必要があります。(故に回路側にノット回路を入れれば信号は一つで済みます。)

速度制御について

H8はホストとシリアル通信でコマンドをもらう形にしています。
H8の中ではエンコーダ信号を位相係数モードでアップダウンカウントして制御周期間の差分からモータの回転速度を取得しています。