P1 Fertig

Dependencies:   mbed

Controller.h

Committer:
kueenste
Date:
2018-02-23
Revision:
3:86f7471eaa79
Parent:
2:ff4efefe7a1f

File content as of revision 3:86f7471eaa79:

#ifndef CONTROLLER_H_
#define CONTROLLER_H_
#include <cstdlib>
#include <mbed.h>
#include "EncoderCounter.h"
#include "LowpassFilter.h"
class Controller
{
public:
    Controller(PwmOut& pwmLeft, PwmOut& pwmRight,
               EncoderCounter& counterLeft, EncoderCounter& counterRight);
    virtual ~Controller();
    void setDesiredSpeedLeft(float desiredSpeedLeft);
    void setDesiredSpeedRight(float desiredSpeedRight);
    float getSpeedLeft();
    float getSpeedRight();
private:
    static const float PERIOD;
    static const float COUNTS_PER_TURN;
    static const float LOWPASS_FILTER_FREQUENCY;
    static const float KN;
    static const float KP;
    static const float MAX_VOLTAGE;
    static const float MIN_DUTY_CYCLE;
    static const float MAX_DUTY_CYCLE;
    PwmOut& pwmLeft;
    PwmOut& pwmRight;
    EncoderCounter& counterLeft;
    EncoderCounter& counterRight;
    short previousValueCounterLeft;
    short previousValueCounterRight;
    LowpassFilter speedLeftFilter;
    LowpassFilter speedRightFilter;
    float desiredSpeedLeft;
    float desiredSpeedRight;
    float actualSpeedLeft;
    float actualSpeedRight;
    Ticker ticker;
    void run();
};
#endif /* CONTROLLER_H_ */