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
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
Generated on Mon Jul 18 2022 00:04:58 by 1.7.2