d

Dependencies:   mbed

Fork of MyClass by Roboshark

Committer:
fluckmi1
Date:
Thu Apr 19 11:53:52 2018 +0000
Revision:
0:af3f2e5c9cd4
peace

Who changed what in which revision?

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