X-Git-Url: http://challenge-bot.com/repos/?p=3501%2Fstronghold-2016;a=blobdiff_plain;f=src%2Forg%2Fusfirst%2Ffrc%2Fteam3501%2Frobot%2Fsubsystems%2FShooter.java;h=8649045aa2d8119e5ff9a173ed1030d7d96a74b7;hp=7b6ef174bd3cc046ade23a65c00695c7a99862cd;hb=e4fbab026f4a68a4a238839ae2295c56c1134434;hpb=faabd6f8711d4f582a4fcec6f46bdee1ddd3d1cf diff --git a/src/org/usfirst/frc/team3501/robot/subsystems/Shooter.java b/src/org/usfirst/frc/team3501/robot/subsystems/Shooter.java index 7b6ef174..8649045a 100755 --- a/src/org/usfirst/frc/team3501/robot/subsystems/Shooter.java +++ b/src/org/usfirst/frc/team3501/robot/subsystems/Shooter.java @@ -1,13 +1,9 @@ package org.usfirst.frc.team3501.robot.subsystems; import org.usfirst.frc.team3501.robot.Constants; -import org.usfirst.frc.team3501.robot.sensors.Lidar; import org.usfirst.frc.team3501.robot.sensors.Photogate; -import edu.wpi.first.wpilibj.CANTalon; -import edu.wpi.first.wpilibj.CounterBase.EncodingType; import edu.wpi.first.wpilibj.DoubleSolenoid; -import edu.wpi.first.wpilibj.Encoder; import edu.wpi.first.wpilibj.command.Subsystem; /*** @@ -15,109 +11,50 @@ import edu.wpi.first.wpilibj.command.Subsystem; * motors. The piston controlling the platform pushes the ball onto the wheel. * The wheel is controlled by a motor, which is running before the ball is * pushed onto the wheel. The spinning wheel propels the ball. - * + * * @author superuser - * + * */ public class Shooter extends Subsystem { - private CANTalon shooter; - private DoubleSolenoid hood1, hood2, punch; - private Encoder encoder; - private Lidar lidar; + private DoubleSolenoid catapult1, catapult2; private Photogate photogate; private boolean usePhotoGate; public Shooter() { - shooter = new CANTalon(Constants.Shooter.PORT); - hood1 = new DoubleSolenoid(10, Constants.Shooter.RIGHT_HOOD_FORWARD, - Constants.Shooter.RIGHT_HOOD_REVERSE); // right - hood2 = new DoubleSolenoid(9, Constants.Shooter.LEFT_HOOD_FORWARD, - Constants.Shooter.LEFT_HOOD_REVERSE);// left - punch = new DoubleSolenoid(9, Constants.Shooter.PUNCH_FORWARD, - Constants.Shooter.PUNCH_REVERSE); - - encoder = new Encoder(Constants.Shooter.ENCODER_PORT_A, - Constants.Shooter.ENCODER_PORT_B, false, EncodingType.k4X); - usePhotoGate = true; + catapult1 = new DoubleSolenoid(Constants.Shooter.CATAPULT1_MODULE, + Constants.Shooter.CATAPULT1_FORWARD, + Constants.Shooter.CATAPULT1_REVERSE); + catapult2 = new DoubleSolenoid(Constants.Shooter.CATAPULT2_MODULE, + Constants.Shooter.CATAPULT2_FORWARD, + Constants.Shooter.CATAPULT2_REVERSE); + usePhotoGate = false; } /*** * This method checks to see if the ball has successfully passed through the * intake rollers and is inside. - * + * * @return whether the presence of the ball is true or false and returns the * state of the condition (true or false). */ public boolean isBallInside() { - if (usePhotogate()) return photogate.isBallPresent(); else return true; - - } - - public void setSpeed(double speed) { - if (speed > 1.0) - shooter.set(1.0); - else if (speed < -1.0) - shooter.set(-1.0); - else - shooter.set(speed); } - public void stop() { - this.setSpeed(0.0); + // Catapult Commands + public void fireCatapult() { + catapult1.set(Constants.Shooter.shoot); + catapult2.set(Constants.Shooter.shoot); } - public double getSpeed() { - return encoder.getRate(); - } - - /* - * We are going to map a lidar distance to a shooter speed that will be set to - * the shooter. This function does not yet exist so we will just use y=x but - * when testing commences we shall create the function - */ - public double getShooterSpeed() { - double distanceToGoal = lidar.getDistance(); - double shooterSpeed = distanceToGoal; // Function to be determined - return shooterSpeed; - } - - // Use negative # for decrement. Positive for increment. - - public void changeSpeed(double change) { - double newSpeed = getSpeed() + change; - setSpeed(newSpeed); - } - - // Punch Commands - public void extendPunch() { - punch.set(Constants.Shooter.punch); - } - - public void retractPunch() { - punch.set(Constants.Shooter.retract); - } - - public void raiseHood() { - hood1.set(Constants.Shooter.open); - hood2.set(Constants.Shooter.open); - } - - public void lowerHood() { - hood1.set(Constants.Shooter.closed); - hood2.set(Constants.Shooter.closed); - } - - public boolean isHoodDown() { - if (hood1.get() == Constants.Shooter.open - && hood2.get() == Constants.Shooter.open) - return true; - return false; + public void resetCatapult() { + catapult1.set(Constants.Shooter.reset); + catapult2.set(Constants.Shooter.reset); } public boolean usePhotogate() {