X-Git-Url: http://challenge-bot.com/repos/?a=blobdiff_plain;f=src%2Forg%2Fusfirst%2Ffrc%2Fteam3501%2Frobot%2Fcommands%2Fshooter%2FRunFlyWheelContinuous.java;h=047fad40885a8e2f5caad590004cab64493dc5bb;hb=e32379867a61eb104544b90d917b7ab48d704e25;hp=5e65b3d3a57adad7d08c8ea9c96859c0c56b2af6;hpb=cf77d84e212b20171a5a3397b26fe7f98f4ba460;p=3501%2F2017steamworks diff --git a/src/org/usfirst/frc/team3501/robot/commands/shooter/RunFlyWheelContinuous.java b/src/org/usfirst/frc/team3501/robot/commands/shooter/RunFlyWheelContinuous.java index 5e65b3d..047fad4 100644 --- a/src/org/usfirst/frc/team3501/robot/commands/shooter/RunFlyWheelContinuous.java +++ b/src/org/usfirst/frc/team3501/robot/commands/shooter/RunFlyWheelContinuous.java @@ -7,16 +7,16 @@ import org.usfirst.frc.team3501.robot.utils.PIDController; import edu.wpi.first.wpilibj.command.Command; /** - * This command runs the fly wheel continuously when OI button managing fly - * wheel is pressed. The command will run the fly wheel motor until the button - * triggering it is released. + * This command runs the fly wheel continuously at a set speed using a PID + * Controller when OI button managing fly wheel is pressed. The command will run + * the fly wheel motor until the button triggering it is released. * * Should only be run from the operator interface. * * pre-condition: This command must be run by a button in OI, with * button.whileHeld(...). * - * @author Shaina + * @author Shaina & Chris */ public class RunFlyWheelContinuous extends Command { private Shooter shooter = Robot.getShooter(); @@ -26,48 +26,48 @@ public class RunFlyWheelContinuous extends Command { 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(); }