ジャイロ加速度計(IMU)¶
概要¶
初期ロットに搭載されているI2Cアドレス0x6cで接続されているSH200Qと、I2Cアドレス0x68で接続されているMPU6886を内部で判定してラッピングしているクラスです。
どちらのIMUでも同じようなコードで制御することが可能です。 細かい制御が必要な場合には、個別クラスを直接制御してください。
データシート¶
Doxygenドキュメント¶
メンバー¶
IMU種別 ImuType¶
搭載されているIMUが初期化時に代入される。{ IMU_UNKNOWN = 0, IMU_SH200Q, IMU_MPU6886 }
ImuType IMU::imuType
加速度スケール aRes¶
float IMU::aRes
ジャイロスケール gRes¶
float IMU::gRes
コンストラクタ IMU()¶
処理無し
IMU::IMU()
初期化 Init()¶
内部関数のため、通常は利用しない
int IMU::Init(void)
戻り値
0:成功, -1:失敗
ジャイロのスケール更新 getGres()¶
内部関数のため、通常は利用しない
void IMU::getGres()
加速度のスケール更新 getAres()¶
内部関数のため、通常は利用しない
void IMU::getAres()
加速度取得(スケール補正前) getAccelAdc()¶
スケール補正されていない取得した値
void IMU::getAccelAdc(int16_t *ax, int16_t *ay, int16_t *az)
引数
- int16_t *
ax
X軸加速度(スケール補正前) - int16_t *
ay
Y軸加速度(スケール補正前) - int16_t *
az
Z軸加速度(スケール補正前)
ジャイロ取得(スケール補正前) getGyroAdc()¶
スケール補正されていない取得した値
void IMU::getGyroAdc(int16_t *gx, int16_t *gy, int16_t *gz)
引数
- int16_t *
gx
X軸ジャイロ(スケール補正前) - int16_t *
gy
Y軸ジャイロ(スケール補正前) - int16_t *
gz
Z軸ジャイロ(スケール補正前)
内部温度取得 getTempAdc()¶
内部の温度なので気温ではありません
void IMU::getTempAdc(int16_t *t)
引数
- int16_t *
t
温度Step(温度 = 21.0 + 温度Step / 333.87)
加速度取得(スケール補正後) getAccelData()¶
スケール補正された値
void IMU::getAccelData(float *ax, float *ay, float *az)
引数
- float *
ax
X軸加速度(スケール補正後) - float *
ay
Y軸加速度(スケール補正後) - float *
az
Z軸加速度(スケール補正後)
ジャイロ取得(スケール補正後) getGyroData()¶
スケール補正された値
void IMU::getGyroData(float *gx, float *gy, float *gz)
引数
- float *
gx
X軸ジャイロ(スケール補正後) - float *
gy
Y軸ジャイロ(スケール補正後) - float *
gz
Z軸ジャイロ(スケール補正後)
内部温度取得 getTempData()¶
内部の温度なので気温ではありません
void IMU::getTempData(float *t)
引数
- float *
t
温度
AHRS取得 getAhrsData()¶
3次元空間での回転状態を(ピッチ、ロール、ヨー)を取得します。
void IMU::getAhrsData(float *pitch, float *roll, float *yaw)
引数
- float *
pitch
ピッチ - float *
roll
ロール - float *
yaw
ヨー