private double wheelI;
private double wheelD;
private double target;
+ double shooterSpeed = 0;
public RunFlyWheelContinuous() {
- // Use requires() here to declare subsystem dependencies
- // eg. requires(chassis);
- requires(shooter);
-
this.wheelP = this.shooter.wheelP;
this.wheelI = this.shooter.wheelI;
this.wheelD = this.shooter.wheelD;
this.wheelController = new PIDController(this.wheelP, this.wheelI,
this.wheelD);
- this.wheelController.setDoneRange(0.5);
+ this.wheelController.setDoneRange(10);
this.wheelController.setMaxOutput(1.0);
this.wheelController.setMinDoneCycles(3);
- this.target = this.shooter.CURRENT_SHOOTING_SPEED;
+ this.target = 2700;
}
- // Called just before this Command runs the first time
+ @Override
protected void initialize() {
this.wheelController.setSetPoint(this.target);
}
- // Called repeatedly when this Command is scheduled to run
+ @Override
protected void execute() {
- double shooterSpeed = this.wheelController
- .calcPID(this.shooter.getShooterSpeed());
-
- this.shooter.setFlyWheelMotorVal(shooterSpeed);
+ double calculatedShooterIncrement = this.wheelController
+ .calcPID(this.shooter.getShooterRPM());
+ shooterSpeed += calculatedShooterIncrement;
+ if (shooterSpeed > 1.0)
+ this.shooter.setFlyWheelMotorVal(1.0);
+ else
+ this.shooter.setFlyWheelMotorVal(shooterSpeed);
+ // this.shooter.setFlyWheelMotorVal(this.shooter.CURRENT_SHOOTING_SPEED);
}
- // Make this return true when this Command no longer needs to run execute()
+ @Override
protected boolean isFinished() {
return false;
}
- // Called once after isFinished returns true
+ @Override
protected void end() {
this.shooter.stopFlyWheel();
}
- // Called when another command which requires one or more of the same
- // subsystems is scheduled to run
+ @Override
protected void interrupted() {
end();
}