暴走してまともに動かない原因【マイクロマウス 自作】

picture_of_one_situation

こんにちはえいたです。
今回の記事では「暴走してまともには動かない原因」を言及します。
あなたのプログラム上ではエラー文は何もないのに
いざ迷路におくと暴走したり
途中まで上手くいってもまた暴走するなんてことありますよね(>_<)
そういった悩みに答えます
この記事では私の体験談を基にしています。

    1. モータドライバにコンデンサがあるかないか
    2. DutyコードのTGR(16bit指定)

モータドライバにコンデンサがあるかないか

picture_of_many_thing
私も自作マウスをしてるんですが, 基板が届いて
半田付けも終えて
学生大会まで走行もそこそこだったんですが
学生大会をそのマウスで終えてから挙動がおかしくなりました
気付かなかったことがあります。
それがモータドライバ付近にコンデンサを入れてなかったことです。
これによりモータ側で逆起電力が発生したら
まともにモータドライバに電流が逆流して
モータドライバが壊れます。
学生大会ではまだそこまで逆起電力のパワーは少なかったのかもしれません。
私はこれに気付くのに3ヶ月を要しました(>_<)
おかげで下のように
わざわざモジュールごと外付けして
ジャンパーも外付けするということをしました(*’▽’)

DutyコードのTGR(16bit指定)

picture_of_railway
私が使用しているマイコンはRX631です。
ここにはPWMのDuty比の指定にTGR(これに数値を入れた分だけ電流が出力される)というコードがあります。
もし皆さんがこのTGRに入れてるbit数がintのものなら危険です。
ハードウェアマニュアルではTGRには16bitの数値を入れるよう指示されてます。(ex. floatなど)
float以外のものを入れると, それっぽい動作はしますが, 正確性は保証されません。

 

この動画では
TGRA=(何かしらの変数)(float);
というコードを書いてたのですが
int型のものを途中でfloatにするという意味です。
これでも暴走するときがあるので,
関わりがありそうな変数はすべて宣言の時点でfloatにすることをお勧めします。

まとめ

今回の記事では「暴走してまともには動かない原因」を言及しました。
あなたのプログラム上ではエラー文は何もないのに
いざ迷路におくと暴走したり
途中まで上手くいってもまたあばれるということがあれば
この記事が参考になれば嬉しいです。(>_<)
そういった悩みに答えしました。
今回の記事を書くきっかけになったマウスのテクニカルデータなどは
「全日本終わりの初心自作マウサーの教訓」で言及しています。

  1. ータドライバにコンデンサがあるかないか
  2. DutyコードのTGR(16bit指定)

ABOUT US

Eita
こんにちは,えいたです.(@Eita32751796)ロボットに家事全般を任せることが夢です('ω')ノ 趣味はロボット製作,洋画やアニメや大河ドラマを見ること,ファッション,Youtuberのゲーム実況鑑賞,美容の勉強,料理調査,運動です./ 最近は マイコンボード製作に没頭/ 『レ・ミゼラブル』鑑賞/ 『進撃の巨人』/ 『青天を衝け』/ 『GU』/ 『FULLGUYS』実況鑑賞/ 『家庭用脱毛器』がほしい/ ヴィーガン料理を作りたい/ 夕方にジョギングしたいがさぼりがち/