9軸センサ (IMU)
概要
9軸センサ (IMU) の単体テストを行うためのページ 9軸センサとは,以下のセンサがそれぞれ3軸あることによる
- 加速度
- 角加速度
- 地磁気
機器詳細
BMX055 使用 9軸センサーモジュール http://akizukidenshi.com/catalog/g/gK-13010/ (opens in a new tab)
回路図
素子 Pin | Arduino Pin | 備考 |
---|---|---|
VCC | 5V | 5V 電源 |
VCCIO | 5V | 5V 電源 |
3V3 | 3V3 | 3.3V 電源 |
GND | GND | GND |
SDA | A4 (SDA) | I2C のシリアルデータ |
SCL | A5 (SCL) | I2C のシリアルクロック |
- 通信は I2C
- 電圧は 5V
- 電源電圧,通信電圧は,素子のジャンパで 5V と 3.3V で選択可能
- ここでは, JP6 のみをショートさせ,ともに 5V として使用している
- 詳細はデータシートを参照のこと
注意
- 180度回転させても刺さってしまうが,そうすると 3.3V と GND がショートしセンサが壊れてしまうので,注意すること!
- これは秋月電子のもの (BMX055) である。スイッチサイエンスのもの (Pololu MinIMU-9 v5) の場合は こちら を参照すること。
ソースコード
test_imu.ino
#include <CanSatSchool.h>
// IMU の宣言
IMU imu;
void setup()
{
// ロガーを初期化
logger.enableComputer();
// Wire (Arduino-I2C) を初期化
// IMU は I2C を使用するためこれが必要
Wire.begin();
// IMU を初期化
imu.init();
delay(500);
}
void loop()
{
// IMU の値を取得してシリアルモニタに表示
logger.info(imu.read());
// IMU の値を取得して変数に代入したい場合
// auto acc = imu.readAccel(); // 加速度
// auto gyro = imu.readGyro(); // 角速度
// auto mag = imu.readMag(); // 地磁気
// x, y, z それぞれの値を取り出したい場合
// float acc_x = acc.x; // 加速度 x 方向
// float acc_y = acc.y; // 加速度 y 方向
// float acc_z = acc.z; // 加速度 z 方向
// float gyro_x = gyro.x; // 角速度 x 方向
// float gyro_y = gyro.y; // 角速度 y 方向
// float gyro_z = gyro.z; // 角速度 z 方向
// float mag_x = mag.x; // 地磁気 x 方向
// float mag_y = mag.y; // 地磁気 y 方向
// float mag_z = mag.z; // 地磁気 z 方向
// 1s 待つ
delay(1000);
}