bool mrd_wire0_init_mpu6050_dmp(AhrsValue &a_ahrs)
MPU6050センサーのDMP(デジタルモーションプロセッサ)を初期化し,
引数 : a_ahrs AHRSの値を保持する構造体.
戻り値 : DMPの初期化が成功した場合はtrue, 失敗した場合はfalseを返す.
/// @brief MPU6050センサーのDMP(デジタルモーションプロセッサ)を初期化し,
/// ジャイロスコープと加速度センサーのオフセットを設定する.
/// @param a_ahrs AHRSの値を保持する構造体.
/// @return DMPの初期化が成功した場合はtrue, 失敗した場合はfalseを返す.
bool mrd_wire0_init_mpu6050_dmp(AhrsValue &a_ahrs) {
a_ahrs.mpu6050.initialize();
a_ahrs.devStatus = a_ahrs.mpu6050.dmpInitialize();
// supply your own gyro offsets here, scaled for min sensitivity
a_ahrs.mpu6050.setXAccelOffset(-1745);
a_ahrs.mpu6050.setYAccelOffset(-1034);
a_ahrs.mpu6050.setZAccelOffset(966);
a_ahrs.mpu6050.setXGyroOffset(176);
a_ahrs.mpu6050.setYGyroOffset(-6);
a_ahrs.mpu6050.setZGyroOffset(-25);
// make sure it worked (returns 0 if so)
if (a_ahrs.devStatus == 0) {
a_ahrs.mpu6050.CalibrateAccel(6);
a_ahrs.mpu6050.CalibrateGyro(6);
a_ahrs.mpu6050.setDMPEnabled(true);
a_ahrs.packetSize = a_ahrs.mpu6050.dmpGetFIFOPacketSize();
Serial.println("MPU6050 OK.");
return true;
}
Serial.println("IMU/AHRS DMP Initialization FAILED!");
return false;
}