2014年11月24日月曜日

CStyleでHMC6352のキャリブレーション

CStyleでHMC6352のキャリブレーション
CStyleTj3B_V140730です。

朝さんは書きました...
以前の記事でTJ3だけでHMC6352を使うという記事がありました
が、その件で質問させてください。
現在ダイセンがHMC6352のボードを作って売っていてC-styleも
HMC6352に対応しています。
私はストロベリーリナックスで売っていたものを使っているの
ですが、ロボットを90度回しただけなのにセンサーモニターの
値は180くらい回ってしまいます。2個あるのですが、もう片方
は同じ場所で正常に作動するので外部からの影響ではないと思
います。
そこで キャリブレーションをして正常に戻るか試したいので
すが、どのようにしてTJ3Bローダーにキャリブレーションの
コードをプログラムしたらいいのか分かりません。
よろしければ教えて下さい。
返答よろしくお願いします。
2014年10月26日 15:50

はじめまして朝さん。
では、
D_I2C.cとD_I2C.hとC-CodeLib.txtのバックアップを取ります。
D_I2C.c の中から「// HMC6352の初期化処理」探して
そこから16行分をコピーしてすぐ下に貼り付けます。
1行目を「// HMC6352のキャリブレーション」に書き換えます。
2行目setをcalに書き換えます。
8行目と9行目は削除します。
47とGをHMC6325のデータシートをみて
「Enter User Calibration Mode」の値に
4CとLを「Exit User Calibration Mode」の値に書き換えます。

手で動かす場合は、9行目に60秒ぐらいwaitを入れて
ゆっくり60秒で一回転させます。
書き換えたら上書き保存。

D_I2C.hの中の
D_I2C_EXT BOOL set_hmc(void);の次に
D_I2C_EXT BOOL cal_hmc(void);を1行書き加えます。
書き換えたら上書き保存。

C-CodeLib.txtの中の
BOOL set_hmc(void);
// HMC6352 Continus Mode Setupの次に
BOOL cal_hmc(void);
// HMC6352 Calibration Mode Setupを
1行書き加えます。書き換えたら上書き保存。
C-Codeで張り付けてビルド、実行します。
setupでHMC6352をチェックするのを忘れずに。
C-Codeの使い方は、ほかの人に聞いてください。
おわり。
C言語を少しずつ覚えましょう。がんばって。
2014年10月28日 0:12

自動にしたければ
http://xrexcele.blogspot.jp/2012/02/hmc6352.html
のmotor部分6行を参考にしてください。
2014年10月28日 6:28

ストロベリー・リナックスさんのサポートページへのリンク
http://strawberry-linux.com/support/12106/1190200
使い方
http://strawberry-linux.com/pub/hmc6352-manual.pdf
平置きした状態で使う。
しばらく回したり、動かしたりしていると自己修正されて直る。
北磁極と真北には数度のずれがあり真北にするには補正が必要。
2014年10月30日 21:50

朝さんは書きました...
詳しくありがとうございます。
キャリブレーションをすることが出来ました。
2014年11月8日 22:20

無事、キャリブレーション出来てよかったですね。
報告ありがとうこざいます。
2014年11月24日 23:29

0 件のコメント: