field2011/11/14三軸磁気センサの搭載(SpinnerTwo)ローバー向けキラーアプリであるコンパスを試してみたい。おもってお金をケチった結果、デジタルコンパスではなくデジタル3軸磁気センサを手に入れてしまった。http://www.sparkfun.com/products/10619HMC6343のような傾き補正付きデジタルコンパスモジュールとして入手できるものは、3軸磁気だけでなく、加速度から得られる姿勢情報なども含めて色々と処理をしてから方位角を算出してくれる。そこら辺はユーザー側ではあまり気にせずに済む。対して、この3軸磁気センサは3軸の磁界強度を得られるシンプルなモジュール。シンプルなので色々と計算しないといけない・・・。文献を漁って、回り道をしたけど、適当に本体を360°回しながらX,Y軸の磁界強度をグラフにプロットするとこういうモノができた。mag3110でのXY磁界の強度変化グラフ(鉄製のテーブル上にて)おお・・・ちょっと計測点が少なすぎたけど、ちゃんと円を描いてる。(X軸のスケールはスルーで・・・)まずは磁界強度で描かれた円の中心がわかれば水平での方位角を求めることができそうだ。(Sparkfunで見かけたソースでは、中心を出す計算が省かれており、方位は出てこない・・・)調べる中で、地方磁気の角度とか、軟鉄/鋼鉄など、磁気を帯びた物体上での撹乱などについても文献を見つけたが、とりあえず中心点のキャリブレーションをしてから使うことになりそうだ。このセンサを使うにあたって、いくつか注意点としては、磁界が近くにあると正常な値が出せないこと。小型ローバーはモーターが近いので、センサ周辺は磁気遮蔽用のアルミテープを貼っている。覆う前は5000近い値まで出ていたが、現在は安定して地磁気を拾えるところまで来ている。横は加速度センサもし路面付近に強い磁気を帯びた物体があったらと思うと、ナビゲーションには限定的な使い方しかできないのかなあ・・・。今度GPS走行させて確かめたい。他の方向としては、検索時に見つけた例として、スマートフォンで指に磁石を付けて磁場ジェスチャー(テルミン風の楽器インターフェースとか)として利用したりといった、新しいインターフェースとして使うというのもありかなあと思う。