Deprecated: Assigning the return value of new by reference is deprecated in /home/users/2/floppy.jp-999953/web/kagakusukimono/class/View.php on line 25

Deprecated: Assigning the return value of new by reference is deprecated in /home/users/2/floppy.jp-999953/web/kagakusukimono/class/View.php on line 30

Warning: Cannot modify header information - headers already sent by (output started at /home/users/2/floppy.jp-999953/web/kagakusukimono/class/View.php:25) in /home/users/2/floppy.jp-999953/web/kagakusukimono/class/View.php on line 81
科学好き者の日々::加速度センサーを火星ローバーにつける

加速度センサーを火星ローバーにつける

自走式の火星ローバーを作りました

実際に走らせてみると、いろいろと問題が判ってきます。
2つの光学センサーを左右につけて障害物を検出しています。どちらのセンサーもOFFなら前進、右がONなら左ターン、左がONなら右ターン、両方ONなら後退としています。
イスの足のように細い障害物が両方のセンサーの中間にあると、どちらのセンサーもONにならないので、どんどん前進してしまい、そのうちに障害物で自身が立ち上がってしまいそのうちに倒れてしまうことがあります。

ふーん!!姿勢を検知して前進をやめる必要がありそうです。
姿勢を検知するには加速度センサーを使えばいい訳ですね。

秋月電子で売っていたADXL311というアナログデバイセス社の2軸加速度センサーは175mV/Gの信号が得られます。

前に作ったUSB経由でPCに値を取り込むアダプターをつかって実際の値を読んでみます。

   下90度の向き  水平  上90度の向き
X軸  2.90   2.60  2.30
Y軸  3.00   2.70  2.24 

程度の値です。

X軸の値だけ取り込んで、値が2.45(上45度)以下になったときは後退するようにしてみました。

ところが常に後退をしてしまいます。
変だなぁ。。。。

マイコンに入る信号をオシロスコープで見てみます。
わっ!ノイズだらけです。モータからのノイズでセンサーの信号が埋もれてしまっています。

まずモータの両端にコンデンサーを入れてみます。。。。あまり効果はありません。
マイコンに入る前に積分回路を通してみます。かなり思い切って、10kΩと10μFとしてみました。ノイズは軽減されました。

しかし、まだかなりの率で誤動作するようです。しかしこれ以上時定数を大きくするとセンサーの応答が悪くなってしまいます。

マイコン側で何回か測定して平均値をとるような平均化の処理を追加しました。。。。。。。まあOKでしょうか。

やれやれ、モータのようなノイズ源が近くにある場所でマイコンを使うのはいろいろと落とし穴がありますね。



Calendar
<< May 2024 >>
SunMonTueWedThuFriSat
   1234
567891011
12131415161718
19202122232425
262728293031
search this site.
tags
archives
recent comment
recent trackback
others
admin