概要
加速度センサの特性を測る実験です。
KXM52-1050を利用した加速度センサモジュールを使いました。
目的
衝動買いをしてしまったので、今のところ特に目的はありません。単に特性を調べるだけです。
データシート
KXM52-1050のデータシートを参照してどのようなものなのかを調べました。(2024年4月現在、この商品を購入した秋月電子通商ではこのデバイスは取り扱いがないようで、データシートも参照できなくなっていました)。
概要
KXM52-1050という加速度センサデバイスを使いやすくモジュール化したものです。
仕様の概要は以下の通りです。
項目 | 内容 |
---|---|
電源電圧(Vdd) | 2.7V~5.5V(標準3.3V) |
測定レンジ | ±2g |
感度 | (Vdd/5) V/g |
0G出力 | (Vdd/2) V |
標準電圧は3.3Vとなっていますが、仕様の範囲内なので5Vで使いました。
出力電圧と加速度の関係
上記のデータより、出力電圧をv(V)、加速度をa(単位はg)とすると、出力電圧と加速度の関係は以下の数式であらわされます。
$$v = a \times Vdd / 5 + Vdd / 2$$例えば、Vddが5V、加速度が1gのときは、aに1を代入して、3.5Vの電圧が出力されることになります。
実験
加速度センサを傾けていき、角度を変化させ、出力される電圧を測定しました。角度を変えるのは結構厄介だったので、三角定規で測れる、±30度、±45度、±60度と、0度、±90度での値を測定しました。0度のときに、0gとなるようにしました。下の図の赤矢印の方向の加速度です。また、加速度センサそのものは静止した状態で測定しました。
測定結果は以下の通りでした。
-90度 | -60度 | -45度 | -30度 | 0度 | 30度 | 45度 | 60度 | 90度 | |
---|---|---|---|---|---|---|---|---|---|
電圧(理論値) | 1.50 | 1.63 | 1.78 | 2.00 | 2.50 | 3.00 | 3.21 | 3.37 | 3.50 |
電圧(analogRead()より計算) | 1.41 | 1.55 | 1.72 | 1.95 | 2.50 | 3.05 | 3.28 | 3.43 | 3.58 |
analogRead()の出力(理論値) | 307 | 335 | 367 | 410 | 512 | 614 | 657 | 689 | 717 |
analogRead()の出力(実測値) | 289 | 318 | 353 | 399 | 511 | 624 | 672 | 702 | 733 |
比較的理論値に近い値が出ました。
電圧から角度への変換
加速度センサが静止した状態で、電圧(v)と角度(加速度センサの傾き)(θ)の関係は、以下のようになっています(入力電圧が5Vのとき)。
$$v = \sin θ + 2.5$$また、analogRead()の出力vと、角度(加速度センサの傾き)(θ)の関係は、以下のようになっています(入力電圧が5Vのとき)。
$$v = 204.8 \times \sin θ + 512$$このことから、analogRead()の出力から、角度を求めるためには、上の式を変形して、以下で求めることができます。
$$204.8\times \sin \theta = v - 512 → \\\\ \sin \theta = (v - 512) / 204.8 → \\\\ \theta = \arcsin ((v - 512) / 204.8)$$バージョン
Hardware: | Arduino UNO R3 |
Software: | Arduino IDE 0022 |
最終更新日
July 14, 2024