Six crescent shaped legs

Dependencies:   mbed

Committer:
sim642
Date:
Tue Apr 12 13:05:12 2016 +0000
Revision:
11:a0976d3b33c5
Parent:
9:31e850271c4a
Child:
12:8de7f5d56fe4
Make EncodeMotor create its own encoder

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sim642 3:2235787e78c4 1 #include "EncoderMotor.hpp"
sim642 3:2235787e78c4 2
sim642 4:4d54794b99a5 3 const float tickTime = 1.f / 60;
sim642 4:4d54794b99a5 4
sim642 11:a0976d3b33c5 5 EncoderMotor::EncoderMotor(MotorData nData, EncoderData encData, Smoother &nSpeedSmoother, ErrorController &nEc, ErrorController &nEcRot) : Motor(nData), encoder(encData), speedSmoother(nSpeedSmoother), ec(nEc), setPower(0), ecRot(nEcRot), setRot(0)
sim642 3:2235787e78c4 6 {
sim642 3:2235787e78c4 7
sim642 3:2235787e78c4 8 }
sim642 3:2235787e78c4 9
sim642 3:2235787e78c4 10 void EncoderMotor::setup()
sim642 3:2235787e78c4 11 {
sim642 4:4d54794b99a5 12 ticker.attach(this, &EncoderMotor::tick, tickTime);
sim642 3:2235787e78c4 13 }
sim642 3:2235787e78c4 14
sim642 3:2235787e78c4 15 void EncoderMotor::drive(float power)
sim642 3:2235787e78c4 16 {
sim642 3:2235787e78c4 17 setPower = power;
sim642 3:2235787e78c4 18 //Motor::drive(power);
sim642 3:2235787e78c4 19 }
sim642 3:2235787e78c4 20
sim642 5:7f800f61cb13 21 void EncoderMotor::rotate(float rot)
sim642 5:7f800f61cb13 22 {
sim642 5:7f800f61cb13 23 setRot += rot;
sim642 5:7f800f61cb13 24 }
sim642 5:7f800f61cb13 25
sim642 3:2235787e78c4 26 void EncoderMotor::tick()
sim642 3:2235787e78c4 27 {
sim642 3:2235787e78c4 28 long count = encoder.getCount();
sim642 3:2235787e78c4 29
sim642 5:7f800f61cb13 30 float errorRot = setRot - count / 600.f;
sim642 5:7f800f61cb13 31 drive(ecRot.step(errorRot));
sim642 5:7f800f61cb13 32
sim642 7:8dcdb39efc0e 33 float error = setPower - speedSmoother.smooth(encoder.getSpeed());
sim642 4:4d54794b99a5 34 out = ec.step(error);
sim642 3:2235787e78c4 35 Motor::drive(out);
sim642 3:2235787e78c4 36 }