ArduinoGeneral

10 DOF Mems IMU Sensor Can't Initialize With Beetle BLE

userHead Account cancelled 2020-03-18 09:40:12 2261 Views1 Replies
Product SKU: SEN0140
IDE: Arduino IDE v 1.8.12
Libraries:
- FreeSixIMU https://github.com/DFRobot/FreeSixIMU
- HMC5883 https://github.com/DFRobot/DFRobot_QMC5883.git
- BMP280 https://github.com/DFRobot/DFRobot_BMP280.git

Jumping straight into the problem, I am attempting to get any sort of output from the 10 DOF Mems IMU Sensor and have been following the tutorial on the docs (https://wiki.dfrobot.com/10_DOF_Mems_IM ... U__SEN0140).

I currently have the board wired up like this: https://imgur.com/a/lxMd4zP

I am using this code provided in the docs to run a simple test:
Code: Select all
#include <FreeSixIMU.h>
#include <FIMU_ADXL345.h>
#include <FIMU_ITG3200.h>

#include <Wire.h>

float angles[3]; // yaw pitch roll

// Set the FreeSixIMU object
FreeSixIMU sixDOF = FreeSixIMU();

void setup() {
  Serial.begin(9600);
  Wire.begin();
  Serial.println("In setup");

  Serial.println("About to delay");
  delay(5);
  Serial.println("Before sixDOF.init");
  sixDOF.init(); //begin the IMU
  Serial.println("Just began the IMU");
  delay(5);
}

void loop() {

  Serial.println("Before get angles");
  sixDOF.getEuler(angles);
  Serial.println("After get angles");
  Serial.println(angles[0]);
  

  Serial.println(angles[0]);
  Serial.println(" | ");
  Serial.println(angles[1]);
  Serial.println(" | ");
  Serial.println(angles[2]);

  delay(100);
}
Using a few Serial.println statements, I noticed it gets hung up on line 20 (sixDOF.init(); //begin the IMU).
The Bluno Beetle was able to work with a test that simply printed hello world to the serial monitor in a loop, so I believe the problem is with the sensor. Does anyone have any way to fix this error or know of any other ways to debug the device?