Grove - 3軸デジタル加速度計 200g (ADXL372)
この文書は AI によって翻訳されています。内容に不正確な点や改善すべき点がございましたら、文書下部のコメント欄または以下の Issue ページにてご報告ください。
https://github.com/Seeed-Studio/wiki-documents/issues
当社のウェブサイトでは、さまざまなシナリオやニーズに対応する3軸加速度計を見つけることができます。今回は、産業用グレード、高い安定性、高精度、低消費電力を備えたADI ADXLシリーズの3軸加速度計をご紹介します。
Grove - 3軸デジタル加速度計 ±200g (ADXL372) は、超低消費電力のデジタル出力型 MEMS 加速度計であり、100 mg/LSB のスケールファクターで12ビットの出力を提供します。このセンサーの最も注目すべき特徴は、超低消費電力(測定モードでわずか22μA)と広い測定範囲(±200g)です。すべてのデータはGrove I2Cポートを介して出力され、I2Cアドレスは変更可能です。より広範な測定ニーズに対応するため、サンプリングレートは400Hz/800Hz/1600Hz/3200Hz/6400Hzから選択可能で、帯域幅は200Hz/400Hz/800Hz/1600Hz/3200Hzから選択できます。加速度測定として使用するだけでなく、このモジュールを衝撃やショック検出にも使用することができます。
ADI ADXLシリーズ加速度計には、異なる測定範囲と出力ニーズに対応する4つの製品があります:
製品 | 測定範囲 | 出力ポート | 消費電力 |
---|---|---|---|
Grove - 3軸アナログ加速度計 ±20g (ADXL356B) | ±10 / ±20g | アナログ | 測定モード:150 μA / 待機モード:21 μA |
Grove - 3軸アナログ加速度計 ±40g (ADXL356C) | ±10g / ±40g | アナログ | 測定モード:150 μA / 待機モード:21 μA |
Grove - 3軸デジタル加速度計 ±40g (ADXL357) | ±10g@51200 LSB/g / ±20g@25600 LSB/g / ±40g@12800 LSB/g | デジタル I2C | 測定モード:200μA |
Grove - 3軸デジタル加速度計 ±200g (ADXL372) | ±200g | デジタル I2C | 測定モード:22μA |
特徴
- 広い測定範囲: ±200g
- 超低消費電力: 3200 Hz ODRで22 μA
- 選択可能なオーバーサンプリング比と帯域幅
- ホストプロセッサの負荷を最小化する深い埋め込みFIFO
- 内蔵12ビットアナログ-デジタルコンバーター(ADC)
応用例
- ポータブルなIoTエッジノード
- 脳震盪および頭部外傷の検出
- 衝撃およびショック検出
- 資産の健康評価
ピン配置
仕様
パラメータ | 値 |
---|---|
供給電圧 | 3.3V / 5V |
動作環境温度 | -40 – 125℃ |
XOUT, YOUT, ZOUTの感度 / (V1P8ANAに比例) | ±50mg/°C(通常動作) / ±35mg/°C(低ノイズモード) |
温度による感度変化 | ±0.01%/°C (TA = −40°C ~ +125°C) |
0gオフセット | ±1g(典型値) |
出力インターフェース | デジタル |
対応プラットフォーム
Arduino | Raspberry Pi |
---|---|
はじめに
Arduinoで遊ぶ
必要な材料
Seeeduino V4.2 | Base Shield | Grove 3軸加速度計 ADXL372 |
---|---|---|
今すぐ購入 | 今すぐ購入 | 今すぐ購入 |
さらに、Seeeduino Lotus M0+を検討することもできます。これはSeeeduino V4.2とBase Shieldの組み合わせに相当します。
**1** USBケーブルを優しく差し込んでください。そうしないとポートが損傷する可能性があります。内部に4本のワイヤーがあるUSBケーブルを使用してください。2本のワイヤーしかないケーブルではデータを転送できません。使用しているケーブルが不明な場合は、[こちら](https://www.seeedstudio.com/Micro-USB-Cable-48cm-p-1475.html)をクリックして購入できます。
**2** 各Groveモジュールには購入時にGroveケーブルが付属しています。Groveケーブルを紛失した場合は、[こちら](https://www.seeedstudio.com/Grove-Universal-4-Pin-Buckled-20cm-Cable-%285-PCs-pack%29-p-936.html)をクリックして購入できます。
ハードウェア接続
ステップ1. Grove - 3軸アナログ加速度計 ±200g (ADXL372) をBase ShieldのI2Cポートに接続します。
ステップ2. Grove - Base ShieldをSeeeduinoに差し込みます。
ステップ3. USBケーブルを使用してSeeeduinoをPCに接続します。
ソフトウェア
Arduinoを初めて使用する場合は、開始する前に[Arduinoの使い方](https://wiki.seeedstudio.com/ja/Getting_Started_with_Arduino/)を参照することを強くお勧めします。
ステップ1. Seeed_ADXL_372ライブラリをGithubからダウンロードします。
ステップ2. Arduino用のライブラリをインストールする方法については、ライブラリのインストール方法を参照してください。
ステップ3.
example/ADXL_372/continuous_reading
を開きます。
//continuous_reading.ino
#include "Wire.h"
#include "adxl372.h"
#ifdef ARDUINO_SAMD_VARIANT_COMPLIANCE
#define SERIAL SERIALUSB
#define SYS_VOL 3.3
#else
#define SERIAL Serial
#define SYS_VOL 5
#endif
float cali_data[3];
#define CALI_BUF_LEN 15
#define CALI_INTERVAL_TIME 250
float cali_buf[3][CALI_BUF_LEN];
ADXL372 acc;
xyz_t xyz;
float deal_cali_buf(float *buf)
{
float cali_val = 0;
for(int i = 0;i < CALI_BUF_LEN;i++)
{
cali_val += buf[i];
}
cali_val = cali_val/CALI_BUF_LEN;
return (float)cali_val;
}
void calibration(void)
{
SERIAL.println("モジュールを水平に置いてください!");
delay(1000);
SERIAL.println("キャリブレーションを開始します........");
for(int i=0;i<CALI_BUF_LEN;i++)
{
while (!(acc.status() & DATA_READY));
acc.read(&xyz);
cali_buf[0][i] = xyz.x;
cali_buf[1][i] = xyz.y;
cali_buf[2][i] = xyz.z;
delay(CALI_INTERVAL_TIME);
SERIAL.print('.');
}
SERIAL.println('.');
for(int i=0;i<3;i++)
{
cali_data[i] = deal_cali_buf(cali_buf[i]);
if(2 == i){
cali_data[i] -= 10;
}
SERIAL.println(cali_data[i]);
}
SERIAL.println("キャリブレーション完了!!");
}
void setup() {
SERIAL.begin(115200);
acc.begin();
SERIAL.println(acc.id(), HEX);
acc.timing_ctrl(RATE_400);
acc.measurement_ctrl(BW_200, true);
acc.power_ctrl(MEASUREMENT_MODE);
acc.setActiveTime(10);
calibration();
}
void loop() {
if (acc.status() & DATA_READY) {
acc.read(&xyz);
SERIAL.print("X軸加速度 = ");
SERIAL.print((xyz.x - cali_data[0]) / 10.0);
SERIAL.println(" g ");
SERIAL.print("Y軸加速度 = ");
SERIAL.print((xyz.y - cali_data[1]) / 10.0);
SERIAL.println(" g ");
SERIAL.print("Z軸加速度 = ");
SERIAL.print((xyz.z - cali_data[2]) / 10.0);
SERIAL.println(" mg ");
}
SERIAL.println(" ");
SERIAL.println(" ");
delay(1000);
}
ステップ4. デモをアップロードします。コードのアップロード方法がわからない場合は、コードのアップロード方法を確認してください。
ステップ5. Arduino IDEのシリアルモニタを開きます。ツール -> シリアルモニタをクリックするか、++ctrl+shift+m++キーを同時に押します。ボーレートを115200に設定します。
ステップ6. キャリブレーション キャリブレーションが完了するまで数秒待ちます。
ステップ7. これでセンサーを使用できるようになり、出力は以下のようになります:
モジュールを水平に置いてください!
キャリブレーションを開始します........
................
18.07
-10.73
-40.13
キャリブレーション完了!!
X軸加速度 = 0.09 g
Y軸加速度 = 0.17 g
Z軸加速度 = 1.31 mg
X軸加速度 = -0.11 g
Y軸加速度 = -0.03 g
Z軸加速度 = 1.31 mg
回路図オンラインビューア
リソース
技術サポートと製品ディスカッション
弊社製品をお選びいただきありがとうございます!製品をご利用いただく際にスムーズな体験を提供するため、さまざまなサポートを用意しております。異なる好みやニーズに対応するため、複数のコミュニケーションチャネルを提供しています。