Six crescent shaped legs

Dependencies:   mbed

Committer:
sim642
Date:
Tue Jun 21 14:43:44 2016 +0000
Revision:
47:4f418a4b0051
Parent:
37:8021b3ce241a
Byte based communication

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 18:1437610bea8b 8 #include "SyncGroup.hpp"
sim642 17:cb8ad2fc76e5 9 #include <limits>
sim642 3:2235787e78c4 10
sim642 3:2235787e78c4 11 class EncoderMotor : public Motor
sim642 3:2235787e78c4 12 {
sim642 3:2235787e78c4 13 public:
sim642 16:4161d7af6b5a 14 enum Mode
sim642 16:4161d7af6b5a 15 {
sim642 16:4161d7af6b5a 16 NoMode,
sim642 16:4161d7af6b5a 17 SpeedMode,
sim642 16:4161d7af6b5a 18 TurnMode
sim642 16:4161d7af6b5a 19 };
sim642 16:4161d7af6b5a 20
sim642 18:1437610bea8b 21 EncoderMotor(MotorData nData, EncoderData encData, PIDData speedPIDData, PIDData turnPIDData, SyncGroup *nSync = NULL);
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 37:8021b3ce241a 26 SpeedEncoder& getEncoder();
sim642 23:d844cc906b66 27 float getSetSpeed() const;
sim642 23:d844cc906b66 28 float getSetTurn() const;
sim642 22:bfc79c6ea2fd 29
sim642 23:d844cc906b66 30 //private:
sim642 3:2235787e78c4 31 void tick();
sim642 16:4161d7af6b5a 32
sim642 11:a0976d3b33c5 33 SpeedEncoder encoder;
sim642 12:8de7f5d56fe4 34 LerpSmoother speedSmoother;
sim642 3:2235787e78c4 35
sim642 16:4161d7af6b5a 36 Mode mode;
sim642 3:2235787e78c4 37
sim642 16:4161d7af6b5a 38 PIDController speedPID;
sim642 16:4161d7af6b5a 39 float setSpeed;
sim642 5:7f800f61cb13 40
sim642 13:dc5f5f19e4e8 41 PIDController turnPID;
sim642 16:4161d7af6b5a 42 float setTurn;
sim642 17:cb8ad2fc76e5 43 float turnSpeedLimit;
phairero 36:906323851366 44 float errorTurn;
sim642 18:1437610bea8b 45
sim642 18:1437610bea8b 46 SyncGroup *sync;
sim642 3:2235787e78c4 47 };
sim642 3:2235787e78c4 48
sim642 3:2235787e78c4 49 #endif // ENCODER_MOTOR_H