Jump to content
I2Cdevlib Forums


  • Posts

  • Joined

  • Last visited

javo's Achievements


Newbie (1/14)



  1. My question is simple. Is it possible to use the DMP output without using the interruptions method? My goal is also simple. I'm trying to read 3D acceleration without gravity by taking advantage of the actual dedicated processor for that task. I took the example that comes with the Jeff's library and got it complied and executed just perfectly. The thing is I don't want the interruption system because half I don't completely understand the code, half I need to take samples at a fixed rate. I'm pretty sure the DMP is way faster than my sampling rate, and even though it isn't, skipping a couple of random samples is not an issue in my project. So it would be awesome if I could do just something like this (my imagination coming out now) void loop() { mpu.dmpGetQuaternion(&q, fifoBuffer); mpu.dmpGetAccel(&aa, fifoBuffer); mpu.dmpGetGravity(&gravity, &q); mpu.dmpGetLinearAccel(&aaReal, &aa, &gravity); Serial.print(aaReal.x); // awfully printed just to make my point Serial.print(aaReal.y); Serial.println(aaReal.z); delay(100); } to get acceleration without gravity using only a few functions. Note: I already did the corresponding calibration to get my offsets.
  2. This is what you can find purely in the MPU-6050 official documentation (https://www.invensense.com/products/motion-tracking/6-axis/mpu-6050/) The MPU-6050 has a word lenght of 16 bits, and the raw value is a discretization of the ±2 scale (default). 16 bits long it's a sensitivity 16384 LSB/g. That means 1g equals to a raw value of 16384. Note that for different scales the sensitivity is different too. From now on it's just elementary math to convert raw values to g-unit or any other acceleration unit.
  • Create New...