差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
arduino:lsm6ds3_6軸ジャイロ [2019/11/20 15:34] – [Madgwick] baba | arduino:lsm6ds3_6軸ジャイロ [2019/11/20 15:36] (現在) – [Low Power Mode] baba | ||
---|---|---|---|
行 3: | 行 3: | ||
具体的には下記ページのDocumentationに従ってください. | 具体的には下記ページのDocumentationに従ってください. | ||
* https:// | * https:// | ||
+ | * データシート:https:// | ||
===== Madgwick ===== | ===== Madgwick ===== | ||
MadwickのFilterを利用するととても簡単にデバイス角度計算ができます. | MadwickのFilterを利用するととても簡単にデバイス角度計算ができます. | ||
行 14: | 行 15: | ||
* low power mode(30-40uA) | * low power mode(30-40uA) | ||
の状態を分けることで消費電力を落としています.なので例えばデバイスをスリープさせたいときには,6軸センサをlow powerモードにして interruptをONにして,それ以外の機能を寝かせる.という段取りになります. | の状態を分けることで消費電力を落としています.なので例えばデバイスをスリープさせたいときには,6軸センサをlow powerモードにして interruptをONにして,それ以外の機能を寝かせる.という段取りになります. | ||
+ | |||
+ | < | ||
+ | // | ||
+ | uint8_t errorAccumulator = 0; | ||
+ | |||
+ | errorAccumulator += imu.writeRegister(LSM6DS3_ACC_GYRO_CTRL6_G, | ||
+ | errorAccumulator += imu.writeRegister(LSM6DS3_ACC_GYRO_CTRL7_G, | ||
+ | // //Now, write the patched together data | ||
+ | // 10h | ||
+ | errorAccumulator += imu.writeRegister(LSM6DS3_ACC_GYRO_CTRL1_XL, | ||
+ | // 11h | ||
+ | errorAccumulator += imu.writeRegister(LSM6DS3_ACC_GYRO_CTRL2_G, | ||
+ | |||
+ | //Set the ODR bit | ||
+ | /* | ||
+ | uint8_t dataToWrite; | ||
+ | errorAccumulator += imu.readRegister(& | ||
+ | Serial.println(dataToWrite, | ||
+ | dataToWrite &= ~((uint8_t)LSM6DS3_ACC_GYRO_BW_SCAL_ODR_ENABLED); | ||
+ | Serial.println(dataToWrite, | ||
+ | */ | ||
+ | // Enable tap detection on X, Y, Z axis, but do not latch output | ||
+ | errorAccumulator += imu.writeRegister( LSM6DS3_ACC_GYRO_TAP_CFG1, | ||
+ | |||
+ | // Set tap threshold | ||
+ | // Write 0Ch into TAP_THS_6D | ||
+ | errorAccumulator += imu.writeRegister( LSM6DS3_ACC_GYRO_TAP_THS_6D, | ||
+ | |||
+ | // Set Duration, Quiet and Shock time windows | ||
+ | // Write 7Fh into INT_DUR2 | ||
+ | errorAccumulator += imu.writeRegister( LSM6DS3_ACC_GYRO_INT_DUR2, | ||
+ | |||
+ | // Single & Double tap enabled (SINGLE_DOUBLE_TAP = 1) | ||
+ | // Write 80h into WAKE_UP_THS | ||
+ | errorAccumulator += imu.writeRegister( LSM6DS3_ACC_GYRO_WAKE_UP_THS, | ||
+ | |||
+ | // Single tap interrupt driven to INT1 pin -- enable latch | ||
+ | // Write 08h into MD1_CFG | ||
+ | errorAccumulator += imu.writeRegister( LSM6DS3_ACC_GYRO_MD1_CFG, | ||
+ | </ | ||
+ | |||
+ | |||