task FlywheelSpeedControl() { while(true) { float spd = isFlywheelOn ? targetFlywheelSpeed : 0; setTargetSpeed(ctlrL, spd); setTargetSpeed(ctlrR, spd); update(ctlrL); update(ctlrR); delay(30); } }
float InsideTrackA::get_accel(CarState &cs) { setTargetSpeed(cs); float Front, max10, max20; Front = cs.getTrack(10); max10 = max(cs.getTrack(9), cs.getTrack(11)); max20 = max(cs.getTrack(8), cs.getTrack(12)); float accel = (cs.getSpeedX() > target_speed ? 0 : (Front+max10+max20)/(3*200)); if(Front >= 70) accel = 1; if(Front <= 20 && cs.getSpeedX() <= 30) accel = 1; /*Resolve o caso em que o carro está preso com a frente voltada para a borda da pista*/ //printf("%.0f, %.0f, %.0f --> accel: %.2f\n", Front, max10, max20, accel); return accel ; }
void Dribbler::start() { setTargetSpeed(-conf->robot.dribblerSpeed); stopRequestedTime = -1.0; }
void Dribbler::prime() { setTargetSpeed(-conf->robot.dribblerSpeed); //setTargetSpeed(-Config::robotDribblerSpeed / 2); stopRequestedTime = -1.0; }