A quadcopter control Software (Still in development). achieved single axis stability!!!!! released for others benefit. if you'd like to help co-develop this code, then please let me know

Dependencies:   MovingAverageFilter MyI2C PID RC mbed-rtos mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers MPU6050.h Source File

MPU6050.h

00001 #ifndef MPU6050_H
00002 #define MPU6050_H
00003 
00004 #include "mbed.h"
00005 #include "MyI2C.h"
00006 #include "MAF.h"
00007 
00008 #define MPU_ADDRESS 0x68
00009 #define GyroScale  16.4f
00010 #define AccScale   4096
00011 #define ToRad(x) (x*0.01745329252)  // *pi/180
00012 #define ToDeg(x) (x*57.2957795131)  // *180/pi
00013 
00014 extern MyI2C I2C0;
00015 
00016 class MPU6050
00017 {
00018 
00019 public:
00020 
00021  MPU6050(void);
00022 float filtered_Gyro[3],filtered_Acc[3];
00023 float Scaled_GyroX,Scaled_GyroY,Scaled_GyroZ;
00024 float Scaled_AccX,Scaled_AccY,Scaled_AccZ;
00025 int Raw_AccX,Raw_AccY,Raw_AccZ;
00026 float GyroOffset[3],AccOffset[3];
00027 float accangle[2];
00028 float Acceleration_Magnitude;
00029 bool Panic;
00030 
00031 
00032 bool CheckConnection(void);
00033 
00034 void MPU_Setup(void);
00035 
00036 void ScaledGyro(void);
00037 
00038 void ScaledAcc(void);
00039 
00040 void RawAcc(void);
00041 
00042 void CalibrateGyro(void);
00043 
00044 void CalibrateAcc(void);
00045 
00046 void GyroRate(void);
00047 
00048 void Acc(void);
00049 
00050 void filterGyro(void);
00051 
00052 void filterAcc(void);
00053 
00054 void AccAngle(void);
00055 
00056 private:
00057 
00058 MAF filter_AccX,filter_AccY,filter_AccZ; // Moving Average Filter Initiallization 
00059 
00060 MAF filter_GyroX,filter_GyroY,filter_GyroZ;
00061 
00062 void write(char reg,char data);
00063 
00064 int read (char reg);
00065 
00066 };
00067 
00068 #endif