Groveで広がるArduinoの世界-Senser Kit-⑧ Grove 3-Axis Digital Accelerometer
携帯電話やゲーム機に加速度センサが入ったからか、加速度(Accelerometer)センサがMEMSで安価に作れるようになったから携帯電話に採用されたかどうかはわかりませんが、普及しています。
加速度センサは、今の動きの方向を検出できます。加速度センサだけでは検出できない回転方向を検出する角速度センサと組み合わせて6軸センサ、さらに北を検出できる地磁気センサを組み合わせ、9軸センサで利用されることもあります。
ICの周辺を拡大しました。こちらの顕微鏡G1200の画像です。
scannerでI2Cスレーブ・アドレスを見つけます。0x19のようです。
THE ACCELEROMETER SENSORのページにリンクしてあるGrove - 3-Axis Digital Accelerometer(±1.5g)は、MMA7660FCを使っています。このデータシートを読むと、スレーブ・アドレスは 0x4Cです。ほかの製品で0x19をアドレスとして使っているのは、LIS3DHTRのようです。
●プログラム
THE ACCELEROMETER SENSORのページにあるスケッチを動かします。
#include "Arduino_SensorKit.h"
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
while(!Serial);
Accelerometer.begin();
}
void loop() {
// put your main code here, to run repeatedly:
// 3 axis
Serial.print("x:");
Serial.print(Accelerometer.readX()); // Read the X Value
Serial.print(" ");
Serial.print("y:");
Serial.print(Accelerometer.readY()); // Read the Y Value
Serial.print(" ");
Serial.print("z:");
Serial.println(Accelerometer.readZ());// Read the Z Value
delay(500);
}
実行中の様子です。±4gもしくは±8gのレンジに設定されているようです。このセンサは±2g, ±4g, ±8g, ±16gのいずれかのレンジに設定できます。
加速度とは単位時間当たりの速度のことで、別の表現では、加速度とは「速度の時間に対する変化の割合」のことです。速度を時間で微分すると加速度になります。
単位はGで、1G = 9.80665 m/s2です。車が1mを1秒で走りつづけていると加速度は0Gです。アクセルを踏み込み、次の瞬間1秒間で2m進んだら、加速度は1Gになります。