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
Fork of Roboshark_V62 by
Controller.h
- Committer:
- Jacqueline
- Date:
- 2018-04-23
- Revision:
- 0:6d0671ae4648
File content as of revision 0:6d0671ae4648:
#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();
float getIntegralLeft();
float getIntegralRight();
float getProportionalLeft();
float getProportionalRight();
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 KI;
static const float I_MAX;
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;
float iSumLeft;
float iSumRight;
Ticker ticker;
void run();
};
#endif /* CONTROLLER_H_ */
