Re: The history of "M&Y"

Team "M&Y" and "花鳥風月"
the soliloquy of the father
毎日更新!

コンパスセンサーについて

2010-09-19 | うんちく・小ネタ

これまでに、おもちゃから取り出したコンパスセンサー(HM55B)をAVRやArduinoに接続したりして遊んでいました。

(最終的にはATTiny13と組み合わせてNXTに接続する目的だったのですが・・・既に挫折 orz )

確かに、Yahooオークションなどで、安く(100円とか)で入手できますが・・・実用という点ではどうでしょうか?

とくに、子供に使わせるにはちょっと面倒かなぁ。と思っています。

でも、コンパスセンサーの原理がわかったような気がします。

Img_7712

じゃあ、(私が忘れないうちに)HM55Bについて少し書きたいと思います。


以下は、私が経験から(勝手に)感じたことなので、正しいかどうかは不明です。


まず、コンパスセンサーは、普通はセンサーが向いている方向(方位)を検知します。

これまで実験してきたHMC6352などは、センサーの向いている方位を0.0~359.9の数値で示してくれます。

しかし、HM55Bは、そこまで優しくありません。

HM55Bには磁気センサーが2組搭載されています。 その2つの磁気センサーを直角に配して設置し、それぞれの値を教えてくれます。

それぞれの磁気センサーは、北に向くほど値が大きくなり、東や西に向いているときは「0」、南に向くと値がマイナスになります。(となるハズ)

このXとYの2つの磁気センサーの値を返してくれるだけです。

それを読み出した後に、プログラムの方で、方向(方位)に換算しなければなりません。

(普通のコンパスセンサーは、この方向の換算まで含めてやってくれるってことですね。)


換算の方法は、

Vx>0 Vy<0  の場合 θ = Arctan( -Vy / Vx )   

となります。 あとはVxとVyの正負の場合分けでいろいろ有りますが・・・

具体的な Arctan の計算方法が判らなかったので、5度単位でMS-Excelで計算した値を配列に格納し、取得したデータと比較して方向(方位)に変換しました。

こんな感じで、2組の磁気センサーを直角に配したもので、角度(方位)が判ります。

もしかしたら・・・今流行?の「傾いても方位がわかるコンパスセンサー」は3組の磁気センサーをそれぞれ直角に配しているのでしょう・・・きっと。


コンパスセンサーの原理は、まあこんなものでしょう。


で、コンパスセンサーを使うときに重要なのが・・・キャリブレーションですね。

このHM55Bは、そもそもキャリブレーションの機能は付いていないと思うので・・・プログラムの方で、対応しなければならないようです。

コンパスセンサーを真北に向けると、Vx:60 Vy:10 となりました。 

(本来 Vy:0 となるハズなのですが・・・やっぱり誤差でしょうか)

今度は、真南に向けると Vx:-54 Vy:8 となりました。

この結果、Vxからは3を引く、Vyからは9を引くことにしました。


私は、こうしましたが・・・

どうも一周(二周)回してみて、最大値、最小値を計測し、最大値と最小値の平均が「0」になるように定数を足す(または引く)のが普通のキャリブレーションのしくみのようです。

だから、市販のコンパスセンサーは、キャリブレーションで、1周~2周回すのでしょうね。


これで、とりあえず、コンパスセンサーとして使えるようになりました。

(コンパスセンサーの原理っぽいことは自分として納得しました。)

所詮精度は・・・おもちゃですけど・・・


ちなみに、今回題材になった HM55B ですが・・・30USD程度で売られています。

・・・いまさらこれを買う人はいないでしょうけど・・・(笑)

  

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« ポケモン ゲットだぜ! | トップ | カメラシステム »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

うんちく・小ネタ」カテゴリの最新記事