Thanks Erik Olieman for his beta library, that saved me a huge amount of time when getting Raw data from MPU6050 module! I was able to update this library by adding additional functions, which would allow a fast angle calculation by using complementary filter. I will probably be updating this library more soon to add additional functionality or make some changes that would look sensible.

Dependents:   QuadcopterProgram 3DTracking ControlYokutan2017 Gyro ... more

Fork of MPU6050 by Erik -

Revision:
5:5873df1e58be
Parent:
4:268d3fcb92ba
Child:
6:502448484f91
--- a/MPU6050.cpp	Thu Feb 12 20:36:53 2015 +0000
+++ b/MPU6050.cpp	Thu Feb 12 20:56:04 2015 +0000
@@ -158,6 +158,29 @@
     data[Z_AXIS] = atan (sqrt(pow(temp[X_AXIS], 2) + pow(temp[Y_AXIS], 2))/temp[Z_AXIS]) * RADIANS_TO_DEGREES; //not sure what is this one :D
     
 }
+void MPU6050::getOffset(float *accOffset, float *gyroOffset, int sampleSize){
+    float gyro[3];      
+    float accAngle[3];
+    
+    for (int i = 0; i < 3; i++) //initialise to 0.0 offsets
+    {
+        accOffset[i] = 0.0;
+        gyroOffset[i] = 0.0;
+    }
+    
+    for (int i = 0; i < sampleSize; i++)
+    {
+        mpu.getGyro(gyro); //take real life measurements  
+        mpu.getAcceleroAngle (accAngle);
+        
+        for (int j = 0; j < 3; j++)
+        {
+            *(accOffset+j) += accAngle[j]/sampleSize;    //average measurements
+            *(gyroOffset+j) += gyro[j]/sampleSize;
+        }
+        wait (0.01);    //wait between each reading for accuracy (maybe will not need later on) ****))#$(#@)$@#)(#@(%)@#(%@)(#%#@$--------------
+    } 
+}
 //--------------------------------------------------
 //------------------Gyroscope-----------------------
 //--------------------------------------------------