こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

3軸加速センサーのオフセット値について

3軸加速センサーのオフセット値について
秋葉原でKXM52-1050型番の3軸加速センサーを購入しPICのA/D変換にてとりあえず電圧に変換しましたがオフセット値設定の方法(プログラムの処理又は物理的に?)がわかりません。よろしくお願いします。
ハード:
センサー名:XM52-1050
pic:pic16f88
電圧:+5V
ソフト:CCS社 Cコンパイラ

測定値:
X最大 3.612 X最小 1.455
Y最大 3.632 Y最小 1.497
Z最大 3.7  Z最小 1.78
単位V

オフセット値:0gの時と思っています、この辺もアドバイス願えたらと思っています。

投稿日時 - 2010-09-22 19:41:10

QNo.6200545

暇なときに回答ください

質問者が選んだベストアンサー

ANo.2 です。間違いがありました。
× これを m/s^2単位の加速度に換算するには 10 で割ります
○ これを m/s^2単位の加速度に換算するには 100 で割ります
地上での重力加速度は g = 9.8 m/s^2 程度です。

(補足)
モジュールを(2)の姿勢にしたとき、Vz の値が 2.5V より大きくなるので、z方向の加速度は正の値ということになります。重力の向きは下向きなのに逆じゃないかと思うかもしれませんが、下向きの慣性力(重力)を受けるということは、上向きに加速しているのと同じなので、加速度が正というのは正しい結果です。お分かりだと思いますが、この測定結果を使って、物体の速度や位置を求めるときは、重力加速度の影響を差し引く必要があります。

投稿日時 - 2010-09-23 12:04:54

ANo.3

このQ&Aは役に立ちましたか?

12人が「このQ&Aが役に立った」と投票しています

回答(4)

ANo.4

ANo.1 です。
また間違いがありました。感度の計算式は g でなく 2*g で割るのが正解です。
× Bz = ( Vz1 - Vz2 )/g
× By = ( Vy1 - Vy2 )/g
× Bx = ( Vx1 - Vx2 )/g
○ Bz = ( Vz1 - Vz2 )/(2*g)
○ By = ( Vy1 - Vy2 )/(2*g)
○ Bx = ( Vx1 - Vx2 )/(2*g)

投稿日時 - 2010-09-23 12:29:35

ANo.2

出力電圧範囲が 1.5V から 3.5V 程度ということは電源電圧が 5V で使用しているのだと思います。KXM52-1050は手元にありますが、モジュールについている説明書を見ると、電源電圧が 5V のときのオフセット電圧は 2.5V です。

オフセット電圧とは、加速度が 0 のときの出力電圧(DC電圧)です。ある方向の加速度を g (m/s^2)としたときの出力電圧 Vout (V) は
   Vout = A + g*B
となります。A がオフセット電圧で、B が感度です。したがって、出力電圧 Vout を測定して
   g = ( Vout - A )/B
を計算すれば加速度を計算できます(この計算はPICでやるのだと思いますが)。このモジュールは電源電圧が 5V のとき、A = 2.5V、B = 0.0673 (V・s^2/m)ですが、これは理想値であって、実際には固体差(バラツキ)があります。

以下のように実験すれば実際のオフセットと感度を求めることができます。
  (1) お住まいの地点の重力加速度 g の値を [1] か [2] で調べる。だいたい 980 gal 程度のはずですが、これを m/s^2単位の加速度に換算するには 10 で割ります(980 gal = 9.8 m/s^2)。
  (2) 添付図(2)のような姿勢にしたときのz出力の電圧を測定する。その値をVz1 とする。
  (3) 添付図(3)のようなな姿勢にしたときのz出力の電圧を測定する。その値をVz2 とする。
      z方向のオフセット Az と感度 Bz を次式で計算する
         Az = ( Vz1 + Vz2 )/2、Bz = ( Vz1 - Vz2 )/g
  (4) 添付図(4)のようなな姿勢にしたときのy出力の電圧を測定する。その値をVy1 とする。
  (5) 添付図(5)のようなな姿勢にしたときのy出力の電圧を測定する。その値をVy2 とする。
      y方向のオフセット Ay と感度 By を次式で計算する
         Ay = ( Vy1 + Vy2 )/2、By = ( Vy1 - Vy2 )/g
  (6) 添付図(6)のようなな姿勢にしたときのx出力の電圧を測定する。その値をVx1 とする。
  (7) 添付図(7)のようなな姿勢にしたときのx出力の電圧を測定する。その値をVx2 とする。
      x方向のオフセット Ax と感度 Bx を次式で計算する
         Ax = ( Vx1 + Vx2 )/2、Bx = ( Vx1 - Vx2 )/g
x, y, z 方向の加速度を gx, gy, gz (m/s^2) 、x, y, z出力を Vx, Vy, Vz (V) としたとき
   gx = ( Vx - Ax )/Bx、gy = ( Vy - Ay )/By、gz = ( Vz - Az )/Bz
となります。なお、(2)から(7)で求めたオフセットは電源電圧で変わるので、電源電圧を変えたときはその都度測定する必要があります。水平面を作るには [3] のような水準器を使えばいいと思います。

[1] 各地の重力加速度(赤い点をクリックする) http://vldb.gsi.go.jp/sokuchi/gravity/grv_jpn/map.html
[2] 各地の重力加速度(地域を選択する) http://vldb.gsi.go.jp/sokuchi/gravity/grv_search/gravity.pl
[3] 100円水準器 http://matendman.exblog.jp/3676656/

大変申し訳ございませんが、この投稿に添付された画像や動画などは、「BIGLOBEなんでも相談室」ではご覧いただくことができません。 OKWAVEよりご覧ください。

マルチメディア機能とは?

投稿日時 - 2010-09-23 11:51:43

お礼

ありがとうございました、オフセットをするにはやはり最初は水準器が必用なのですね、になかうまい計算か関数でもあればブログラムすればいいと思ってました、100円ショップで購入しておきます。
電源電圧は5V一定なので一度やればいいと思ってます。ラジコンの姿勢制御に応用出来ないかと色々実験しながらやってます。ANO_1とANO_2とも確認しました。ありがとうございました。

投稿日時 - 2010-09-23 18:51:25

ANo.1

>オフセット値:0gの時と思っています

無重力なんてあり得ないでしょ?

定常時(止まっている状態)の測定値を記録して置く -> ゼロ点(オフセット)
数秒間計測した平均値をゼロ点(オフセット)としてください
多分ほとんどがノイズです
あと、このノイズレベル以下の加速度はノイズ成分と分離できなければ計測することはできません

次に実際の加速度を測定して、先程のゼロ点で計測した値(オフセット)を引けば
実際の加速度に相当する電圧が求められます

>測定値:
 X最大 3.612 X最小 1.455
 Y最大 3.632 Y最小 1.497
 Z最大 3.7  Z最小 1.78

これは時系列の振幅だと思います
センサーの感度係数(校正係数)をこの値に掛ければ物理量に変換できます

投稿日時 - 2010-09-22 20:03:10

補足

ご回答ありがとうございます。

0g=無重力ですか、おっしゃる通りだと思いますが、購入時時の説明書には入力電圧と出力振幅(感度)とオフセット(0g時の出力電圧)と記載されています、少々混乱しています。以下はメーカの説明書のリンクですが購入時の製品についてきた説明書はリンクありませんでしたので5V使用時の感度とオフセットを抜粋します。(質問時にPDFにすれば良かったのですが....)
電圧 感度 オフセット
5V  1000mv  2.5v
http://akizukidenshi.com/download/KXM-52.pdf

測定値は静止状態でX,Y,Z軸に各々360度ゆっくり回転して実測した値です。(最大値と最小値は約180度の関係にあるようです)2.5Vの値になる時がありますがiphoneの水準器で測定するとX軸y軸が0.5度程度Z軸は3度程度ずれがあります、これを何とかiphoneの水準器なしで地面に対して水平の時に0度としたい思っています。
後、感度係数(校正係数についてもう少し詳しくご教授お願いいたします。

投稿日時 - 2010-09-23 10:13:18

あなたにオススメの質問