Antonia Baumgartner / Mbed 2 deprecated YB_copy

Dependencies:   mbed

Fork of Versuch21 by Antonia Baumgartner

Committer:
baumgant
Date:
Wed May 09 13:33:59 2018 +0000
Revision:
5:93d3efe46493
Parent:
0:b886f13e4ac6
PES2;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
baumgant 0:b886f13e4ac6 1 #ifndef CONTROLLER_H_
baumgant 0:b886f13e4ac6 2 #define CONTROLLER_H_
baumgant 0:b886f13e4ac6 3 #include <cstdlib>
baumgant 0:b886f13e4ac6 4 #include <mbed.h>
baumgant 0:b886f13e4ac6 5 #include "EncoderCounter.h"
baumgant 0:b886f13e4ac6 6 #include "LowpassFilter.h"
baumgant 0:b886f13e4ac6 7
baumgant 0:b886f13e4ac6 8 class Controller
baumgant 0:b886f13e4ac6 9 {
baumgant 0:b886f13e4ac6 10
baumgant 0:b886f13e4ac6 11 public:
baumgant 0:b886f13e4ac6 12
baumgant 0:b886f13e4ac6 13 Controller(PwmOut& pwmLeft, PwmOut& pwmRight,
baumgant 0:b886f13e4ac6 14 EncoderCounter& counterLeft, EncoderCounter& counterRight);
baumgant 0:b886f13e4ac6 15
baumgant 0:b886f13e4ac6 16 virtual ~Controller();
baumgant 0:b886f13e4ac6 17 void setDesiredSpeedLeft(float desiredSpeedLeft);
baumgant 0:b886f13e4ac6 18 void setDesiredSpeedRight(float desiredSpeedRight);
baumgant 0:b886f13e4ac6 19 void resetCounter();
baumgant 5:93d3efe46493 20 float getSpeedLeft();
baumgant 5:93d3efe46493 21 float getSpeedRight();
baumgant 5:93d3efe46493 22 float getIntegralLeft();
baumgant 5:93d3efe46493 23 float getIntegralRight();
baumgant 5:93d3efe46493 24 float getProportionalLeft();
baumgant 5:93d3efe46493 25 float getProportionalRight();
baumgant 0:b886f13e4ac6 26
baumgant 0:b886f13e4ac6 27 private:
baumgant 0:b886f13e4ac6 28
baumgant 0:b886f13e4ac6 29 static const float PERIOD;
baumgant 5:93d3efe46493 30 static const float COUNTS_PER_TURN;
baumgant 0:b886f13e4ac6 31 static const float LOWPASS_FILTER_FREQUENCY;
baumgant 0:b886f13e4ac6 32 static const float KN;
baumgant 0:b886f13e4ac6 33 static const float KP;
baumgant 5:93d3efe46493 34 static const float KI;
baumgant 5:93d3efe46493 35 static const float I_MAX;
baumgant 0:b886f13e4ac6 36 static const float MAX_VOLTAGE;
baumgant 0:b886f13e4ac6 37 static const float MIN_DUTY_CYCLE;
baumgant 0:b886f13e4ac6 38 static const float MAX_DUTY_CYCLE;
baumgant 0:b886f13e4ac6 39
baumgant 0:b886f13e4ac6 40 PwmOut& pwmLeft;
baumgant 0:b886f13e4ac6 41 PwmOut& pwmRight;
baumgant 0:b886f13e4ac6 42 EncoderCounter& counterLeft;
baumgant 0:b886f13e4ac6 43 EncoderCounter& counterRight;
baumgant 0:b886f13e4ac6 44 short previousValueCounterLeft;
baumgant 0:b886f13e4ac6 45 short previousValueCounterRight;
baumgant 0:b886f13e4ac6 46 LowpassFilter speedLeftFilter;
baumgant 0:b886f13e4ac6 47 LowpassFilter speedRightFilter;
baumgant 0:b886f13e4ac6 48 float desiredSpeedLeft;
baumgant 0:b886f13e4ac6 49 float desiredSpeedRight;
baumgant 0:b886f13e4ac6 50 float actualSpeedLeft;
baumgant 0:b886f13e4ac6 51 float actualSpeedRight;
baumgant 5:93d3efe46493 52 float iSumLeft;
baumgant 5:93d3efe46493 53 float iSumRight;
baumgant 0:b886f13e4ac6 54 Ticker ticker;
baumgant 0:b886f13e4ac6 55
baumgant 0:b886f13e4ac6 56 void run();
baumgant 0:b886f13e4ac6 57
baumgant 0:b886f13e4ac6 58 };
baumgant 0:b886f13e4ac6 59
baumgant 0:b886f13e4ac6 60 #endif /* CONTROLLER_H_ */
baumgant 0:b886f13e4ac6 61
baumgant 0:b886f13e4ac6 62
baumgant 0:b886f13e4ac6 63
baumgant 0:b886f13e4ac6 64
baumgant 0:b886f13e4ac6 65