加速度センサの出力電圧の単位mV/gは単位加速度当たりの電圧変化によって加速度を表示します。ここに落とし穴が・・・・。加速度のSI単位系はm/s2 メーター秒秒ですけど、gを用いているので、計測された電圧をgに換算してから9.8を掛けます。
kmx52の場合vdd電圧×200が1gで出力される電圧です。
例えば、
0.2mv=200mv出力(増加)したとすれば
vdd4.99*200=998mv
200/998=0.2
加速度=0.2×9.8=1.96m/s2となります
加速度から速度を求めるには
数値積分をします。というのも、測定値が1秒ごとに異なるため離散的になってしまいます。離散的な数値データを積分するアルゴリズムである数値積分を使用します。
データ数n=3のときの数値積分(2次関数補間のシンプソン公式)
データ数n=4のときの数値積分(3次関数で補間の3/8シンプソン公式)
出展:http://home4.highway.ne.jp/moriryo/TrainAcc/Tech/TrainAccTech2.htm
ニュートン・コーツの積分公式を使用し
台形公式
いずれかを使用します。
単位変換
加速度から傾きを求めるには
重力加速度(G) = Sinですので
アークサインで角度を計算することができます。
静的加速度と動的加速度
傾きが静的加速度で、速度計算は動的加速度で計測します。速度は一瞬の値の変化を計測し、傾きは安定した計測が必要なため移動平均処理を行う必要があります
z軸での例:z_katamuki=90-asin(1-計測された電圧の増加分に対応する加速度)*180/3.14159265358979;
校正方法
測定誤差
センサには温度ドリフトがありますので、温度における補正が必要になります。
また0gでのオフセット誤差±167mv(vdd3.3v時)と感度誤差±5%があります。cdsセンサを使用して実際に恒温室にて校正を行わなければ正確な加速度は求まらないと思います。実際に室温25度にて加速度センサにエアーダスターのフロンガスを直接吹き付けて実験しましたが、それだけで、100mvも変化するのが確認できます。真夏に測定した値と、真冬では測定値が違ってくるとは思います。
100mvはvdd4.99v時で0.98g(m/s2)に相当します。
まず、水平時のセンサ出力電圧を測定します。これは、ケースの底板とセンサ取り付け基板とベースがあくまでも水平であると仮定しての話です。ベースの水平を角レベルで調整してだします。この状態でセンサからの電圧出力がオフセット誤差となります。工業ベースでは角レベルなんて持っているかもしれませんが(A級品で15万もします)一般の環境ではこうはいかないので、シビアに測定しないのであれば、ホームセンターで売っている建築レベルでも十分ではあると思います。このオフセット電圧を計測した後、恒温室の代わりに冷蔵庫で温度を下げながら温度ドリフトを計測します。冷蔵庫は開放し常温になっているのを確認してから使用します。
KXM52は5番ピンをVDDに接続すると出力が1G増えますので、冷蔵庫内に入れたセンサを各温度にて0Gと1Gでの電圧スパンを測定し、温度ドリフトを計測します。でもこんなことやってもしょうがないのでメーカーのデータシートから求めた近似式を載せます
y = (0.0000007692 x2 + 0.0005192308 x + 1.6365384615)*(VDD*200/660)
y:オフセット電圧
x:温度
vdd:使用電圧
※vddとオフセット電圧は比例するとして
| y = (0.0001631702 x2 + 0.1101398601 x + 657.1445221445) |