Skip to main content

Xadow - 3軸加速度センサー

note

この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues

これは高解像度のデジタル加速度センサーで、I2Cインターフェースを介して±16gの広い測定範囲を持ち、動作状態を監視するのに適しています。このモジュールを使用すると、腕や脚の振動などの動きの監視機能を簡単に設計に追加できます。例えば、腕を振ることでiPhoneの曲を切り替えたい場合、このモジュールが役立ちます。

仕様


  • 寸法: 25.43mm x 20.35mm
  • 動作電圧:3.3V
  • 解像度: 3.9mg/LSB
  • 測定範囲: ±16g
  • 制御モード: I2C

デモンストレーション


他のXadowモジュールと同様に、Xadow 3軸加速度センサーをXadowメインボードに接続し、テストコードをアップロードして加速度センサー情報を取得する必要があります。

ハードウェアのインストール:

note
Xadow 3軸加速度センサーをXadowメインボードに接続する際には、接続方向に注意してください。接続方法は、1つのXadowモジュールの未充填の角を別のモジュールの直角に接続する必要があります(各Xadowモジュールの4つの角を参照)。

テストコードは以下の通りです:

#include <Wire.h>

#define ADXL345_DEVICE 0x00
#define ADXL345_POWER_CTL 0x2D
#define ADXL345_DATAX0 0x32
#define ADXL345_DATAX1 0x33
#define ADXL345_DATAY0 0x34
#define ADXL345_DATAY1 0x35
#define ADXL345_DATAZ0 0x36
#define ADXL345_DATAZ1 0x37

#define ADXL345_ADDRESS 0x53
int X_Read,Y_Read,Z_Read;
double ax,ay,az;

void setup()
{
Wire.begin();
Serial.begin(19200);
delay(100);
// ADXL345をオンにする
Wire.beginTransmission(ADXL345_DEVICE); // デバイスへの送信開始
Wire.write(ADXL345_POWER_CTL);
Wire.write(8); // 測定を有効化
Wire.endTransmission(); // 送信終了

}

void loop()
{

X_Read = readRegister(ADXL345_ADDRESS,ADXL345_DATAX0,ADXL345_DATAX1);
Y_Read = readRegister(ADXL345_ADDRESS,ADXL345_DATAY0,ADXL345_DATAY1);
Z_Read = readRegister(ADXL345_ADDRESS,ADXL345_DATAZ0,ADXL345_DATAZ1);


/*Serial.print("X, Y, Zの値は:");
Serial.print(X_Read);
Serial.print(" , ");
Serial.print(Y_Read);
Serial.print(" , ");
Serial.println(Z_Read); */

getAcceleration();
Serial.print("X=");
Serial.print(ax);
Serial.println(" g");
Serial.print("Y=");
Serial.print(ay);
Serial.println(" g");
Serial.print("Z=");
Serial.print(az);
Serial.println(" g");
Serial.println("**********************");
delay(500);
}

int readRegister(int deviceAddress,int address1,int address2)
{
long int value;
int readValue1,readValue2;
Wire.beginTransmission(deviceAddress);
Wire.write(address1); // 読み取るレジスタ
Wire.write(address2); // 読み取るレジスタ
Wire.endTransmission();
Wire.requestFrom(deviceAddress,2); // 2バイトを読み取る
if(Wire.available()<=2)
{
readValue1 = Wire.read();
readValue2 = Wire.read();
}
//Wire.endTransmission();
readValue2 = readValue2<<8;
value= readValue1 + readValue2;
delay(100);
return value;
}

void getAcceleration()
{
double gains;
// 加速度センサーの計算
gains = 0.00390625;
ax=X_Read * gains;
ay=Y_Read * gains;
az=Z_Read * gains;

}

コードをアップロードした後、シリアルモニターを開いてテスト結果を観察します。このセンサーの出力は、重力単位「g」に変換された3軸加速度情報です。

参考資料


以下の2つの図は、結果の物理的な意味を理解するのに役立ちます。 最初の図は各軸の方向についてです:

2番目の図はいくつかの例を示しています:

オンライン回路図ビューア

リソース


技術サポートと製品ディスカッション

弊社製品をお選びいただきありがとうございます!製品の使用体験をスムーズにするために、さまざまなサポートを提供しています。異なる好みやニーズに対応するため、いくつかのコミュニケーションチャネルを用意しています。

Loading Comments...