Device
9軸センサ (IMU)

9軸センサ (IMU)

概要

9軸センサ (IMU) の単体テストを行うためのページ 9軸センサとは,以下のセンサがそれぞれ3軸あることによる

  • 加速度
  • 角加速度
  • 地磁気

機器詳細

BMX055 使用 9軸センサーモジュール http://akizukidenshi.com/catalog/g/gK-13010/ (opens in a new tab)

回路図

素子 PinArduino Pin備考
VCC5V5V 電源
VCCIO5V5V 電源
3V33V33.3V 電源
GNDGNDGND
SDAA4 (SDA)I2C のシリアルデータ
SCLA5 (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);
}
 

GitHub (opens in a new tab)