2012年7月19日木曜日

秋月のジャイロセンサモジュール

 この間の秋月の加速度センサモジュールに続いて、今回は2軸ジャイロセンサモジュールを試してみました。


 実体配線図はこんな感じ。


 ArduinoのスケッチとPC側のグラフ表示は前回のものをそのまま流用して、センサ(Akiduino+ブレッドボード)を動かしてみました。加速度センサの時は3軸に水平に往復するような感じで振りましたが、今回はXY軸に対して回転させるように振ります。


 各軸ごとに回転させるように往復で振ったところ、たしかにそれぞれの軸に反応が出ました。次に一方の軸に対して、一方向におよそ90度だけ回転させて停止するような動きをしました。


 あれ?ちょっとおかしいですね。角速度を検出しているはずなので、予想ではもっと丸い山が一方向にできて、一方向に回転を始めてやがて止まる、という「山」を想像していたんですが、随分尖った(ここは振る速度によるかもしれませんが)山とさらに青丸で囲った部分はマイナス側に「跳ね返り」があります。これだと、角速度というよりは角加速度(はじめに加速して、後半減速、つまりマイナス加速する)のグラフのように見えます。
 そこで、Google先生に相談してみると、やはりネット上で同じセンサを調べた先人の方が多数いらっしゃって、幾つかの情報を見たところでは、要約すると「秋月の加速度センサモジュールには(メーカーデータシート指定の)ドリフト防止ハイパス・フィルタ(のためのコンデンサ)が入っているんだけど、結果的にそのせいで、微分された結果が出力される。」ということでした。なるほど、角速度の微分(つまり角加速度)なら、上のグラフは納得です。で、対策というか使い方としては、「角加速度なんだから二重に積分する。」か「コンデンサを外して角速度を取り出す。」になるようです。前者の方法ですと、二重に積分するのでオフセットやノイズ、誤差の積み上げが問題になるようです。後者の方法でも二重にやるよりはいいけど積分の誤差積み上げは問題になるんですが、それ以前にコンデンサを外すと温度ドリフトがかなり大きいのと、センサ静止時の出力にばらつき(偏り)があって、モジュールによっては使えないことがあるらしいです。
 いずれの方法にしても、オフセットやドリフトをどう誤魔化して積分(加算)しても使えるデータを作れるかがポイントのようで、もう少し、調査・検討が必要ということがわかって、本日は終了です。