7年ぶりにマブチモータの餌食になった
走行中に操舵が固定され、そのままコースアウトすることが頻発する。
ログから原因を探ると、画処理マイコンからのデータの更新が止まっており
更に探ると、カメラからのデータ送信が止まっていた。
カメラはリセットして初期状態で待機中になっていそうである
画処理マイコンはデータが送られてくるのを待っているので、
カメラが応答しない限り次の処理に入れない
画処理マイコンと駆動制御マイコンは、
カメラのフレーム毎に通信するので、ここも動作できない。
結果として、
カメラが初期化→画処理マイコンがロック→暴走という流れになっていた。
ことの発端のカメラのリセットの原因を調べると、
カメラへのコネクタのポイントでは、電源と信号線のどちらにもノイズ無しで
前輪駆動用モータの輻射ノイズという結論になった。
ということで対策を打つ
①カメラの制御ケーブルをモータから離す
これまでは”やぐら”の中にケーブルを通していたため距離が近かった
②制御ケーブルをシールドして、シールドはGNDに接続する
シールドをGNDに落とさない場合は効果が無かった
③モーター缶をGNDに落とす。
モータ缶自体の電位が暴れてアンテナになっていそうなので対処と
モータ缶自体をシールドとして使用する
さらにソフトでも対策
①駆動制御マイコンは10ms間データの更新が止まったら走行停止させる。
②画処理マイコンはカメラからのデータが3ms間停止したら、
カメラをリセットして初期設定から処理をやり直させる。
画処理マイコンの通常の処理への影響を減らすため、
ウォッチドックでマイコンごとリブートさせる。
///////////////////////////////
DCモータのノイズ対策にコンデンサを付けるのは一般的なのだろけど、
それで効果的に対処できるのはモータケーブルに乗る伝導ノイズだけではないのだろうか?
輻射ノイズの原因であろう、ブラシとコミュ間の火花放電への対処は
モータ全体を金属で覆ってシールドしないと利かないのではないか?