arduino:lsm6ds3_6軸ジャイロ

LSM6DS3 IMU

このページではLSM6DS3というIMU利用した6軸ジャイロによる姿勢検出を行います. 具体的には下記ページのDocumentationに従ってください.

MadwickのFilterを利用するととても簡単にデバイス角度計算ができます.

  1. Arduinoのライブラリ管理から,madgwickと検索しMadgwick: Helpers for MadgwickAHRS algorithmをインストールする.
  2. Exampleに追加される,Madgwick→Visualize101をまずは確認する.

この6軸センサは基本的にスリープで消費電力を落とす,という考えではなく,

  • Hi performance mode(1.2mA)
  • normal mode(300,400uA)
  • low power mode(30-40uA)

の状態を分けることで消費電力を落としています.なので例えばデバイスをスリープさせたいときには,6軸センサをlow powerモードにして interruptをONにして,それ以外の機能を寝かせる.という段取りになります.

 //Error accumulation variable
  uint8_t errorAccumulator = 0;

  errorAccumulator += imu.writeRegister(LSM6DS3_ACC_GYRO_CTRL6_G, 0b00010000);
  errorAccumulator += imu.writeRegister(LSM6DS3_ACC_GYRO_CTRL7_G, 0b10000000);
  // //Now, write the patched together data
  // 10h
  errorAccumulator += imu.writeRegister(LSM6DS3_ACC_GYRO_CTRL1_XL, 0b00010000);
  // 11h
  errorAccumulator += imu.writeRegister(LSM6DS3_ACC_GYRO_CTRL2_G, 0b00010000);

  //Set the ODR bit
  /*
    uint8_t dataToWrite;
    errorAccumulator += imu.readRegister(&dataToWrite, LSM6DS3_ACC_GYRO_CTRL4_C);
    Serial.println(dataToWrite, BIN);
    dataToWrite &= ~((uint8_t)LSM6DS3_ACC_GYRO_BW_SCAL_ODR_ENABLED);
    Serial.println(dataToWrite, BIN);
  */
  // Enable tap detection on X, Y, Z axis, but do not latch output
  errorAccumulator += imu.writeRegister( LSM6DS3_ACC_GYRO_TAP_CFG1, 0x0E );

  // Set tap threshold
  // Write 0Ch into TAP_THS_6D
  errorAccumulator += imu.writeRegister( LSM6DS3_ACC_GYRO_TAP_THS_6D, 0x03 );

  // Set Duration, Quiet and Shock time windows
  // Write 7Fh into INT_DUR2
  errorAccumulator += imu.writeRegister( LSM6DS3_ACC_GYRO_INT_DUR2, 0x7F );

  // Single & Double tap enabled (SINGLE_DOUBLE_TAP = 1)
  // Write 80h into WAKE_UP_THS
  errorAccumulator += imu.writeRegister( LSM6DS3_ACC_GYRO_WAKE_UP_THS, 0x80 );

  // Single tap interrupt driven to INT1 pin -- enable latch
  // Write 08h into MD1_CFG
  errorAccumulator += imu.writeRegister( LSM6DS3_ACC_GYRO_MD1_CFG, 0x08 );
  • /home/users/2/lolipop.jp-4404d470cd64c603/web/ws/data/pages/arduino/lsm6ds3_6軸ジャイロ.txt
  • 最終更新: 2019/11/20 15:36
  • by baba