Rauno U
/
Miisu
Six crescent shaped legs
EncoderMotor.cpp
- Committer:
- sim642
- Date:
- 2016-04-12
- Revision:
- 14:4143ddddef1b
- Parent:
- 13:dc5f5f19e4e8
- Child:
- 16:4161d7af6b5a
File content as of revision 14:4143ddddef1b:
#include "EncoderMotor.hpp" const float tickTime = 1.f / 60; EncoderMotor::EncoderMotor(MotorData nData, EncoderData encData, PIDData speedPIDData, PIDData turnPIDData) : Motor(nData), encoder(encData), speedSmoother(0.3f), speedPID(speedPIDData), setPower(0), turnPID(turnPIDData), setRot(0) { } void EncoderMotor::setup() { ticker.attach(this, &EncoderMotor::tick, tickTime); } void EncoderMotor::drive(float power) { setPower = power; //Motor::drive(power); } void EncoderMotor::rotate(float rot) { setRot += rot; } void EncoderMotor::tick() { float errorRot = setRot - encoder.getTurn(); drive(turnPID.step(errorRot)); float error = setPower - speedSmoother.smooth(encoder.getTurnSpeed()); out = speedPID.step(error); Motor::drive(out); }