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_V6 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_ */