Six crescent shaped legs

Dependencies:   mbed

Committer:
sim642
Date:
Tue Apr 12 21:48:53 2016 +0000
Revision:
17:cb8ad2fc76e5
Parent:
16:4161d7af6b5a
Child:
18:1437610bea8b
Add rotate speed limiting functionality

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sim642 3:2235787e78c4 1 #ifndef ENCODER_MOTOR_H
sim642 3:2235787e78c4 2 #define ENCODER_MOTOR_H
sim642 3:2235787e78c4 3
sim642 3:2235787e78c4 4 #include "Motor.hpp"
sim642 6:9f9047ca4a89 5 #include "SpeedEncoder.hpp"
sim642 12:8de7f5d56fe4 6 #include "LerpSmoother.hpp"
sim642 13:dc5f5f19e4e8 7 #include "PIDController.hpp"
sim642 17:cb8ad2fc76e5 8 #include <limits>
sim642 3:2235787e78c4 9
sim642 3:2235787e78c4 10 class EncoderMotor : public Motor
sim642 3:2235787e78c4 11 {
sim642 3:2235787e78c4 12 public:
sim642 16:4161d7af6b5a 13 enum Mode
sim642 16:4161d7af6b5a 14 {
sim642 16:4161d7af6b5a 15 NoMode,
sim642 16:4161d7af6b5a 16 SpeedMode,
sim642 16:4161d7af6b5a 17 TurnMode
sim642 16:4161d7af6b5a 18 };
sim642 16:4161d7af6b5a 19
sim642 13:dc5f5f19e4e8 20 EncoderMotor(MotorData nData, EncoderData encData, PIDData speedPIDData, PIDData turnPIDData);
sim642 3:2235787e78c4 21 void setup();
sim642 3:2235787e78c4 22
sim642 16:4161d7af6b5a 23 virtual void drive(float speed);
sim642 17:cb8ad2fc76e5 24 virtual void rotate(float turn, float speedLimit = std::numeric_limits<float>::max());
sim642 5:7f800f61cb13 25
sim642 16:4161d7af6b5a 26 private:
sim642 3:2235787e78c4 27 void tick();
sim642 3:2235787e78c4 28
sim642 16:4161d7af6b5a 29 Ticker ticker;
sim642 16:4161d7af6b5a 30
sim642 11:a0976d3b33c5 31 SpeedEncoder encoder;
sim642 12:8de7f5d56fe4 32 LerpSmoother speedSmoother;
sim642 3:2235787e78c4 33
sim642 16:4161d7af6b5a 34 Mode mode;
sim642 3:2235787e78c4 35
sim642 16:4161d7af6b5a 36 PIDController speedPID;
sim642 16:4161d7af6b5a 37 float setSpeed;
sim642 5:7f800f61cb13 38
sim642 13:dc5f5f19e4e8 39 PIDController turnPID;
sim642 16:4161d7af6b5a 40 float setTurn;
sim642 17:cb8ad2fc76e5 41 float turnSpeedLimit;
sim642 3:2235787e78c4 42 };
sim642 3:2235787e78c4 43
sim642 3:2235787e78c4 44 #endif // ENCODER_MOTOR_H