Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed PID MMA8451Q
quadCommand/quadCommand.h
- Committer:
- dereklmc
- Date:
- 2013-06-10
- Revision:
- 46:f1eb22f41ebc
- Parent:
- 43:e2fc699e8e8c
- Child:
- 47:adc1a438aa33
File content as of revision 46:f1eb22f41ebc:
/************************* 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.
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.
// Alternative Pins
// RX = PTA1, TX PTA2
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();
void updateCurrent();
void sendTelemetry();
static const float MOTOR_UPDATE;
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;
Ticker sensorProcess;
};
#endif
