arduino:lsm6ds3_6軸ジャイロ

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン 前のリビジョン
次のリビジョン
前のリビジョン
arduino:lsm6ds3_6軸ジャイロ [2019/03/14 16:41] – [LSM6DS3 IMU] babaarduino:lsm6ds3_6軸ジャイロ [2019/11/20 15:36] (現在) – [Low Power Mode] baba
行 3: 行 3:
 具体的には下記ページのDocumentationに従ってください. 具体的には下記ページのDocumentationに従ってください.
   * https://github.com/sparkfun/SparkFun_LSM6DS3_Arduino_Library   * https://github.com/sparkfun/SparkFun_LSM6DS3_Arduino_Library
 +  * データシート:https://cdn.sparkfun.com/assets/learn_tutorials/4/1/6/DM00133076.pdf
 ===== Madgwick ===== ===== Madgwick =====
 MadwickのFilterを利用するととても簡単にデバイス角度計算ができます. MadwickのFilterを利用するととても簡単にデバイス角度計算ができます.
   - Arduinoのライブラリ管理から,madgwickと検索しMadgwick: Helpers for MadgwickAHRS algorithmをインストールする.   - Arduinoのライブラリ管理から,madgwickと検索しMadgwick: Helpers for MadgwickAHRS algorithmをインストールする.
-  - Exampleに追加される,Madgwick->Misualize101をまずは確認する.+  - Exampleに追加される,Madgwick->Visualize101をまずは確認する. 
 + 
 +===== Low Power Mode ===== 
 +この6軸センサは基本的にスリープで消費電力を落とす,という考えではなく, 
 +  * Hi performance mode(1.2mA) 
 +  * normal mode(300,400uA) 
 +  * low power mode(30-40uA) 
 +の状態を分けることで消費電力を落としています.なので例えばデバイスをスリープさせたいときには,6軸センサをlow powerモードにして interruptをONにして,それ以外の機能を寝かせる.という段取りになります. 
 + 
 +<code> 
 + //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 ); 
 +</code> 
  
  
  • /home/users/2/lolipop.jp-4404d470cd64c603/web/ws/data/attic/arduino/lsm6ds3_6軸ジャイロ.1552549308.txt.gz
  • 最終更新: 2019/03/14 16:41
  • by baba