Six crescent shaped legs

Dependencies:   mbed

Committer:
sim642
Date:
Tue Apr 19 16:03:56 2016 +0000
Revision:
23:d844cc906b66
Parent:
22:bfc79c6ea2fd
Child:
27:24a9ac72fe92
Encoder doesn't work in ticker

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 void setup();
sim642 3:2235787e78c4 23
sim642 16:4161d7af6b5a 24 virtual void drive(float speed);
sim642 17:cb8ad2fc76e5 25 virtual void rotate(float turn, float speedLimit = std::numeric_limits<float>::max());
sim642 5:7f800f61cb13 26
sim642 23:d844cc906b66 27 const SpeedEncoder& getEncoder() const;
sim642 23:d844cc906b66 28 float getSetSpeed() const;
sim642 23:d844cc906b66 29 float getSetTurn() const;
sim642 22:bfc79c6ea2fd 30
sim642 23:d844cc906b66 31 //private:
sim642 3:2235787e78c4 32 void tick();
sim642 3:2235787e78c4 33
sim642 16:4161d7af6b5a 34 Ticker ticker;
sim642 16:4161d7af6b5a 35
sim642 11:a0976d3b33c5 36 SpeedEncoder encoder;
sim642 12:8de7f5d56fe4 37 LerpSmoother speedSmoother;
sim642 3:2235787e78c4 38
sim642 16:4161d7af6b5a 39 Mode mode;
sim642 3:2235787e78c4 40
sim642 16:4161d7af6b5a 41 PIDController speedPID;
sim642 16:4161d7af6b5a 42 float setSpeed;
sim642 5:7f800f61cb13 43
sim642 13:dc5f5f19e4e8 44 PIDController turnPID;
sim642 16:4161d7af6b5a 45 float setTurn;
sim642 17:cb8ad2fc76e5 46 float turnSpeedLimit;
sim642 18:1437610bea8b 47
sim642 18:1437610bea8b 48 SyncGroup *sync;
sim642 3:2235787e78c4 49 };
sim642 3:2235787e78c4 50
sim642 3:2235787e78c4 51 #endif // ENCODER_MOTOR_H