X-Git-Url: http://challenge-bot.com/repos/?a=blobdiff_plain;f=src%2Forg%2Fusfirst%2Ffrc%2Fteam3501%2Frobot%2Fsubsystems%2FShooter.java;h=85ecf468d6a2498a420813de8a41e84105c8c0ce;hb=fc01fb0fb74d31a0818c69d0306253deb4236c58;hp=adfdb341862f933a03094392848cdfe80ec37328;hpb=b70398a7d5ac5f4ce64156d84227ccb4828c0615;p=3501%2F2017steamworks diff --git a/src/org/usfirst/frc/team3501/robot/subsystems/Shooter.java b/src/org/usfirst/frc/team3501/robot/subsystems/Shooter.java index adfdb34..85ecf46 100644 --- a/src/org/usfirst/frc/team3501/robot/subsystems/Shooter.java +++ b/src/org/usfirst/frc/team3501/robot/subsystems/Shooter.java @@ -7,6 +7,8 @@ import org.usfirst.frc.team3501.robot.utils.PIDController; import com.ctre.CANTalon; +import edu.wpi.first.wpilibj.DoubleSolenoid; +import edu.wpi.first.wpilibj.DoubleSolenoid.Value; import edu.wpi.first.wpilibj.command.Subsystem; public class Shooter extends Subsystem { @@ -18,19 +20,25 @@ public class Shooter extends Subsystem { private PIDController wheelController; private static final double RPM_THRESHOLD = 10; - private static final double DEFAULT_INDEXING_MOTOR_VALUE = -0.75; - private static final double DEFAULT_SHOOTING_SPEED = 2800; // rpm - private static final double SHOOTING_SPEED_INCREMENT = 25; + private static final double DEFAULT_INDEXING_MOTOR_VALUE = 0.75; + private static final double REVERSE_FLYWHEEL_MOTOR_VALUE = -0.75; + private static final double DEFAULT_SHOOTING_SPEED = 2700; // rpm + private static final double SHOOTING_SPEED_INCREMENT = 50; private double targetShootingSpeed = DEFAULT_SHOOTING_SPEED; private double currentShooterMotorValue = 0; + private final DoubleSolenoid piston; + private Shooter() { flyWheel1 = new CANTalon(Constants.Shooter.FLY_WHEEL1); flyWheel2 = new CANTalon(Constants.Shooter.FLY_WHEEL2); indexWheel = new CANTalon(Constants.Shooter.INDEX_WHEEL); hallEffect = new HallEffectSensor(Constants.Shooter.HALL_EFFECT_PORT, 1); + + piston = new DoubleSolenoid(Constants.Shooter.MODULE_NUMBER, + Constants.Shooter.PISTON_FORWARD, Constants.Shooter.PISTON_REVERSE); } /** @@ -140,4 +148,24 @@ public class Shooter extends Subsystem { this.wheelController.setSetPoint(this.targetShootingSpeed); this.currentShooterMotorValue = 0; } + + public Value getPistonValue() { + return piston.get(); + } + + public void setHighGear() { + changeGear(Constants.Shooter.HIGH_GEAR); + } + + public void setLowGear() { + changeGear(Constants.Shooter.LOW_GEAR); + } + + private void changeGear(DoubleSolenoid.Value gear) { + piston.set(gear); + } + + public void reverseFlyWheel() { + this.setFlyWheelMotorVal(shooter.REVERSE_FLYWHEEL_MOTOR_VALUE); + } }