New version of quadcopter software written to OO principles

Dependencies:   mbed MODSERIAL filter mbed-rtos ConfigFile PID PPM FreeIMU_external_magnetometer TinyGPS

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers MotorMixer.h Source File

MotorMixer.h

00001 #include "mbed.h"
00002 #include "Global.h"
00003 #include "PidWrapper.h"
00004 #include "NavigationController.h"
00005 
00006 #ifndef MotorMixer_H
00007 #define MotorMixer_H
00008 
00009 class MotorMixer
00010 {
00011   public:                 
00012     MotorMixer(PinName motor1, PinName motor2, PinName motor3, PinName motor4);   
00013     ~MotorMixer();
00014     
00015     struct MotorPower
00016     {
00017        double motor1;
00018        double motor2;
00019        double motor3;
00020        double motor4;
00021     };
00022     
00023     void computePower(PidWrapper::PidOutput pidOutput, double throttle);
00024     void computePower(double throttle);
00025     void setPower(double motorPower);
00026     void setPower(double motor1Power, double motor2Power, double motor3Power, double motor4Power);
00027     void setPower(MotorMixer::MotorPower motorPower);
00028     MotorPower getMotorPower();
00029     
00030   private:
00031     PwmOut*  _motor1;
00032     PwmOut*  _motor2;
00033     PwmOut*  _motor3;
00034     PwmOut*  _motor4;
00035     
00036     MotorPower _motorPower; 
00037 };
00038 
00039 #endif