added gy80 dcm
Dependencies: mbed DCM_AHRS_GY80 PID MMA8451Q
Fork of quadCommand by
quadCommand/quadCommand.h
- Committer:
- gabdo
- Date:
- 2013-06-11
- Revision:
- 53:cce34958f952
- Parent:
- 52:24590a45b807
- Child:
- 55:bca9c9e92da6
File content as of revision 53:cce34958f952:
/************************* quadCommand.h *********************************/ /* */ /*************************************************************************/ #ifndef QUAD_COMMAND_H #define QUAD_COMMAND_H #include "mbed.h" #include "motor.h" #include "com.h" #include "sensors.h" #include "PID.h" // Motor constants. #define MOTOR1 PTD4 // Pin used for motor 1. #define MOTOR2 PTA12 // Pin used for motor 2. #define MOTOR3 PTA4 // Pin used for motor 3. #define MOTOR4 PTA5 // Pin used for motor 4. // Xbee constants. // Alternative Pins // RX = PTA1, TX PTA2 #define TXPIN PTD3 // Pin used for xbee TX. #define RXPIN PTD2 // Pin used for xbee RX. // Sensor constants. #define MMA8451_I2C_ADDRESS (0x1d<<1) // Address of I2C accelerometer. #define ACCSDA PTE25 // Pin for accelerometer SDA line. #define ACCSCL PTE24 // Pin for accelerometer SCL line. #define SENSSOR_DELAY 100.0f // PID constants. #define DEFAULT_WINDUP_GUARD 20.0f #define MOTOR_UPDATE 100.0f class quadCommand { public: quadCommand(); // Constructor. void run(); // The main loop. void rxInput(); // Receive data from the Xbee. void updateMotors(); // Send PID values to the motors. void updateCurrent(); // Update the current telemetry. void sendTelemetry(); // Transmit the current telemetry. private: motor *myMotors[4]; // Array of motor objects. com *myCom; // The com object for Xbee communication. sensors *world; // Sensors used to observe the world. PID pidThrottle; // PID for throttle. PID pidPitch; // PID for pitch. PID pidRoll; // PID for roll. PID pidYaw; // PID for yaw. Ticker motorProcess; // Timer for updating the motors. //Ticker sensorProcess; // Timer for getting sensor data. //Ticker sendProcess; // Timer for sending data through the Xbee. float currentThrottle; // Current throttle. float currentPitch; // Current pitch. float currentRoll; // Current roll. float currentYaw; // Current yaw. float targetThrottle; // Desired throttle. float targetPitch; // Desired pitch. float targetRoll; // Desired roll. float targetYaw; // Desired yaw. }; #endif