X-Git-Url: http://challenge-bot.com/repos/?a=blobdiff_plain;f=src%2Forg%2Fusfirst%2Ffrc%2Fteam3501%2Frobot%2Fsubsystems%2FShooter.java;h=60452a0c9080bfe4bf61beb2c129ce0be2b37717;hb=4d4bcc688036e2dfeb20824d91b8a9972c20ecf4;hp=5c92506da9844c021fb770c3736209336df97183;hpb=0b403e6022b2c38e54e77e3d17d30dc5fc54ef57;p=3501%2Fstronghold-2016 diff --git a/src/org/usfirst/frc/team3501/robot/subsystems/Shooter.java b/src/org/usfirst/frc/team3501/robot/subsystems/Shooter.java index 5c92506d..60452a0c 100755 --- a/src/org/usfirst/frc/team3501/robot/subsystems/Shooter.java +++ b/src/org/usfirst/frc/team3501/robot/subsystems/Shooter.java @@ -1,10 +1,9 @@ package org.usfirst.frc.team3501.robot.subsystems; import org.usfirst.frc.team3501.robot.Constants; -import org.usfirst.frc.team3501.robot.Lidar; -import org.usfirst.frc.team3501.robot.MathLib; +import org.usfirst.frc.team3501.robot.sensors.Lidar; +import org.usfirst.frc.team3501.robot.sensors.Photogate; -import edu.wpi.first.wpilibj.AnalogPotentiometer; import edu.wpi.first.wpilibj.CANTalon; import edu.wpi.first.wpilibj.CounterBase.EncodingType; import edu.wpi.first.wpilibj.DoubleSolenoid; @@ -12,11 +11,10 @@ import edu.wpi.first.wpilibj.Encoder; import edu.wpi.first.wpilibj.command.Subsystem; /*** - * The Shooter consists of a platform and wheel, each controlled by - * separate 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. + * The Shooter consists of a platform and wheel, each controlled by separate + * 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 * @@ -28,19 +26,16 @@ public class Shooter extends Subsystem { private DoubleSolenoid hood, punch; private Encoder encoder; private Lidar lidar; + private Photogate photogate; public Shooter() { shooter = new CANTalon(Constants.Shooter.PORT); - hood = new DoubleSolenoid(Constants.Shooter.HOOD_FORWARD, - Constants.Shooter.HOOD_REVERSE); - angleAdjuster = new CANTalon(Constants.Shooter.ANGLE_ADJUSTER_PORT); + angleAdjuster = new CANTalon(Constants.Shooter.ANGLE_ADJUSTER_PORT); punch = new DoubleSolenoid(Constants.Shooter.PUNCH_FORWARD, Constants.Shooter.PUNCH_REVERSE); encoder = new Encoder(Constants.Shooter.ENCODER_PORT_A, Constants.Shooter.ENCODER_PORT_B, false, EncodingType.k4X); - - lidar = new Lidar(Constants.Shooter.LIDAR_I2C_PORT); } /*** @@ -52,7 +47,7 @@ public class Shooter extends Subsystem { */ public boolean isBallInside() { - return true; + return photogate.isBallPresent(); } public void setSpeed(double speed) { @@ -72,6 +67,17 @@ public class Shooter extends Subsystem { 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) { @@ -88,18 +94,6 @@ public class Shooter extends Subsystem { punch.set(Constants.Shooter.retract); } - public boolean isHoodOpen() { - return hood.get() == Constants.Shooter.open; - } - - public void openHood() { - hood.set(Constants.Shooter.open); - } - - public void closeHood() { - hood.set(Constants.Shooter.closed); - } - @Override protected void initDefaultCommand() { }