DCマウス研修(吸引編)[10] PWM設定・重心と直進性能


こんにちは!
inukaiです。

前回Lチカが終わったので、ここからはペリフェラルの設定をしていきます。
今回はまずPWMから設定します。

製作中のマウスにおいてPWMを使う場所としては、左右のモータ、ブザー・吸引ファンの合計4つがあります。
制御用のマイコンにRX631を使用する場合、PWMを出力できる機能として、TPU(16bitタイマタイマパルスユニット)、MTU(マルチファンクションタイマパルスユニット)があります。
どちらの機能を使ってもよいのですが、MTUを使って実装することとしました。
なので、マイコンのMTIOCxxという端子を割り当てることになるわけです。

自分の回路図の場合は、PWMの割り当てのみ着目すると下記のようになります。

・モータ1 : MTIOC2B
・モータ2 : MTIOC3C
・吸引ファン:MTIOC0C
・ブザー : MTIOC4D

さて、PWMを出すファームを書こうと思い今一度ハードウェアマニュアルを見てみます。
PWM出力に関する部分を抜き出したものが下図になります。

PWMモード1を見てみると、モータ1 :用MTIOC2Bとブザー用MTIOC4Dが使えなかったのです・・・

というわけで、いったんブザーはあきらめ、どうしても必要なPWM1は別の端子から引いてきました。
(ブザーに割り当てているP31は、PPG(フログラマブルパルスジェネレーター)でPWMっぽいものは出せるそうなのですが、今回はブザーは後回しにします。)

ただブログ書いていて気が付いたのですが、PWMモード2でMTIOC2Bを駆動すればよかったのでは・・・

とりあえず、このように解決して無事PWM出力できました。

ひとまず左右で同じデューティー比でPWMを出力し走行した結果がこちらです。

なかなか真っすぐ走らないものだなぁという感じですね。

ここで、重心の話になるのですが、バッテリーを前においてはどうかという意見を社内でもらいました。
そこですぐにバッテリーを前に適当において走行をしてみました。

バッテリーの位置を変えるだけで、前重心となり真っすぐ走れるようになりました!
これは制御しやすそうでうれしい結果です。

これからはエンコーダを読んで速度フィードバックを実装したりするわけですが、直進性がよいものができたのでほっとしました。

ではまた次回!

 

最後におまけ(撮影NG)

(動画撮影でボタンを押し間違えて後ろに走らせてしまいました・・・)


Posted in DCマウス研修(吸引編), ブログ, 研修