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

Currently on hold, due to the fact that i don't own a RX/TX system

MPU/MPU6050.h

Committer:
KarimAzzouz
Date:
2013-08-27
Revision:
1:e08a4f517989

File content as of revision 1:e08a4f517989:

#ifndef MPU6050_H
#define MPU6050_H

#include "mbed.h"
#include "MyI2C.h"
#include "MAF.h"

#define MPU_ADDRESS 0x68
#define GyroScale  16.4f
#define AccScale   4096
#define ToRad(x) (x*0.01745329252)  // *pi/180
#define ToDeg(x) (x*57.2957795131)  // *180/pi

extern MyI2C I2C0;

class MPU6050
{

public:

 MPU6050(void);
float filtered_Gyro[3],filtered_Acc[3];
float Scaled_GyroX,Scaled_GyroY,Scaled_GyroZ;
float Scaled_AccX,Scaled_AccY,Scaled_AccZ;
int Raw_AccX,Raw_AccY,Raw_AccZ;
float GyroOffset[3],AccOffset[3];
float accangle[2];
float Acceleration_Magnitude;
bool Panic;


bool CheckConnection(void);

void MPU_Setup(void);

void ScaledGyro(void);

void ScaledAcc(void);

void RawAcc(void);

void CalibrateGyro(void);

void CalibrateAcc(void);

void GyroRate(void);

void Acc(void);

void filterGyro(void);

void filterAcc(void);

void AccAngle(void);

private:

MAF filter_AccX,filter_AccY,filter_AccZ; // Moving Average Filter Initiallization 

MAF filter_GyroX,filter_GyroY,filter_GyroZ;

void write(char reg,char data);

int read (char reg);

};

#endif