#201 3Axis I2C Brick
Overview
3軸加速度センサーを使用したBrickです。
I2Cで3軸の加速度データを取得することがきます。
センサー取得データについて
このBrickでは下の図の3軸の値を取得します。
それぞれ矢印の方向に力がかかるとプラス、逆方向ではマイナスとなります。
なお、このBrickを水平に置いた場合、重力がZ軸にかかっている状態となるので、X軸、Y軸が0に近く、Z軸のみ高い値となります。
接続
4Pinケーブルで、OUT/INシールドのI2Cコネクタへ接続します。
※4Pinケーブル、各種OUT/INシールド、各種ケースは別売です。
ADXL345 Datasheet
Register
回路図
Library
ライブラリ名:「FaBo 201 3Axis ADXL345」
ソースコード 1
I2Cコネクタに接続した3Axis I2C Brickより3軸の加速度情報を取得し、シリアルモニタに出力します。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 | /**
@file accelerometer.ino
@brief This is an Example for the FaBo 3AXIS I2C Brick.
http://fabo.io/201.html
Released under APACHE LICENSE, VERSION 2.0
http://www.apache.org/licenses/
@author FaBo<info@fabo.io>
*/
#include <Wire.h>
#include <FaBo3Axis_ADXL345.h>
FaBo3Axis fabo3axis;
void setup()
{
Serial.begin(9600); // シリアルの開始デバック用
Serial.println("Checking I2C device...");
if(fabo3axis.searchDevice()){
Serial.println("I am ADXL345");
}
Serial.println("Init...");
fabo3axis.configuration();
fabo3axis.powerOn();
}
void loop() {
int x;
int y;
int z;
fabo3axis.readXYZ(&x,&y,&z);
Serial.print("x: ");
Serial.print(x);
Serial.print(", y: ");
Serial.print(y);
Serial.print(", z: ");
Serial.println(z);
delay(1000);
}
|
ソースコード 2
シングルタップとダブルタップを取得する例です。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 | /**
@file accelerometer.ino
@brief This is an Example for the FaBo 3AXIS I2C Brick.
http://fabo.io/201.html
Released under APACHE LICENSE, VERSION 2.0
http://www.apache.org/licenses/
@author FaBo<info@fabo.io>
*/
#include <Wire.h>
#include <FaBo3Axis_ADXL345.h>
FaBo3Axis fabo3axis;
void setup()
{
Serial.begin(9600); // シリアルの開始デバック用
Serial.println("Checking I2C device...");
if(fabo3axis.searchDevice()){
Serial.println("I am ADXL345");
fabo3axis.configuration();
fabo3axis.powerOn();
fabo3axis.enableTap();
}
}
void loop() {
byte tap = fabo3axis.readIntStatus();
if(fabo3axis.isDoubleTap(tap)){
Serial.println("Double Tap");
} else if(fabo3axis.isSingleTap(tap)){
Serial.println("Single Tap");
}
delay(10);
}
|
Parts
GitHub
- https://github.com/FaBoPlatform/FaBo3Axis-ADXL345-Library