added gy80 dcm

Dependencies:   mbed DCM_AHRS_GY80 PID MMA8451Q

Fork of quadCommand by Greg Abdo

quadCommand/quadCommand.h

Committer:
dereklmc
Date:
2013-06-10
Revision:
17:d73944c3c945
Parent:
16:84c7db5b4464
Child:
19:666261bbc111

File content as of revision 17:d73944c3c945:

/************************* quadCommand.h *********************************/
/*                                                                       */
/*************************************************************************/

#ifndef QUAD_COMMAND_H
#define QUAD_COMMAND_H

#include "mbed.h"
#include "motor.h"
#include "com.h"
#include "sensors.h"
#include "PID/PID.h"

// Motor constants.
const PinName MOTOR1    =   PTD4;   // Pin used for motor 1.
const PinName MOTOR2    =   PTA12;  // Pin used for motor 2.
const PinName MOTOR3    =   PTA4;   // Pin used for motor 3.
const PinName MOTOR4    =   PTA5;   // Pin used for motor 4.

// Xbee constants.
const PinName TXPIN     =   PTD3;   // Pin used for xbee TX.
const PinName RXPIN     =   PTD2;   // Pin used for xbee RX.

// Sensor constants.
#define MMA8451_I2C_ADDRESS (0x1d<<1)   // Address of I2C accelerometer.
const PinName ACCSDA    =   PTE25;  // Pin for accelerometer SDA line.
const PinName ACCSCL    =   PTE24;  // Pin for accelerometer SCL line.

// PID constants.
#define DEFAULT_WINDUP_GUARD 20.0f  

class quadCommand 
{
    public:
        quadCommand();          // Constructor.
        void run();             // Loop.
        void rxInput();         // Deal with new input from xbee.
        void updateMotors();
    
    private:
        motor *myMotors[4];     // Array of motor objects.
        com *myCom;             // The com object.
        sensors *world;         // Sensors used to observe the world.
        
        float currentThrottle;
        float currentPitch;
        float currentRoll;
        float currentYaw;
        
        float targetThrottle;
        float targetPitch;
        float targetRoll;
        float targetYaw;
        
        PID pidThrottle;
        PID pidPitch;
        PID pidRoll;
        PID pidYaw;
        
        static const float MOTOR_UPDATE;
};

#endif