« 箱が届いた | トップページ | 6軸加速度センサの動作実験 »

2008.03.24

3×3=6軸加速度センサ!?

1年ほど前、3軸加速度センサのLIS302DLというのをはんだ付けしたという記事を書きました

今日はその続きです。
ところで、前回ブログに書いた基板はパターンにミスがあったので動きませんでした。

そういう経緯があって、結局のところ万能基板を裏返しにして、接着剤で固定し、
Lis302dl_1

ジュンフロン線を使って配線を引き出しました。
(これでは超小型パッケージの意味がないですね。)
Lis302dl_2_2

これをパソコンのパラレルポートまでフラットケーブルで引き伸ばします。

これで加速度センサが動くぞ!、と喜んだのもつかのま。
動かしてみてびっくり。精度というか誤差というか、得られた測定結果がものすごく悪いのです。まず、XとYとZのゲインが同じでない(笑)。
セルフテスト機能があるのでゲイン調整に使えるかなと期待してみたものの、そのセルフテスト機能さえ誤差が多くて何をやっているのかわからない。しかも、何もしなくても常に出力値が振動している・・などの数々の問題点がわかってきました。

データシートを見る限り、感度や測定範囲には10%のばらつきがあるというもので、用途は「自由落下検出、動き検出、ゲーム・バーチャルリアリティーの入力、振動モニタと補償」と書かれています。
つまり、計測や制御用ではなく、振ったり叩いたりするのを検出するためのセンサなのでしょう。

当初はこのセンサを使って、「加速度を積分して速度を出して、速度を積分して位置を出せば現在位置がわかる」という、いわば位置検出アプリケーションを作りたかったのですが、その試みは楽観的すぎました。

問題の原因を考えてみました。
 (1)ノイズ(電源や、外来ノイズ、GNDのループ)
 (2)回転する運動が加わっている
 (3)基板の重力に対する傾きが検出されている

最初は加速度センサをパソコンのパラレルポートから叩いていたので、長いフラットケーブルが外来ノイズを拾っているんじゃないかとか、GNDのループが出来ているのではと考えました。
また、3軸加速度センサは原理的に回転する運動を検出できません。実験基板を手で揺さぶってテストすると、必ず回転運動が入ってしまうので、それも誤差の原因となります。

回転運動は検出できない

最も厄介なのは重力加速度です。基板を置く机がわずかにでも傾いていると、XやYのセンサが一定の値の加速度を検出しつづけてしまいます。
このため、加速度を積分して現在座標を求めたら、机の上においているだけなのに1秒後には机から飛び出してしまうという計算結果になるのです。

というわけで、まず電源や信号線が拾うノイズや、GNDのループによるノイズを改善するため、USBマイコンを使うことにしました。フラットケーブルでパソコンとつなぐよりも、ノイズ低減という意味では良いはずです。
もちろん加速度センサの近傍で、電源にLCフィルタを入れておきます。

また、回転運動への対処のため、3軸加速度センサを3個使うことにしました。
3×3軸加速度センサの原理

加速度センサは自分を中心とする回転運動を検出することはできませんが、基板上にセンサが2個あれば、たとえ回転運動をしてももう一つのセンサがその動きを検出するはずです。
3個あれば立体的な回転もわかるだろうと思ったからです。

つまり、3個の3軸加速度センサを同一平面上に載せれば、3次元空間における剛体の運動がわかるのではないかということです。9個のセンサの測定結果に、SINやらCOSや積分の演算を施すことで、6つの自由度を持つ剛体の運動が導けるはずです。理論的には。

で、実際に加速度センサを3個、L字型に並べた基板を作ってみました。制御しているマイコンはInterface誌付録のV850基板です。

3x3axis_board_2

クリックで拡大

この基板を使ってどうなったか。実験の結果はまた次回書きます。(書きました)

|

« 箱が届いた | トップページ | 6軸加速度センサの動作実験 »

コメント

コメントを書く



(ウェブ上には掲載しません)




« 箱が届いた | トップページ | 6軸加速度センサの動作実験 »