19 9軸センサをI2cで使いこなそう4(LSM9DS0)-方位センサ

 このサイトのサブタイトルに原理は置いといてとか言っておりますが,今回ばかりは原理は無視できません.なぜなら,方位センサから取得できる生の値は角度ではなく,地磁気強さの値だからです.この地磁気強さから角度を計算します.

まずはこの図を見てください.

13

センサからの生データはMX,MY,MZです.ここからθとφを求めます.以下が使用する式です.

14

なぜ,オフセット値が必要かというと,そもそも地磁気を利用しているセンサは伏角やら偏角で,北から少しずれたところを北と示しているらしいです.この伏角および偏角は各地域で値が異なります.よって,オフセット値でこの誤差を修正します.
まずはMXとMYのオフセット値,XrefとYrefを求めます.

回路は前回と一緒です.

mega64に以下のプログラムを書き込みます.

IDLEには以下のプログラムを入力します.マイコンから受信した値を表にプロットするというプログラムになっています.
※ポート番号は各自で設定し直す必要があります.

マイコン側の電源を入れ,PCに挿入したXbeeの受信が確認できたらIDLEのプログラムを実行します.
マイコンは0.01秒の間隔でMX,MY,MZをセンサから読み取り,PCに読み取った値をPCに送信しています.PC側は受信したMX,MYの値を表にプロットしています.
平面上でセンサをZの軸を中心に回転させます.すると,このように表に円が描かれます.(表の中でクリックすると,プロットされた点を消すことができます.)

15

マウスの位置が表の上に表示されますので,円の中心を読みとります.この円の中心の座標がオフセットの値となります.
その値をIDLEのXrefおよびYrefに代入します.代入したプログラムが以下になります.

XrefおよびYrefの値は各自で変更してください.プログラムを実行し,円の中心が(0,0)近辺になっていればOKです.

228

つぎは計算された値を見れるようにGUIを作成したので,そのGUIから計算された角度を見てみましょう.
20 9軸センサをI2cで使いこなそう5(LSM9DS0)-方位センサ に続く.

おすすめ図書(よかったらどうぞ)

You may also like...

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">