From: Cindy Zhang Date: Sat, 25 Feb 2017 18:45:05 +0000 (-0800) Subject: code review changes and add code for braking cantalons X-Git-Url: http://challenge-bot.com/repos/?p=3501%2F2017steamworks;a=commitdiff_plain;h=f56e6ebf87134eccc3b8bb0e1d2529bd6cb061dd code review changes and add code for braking cantalons --- diff --git a/src/org/usfirst/frc/team3501/robot/Constants.java b/src/org/usfirst/frc/team3501/robot/Constants.java index c2fbf7b..aafb867 100644 --- a/src/org/usfirst/frc/team3501/robot/Constants.java +++ b/src/org/usfirst/frc/team3501/robot/Constants.java @@ -16,7 +16,6 @@ public class Constants { public final static int RIGHT_STICK_PORT = 1; // Need to fill in the port numbers of the following buttons - public final static int TOGGLE_WINCH_PORT = 0; public final static int TOGGLE_FLYWHEEL_PORT = 4; public final static int RUN_INDEXWHEEL_PORT = 1; public final static int REVERSE_INDEXWHEEL_PORT = 2; @@ -25,6 +24,8 @@ public class Constants { public final static int REVERSE_INTAKE_PORT = 4; public static final int INCREASE_SHOOTER_SPEED_PORT = 6; public static final int DECREASE_SHOOTER_SPEED_PORT = 2; + public static final int BRAKE_CANTALONS_PORT = 5; + public static final int COAST_CANTALONS_PORT = 3; } public static class Shooter { diff --git a/src/org/usfirst/frc/team3501/robot/OI.java b/src/org/usfirst/frc/team3501/robot/OI.java index c608b86..a1abe0a 100644 --- a/src/org/usfirst/frc/team3501/robot/OI.java +++ b/src/org/usfirst/frc/team3501/robot/OI.java @@ -1,6 +1,7 @@ package org.usfirst.frc.team3501.robot; -import org.usfirst.frc.team3501.robot.commands.climber.ToggleWinch; +import org.usfirst.frc.team3501.robot.commands.driving.BrakeCANTalons; +import org.usfirst.frc.team3501.robot.commands.driving.CoastCANTalons; import org.usfirst.frc.team3501.robot.commands.driving.ToggleGear; import org.usfirst.frc.team3501.robot.commands.intake.ReverseIntakeContinuous; import org.usfirst.frc.team3501.robot.commands.intake.RunIntakeContinuous; @@ -18,7 +19,6 @@ public class OI { private static OI oi; public static Joystick leftJoystick; public static Joystick rightJoystick; - public static Button toggleWinch; public static Button runIndexWheel; public static Button reverseIndexWheel; @@ -32,6 +32,9 @@ public class OI { public static Button increaseShooterSpeed; public static Button decreaseShooterSpeed; + public static Button brakeCANTalons; + public static Button coastCANTalons; + public OI() { leftJoystick = new Joystick(Constants.OI.LEFT_STICK_PORT); rightJoystick = new Joystick(Constants.OI.RIGHT_STICK_PORT); @@ -59,10 +62,6 @@ public class OI { Constants.OI.REVERSE_INTAKE_PORT); reverseIntake.whileHeld(new ReverseIntakeContinuous()); - toggleWinch = new JoystickButton(leftJoystick, - Constants.OI.TOGGLE_WINCH_PORT); - toggleWinch.whenPressed(new ToggleWinch()); - increaseShooterSpeed = new JoystickButton(leftJoystick, Constants.OI.INCREASE_SHOOTER_SPEED_PORT); increaseShooterSpeed.whenPressed(new IncreaseShootingSpeed()); @@ -70,6 +69,14 @@ public class OI { decreaseShooterSpeed = new JoystickButton(leftJoystick, Constants.OI.DECREASE_SHOOTER_SPEED_PORT); decreaseShooterSpeed.whenPressed(new DecreaseShootingSpeed()); + + brakeCANTalons = new JoystickButton(rightJoystick, + Constants.OI.BRAKE_CANTALONS_PORT); + brakeCANTalons.whenPressed(new BrakeCANTalons()); + + coastCANTalons = new JoystickButton(rightJoystick, + Constants.OI.COAST_CANTALONS_PORT); + coastCANTalons.whenPressed(new CoastCANTalons()); } public static OI getOI() { diff --git a/src/org/usfirst/frc/team3501/robot/Robot.java b/src/org/usfirst/frc/team3501/robot/Robot.java index 24eca3c..a8c4864 100644 --- a/src/org/usfirst/frc/team3501/robot/Robot.java +++ b/src/org/usfirst/frc/team3501/robot/Robot.java @@ -23,9 +23,12 @@ public class Robot extends IterativeRobot { oi = OI.getOI(); shooter = Shooter.getShooter(); intake = Intake.getIntake(); + CameraServer server = CameraServer.getInstance(); UsbCamera climberCam = server.startAutomaticCapture("climbercam", 0); UsbCamera intakeCam = server.startAutomaticCapture("intakecam", 1); + + driveTrain.setCANTalonsBrakeMode(driveTrain.DRIVE_COAST_MODE); } public static DriveTrain getDriveTrain() { @@ -49,6 +52,7 @@ public class Robot extends IterativeRobot { @Override public void autonomousInit() { driveTrain.setHighGear(); + driveTrain.setCANTalonsBrakeMode(driveTrain.DRIVE_COAST_MODE); } @Override @@ -58,19 +62,36 @@ public class Robot extends IterativeRobot { @Override public void teleopInit() { + driveTrain.setCANTalonsBrakeMode(driveTrain.DRIVE_COAST_MODE); } @Override public void teleopPeriodic() { + // driveTrain.printEncoderOutput(); Scheduler.getInstance().run(); updateSmartDashboard(); } + @Override + public void disabledInit() { + driveTrain.setCANTalonsBrakeMode(driveTrain.DRIVE_BRAKE_MODE); + } + // + // @Override + // public void disabledPeriodic() { + // Scheduler.getInstance().add(new RunFlyWheel(2)); + // } + public void updateSmartDashboard() { + SmartDashboard.putNumber("left encode ", + driveTrain.getLeftEncoderDistance()); + SmartDashboard.putNumber("right encoder", + driveTrain.getRightEncoderDistance()); SmartDashboard.putNumber("angle", driveTrain.getAngle()); SmartDashboard.putNumber("voltage", DriverStation.getInstance().getBatteryVoltage()); SmartDashboard.putNumber("rpm", shooter.getShooterRPM()); - SmartDashboard.putNumber("motor value", shooter.getTargetShootingSpeed()); + SmartDashboard.putNumber("target shooting", + shooter.getTargetShootingSpeed()); } } diff --git a/src/org/usfirst/frc/team3501/robot/commands/climber/ToggleWinch.java b/src/org/usfirst/frc/team3501/robot/commands/climber/ToggleWinch.java index 66c8364..3e60406 100644 --- a/src/org/usfirst/frc/team3501/robot/commands/climber/ToggleWinch.java +++ b/src/org/usfirst/frc/team3501/robot/commands/climber/ToggleWinch.java @@ -34,7 +34,7 @@ public class ToggleWinch extends Command { @Override protected boolean isFinished() { - return Robot.getOI().toggleWinch.get(); + return false; } @Override diff --git a/src/org/usfirst/frc/team3501/robot/commands/driving/BrakeCANTalons.java b/src/org/usfirst/frc/team3501/robot/commands/driving/BrakeCANTalons.java new file mode 100644 index 0000000..0a19e57 --- /dev/null +++ b/src/org/usfirst/frc/team3501/robot/commands/driving/BrakeCANTalons.java @@ -0,0 +1,39 @@ +package org.usfirst.frc.team3501.robot.commands.driving; + +import org.usfirst.frc.team3501.robot.Robot; +import org.usfirst.frc.team3501.robot.subsystems.DriveTrain; + +import edu.wpi.first.wpilibj.command.Command; + +/** + * + */ +public class BrakeCANTalons extends Command { + private DriveTrain driveTrain = Robot.getDriveTrain(); + + public BrakeCANTalons() { + requires(driveTrain); + } + + @Override + protected void initialize() { + driveTrain.setCANTalonsBrakeMode(driveTrain.DRIVE_BRAKE_MODE); + } + + @Override + protected void execute() { + } + + @Override + protected boolean isFinished() { + return true; + } + + @Override + protected void end() { + } + + @Override + protected void interrupted() { + } +} diff --git a/src/org/usfirst/frc/team3501/robot/commands/driving/CoastCANTalons.java b/src/org/usfirst/frc/team3501/robot/commands/driving/CoastCANTalons.java new file mode 100644 index 0000000..ea676f2 --- /dev/null +++ b/src/org/usfirst/frc/team3501/robot/commands/driving/CoastCANTalons.java @@ -0,0 +1,39 @@ +package org.usfirst.frc.team3501.robot.commands.driving; + +import org.usfirst.frc.team3501.robot.Robot; +import org.usfirst.frc.team3501.robot.subsystems.DriveTrain; + +import edu.wpi.first.wpilibj.command.Command; + +/** + * + */ +public class CoastCANTalons extends Command { + private DriveTrain driveTrain = Robot.getDriveTrain(); + + public CoastCANTalons() { + requires(driveTrain); + } + + @Override + protected void initialize() { + driveTrain.setCANTalonsBrakeMode(driveTrain.DRIVE_COAST_MODE); + } + + @Override + protected void execute() { + } + + @Override + protected boolean isFinished() { + return true; + } + + @Override + protected void end() { + } + + @Override + protected void interrupted() { + } +} diff --git a/src/org/usfirst/frc/team3501/robot/commands/shooter/RunIndexWheelContinuous.java b/src/org/usfirst/frc/team3501/robot/commands/shooter/RunIndexWheelContinuous.java index d2d386a..815577e 100644 --- a/src/org/usfirst/frc/team3501/robot/commands/shooter/RunIndexWheelContinuous.java +++ b/src/org/usfirst/frc/team3501/robot/commands/shooter/RunIndexWheelContinuous.java @@ -53,7 +53,6 @@ public class RunIndexWheelContinuous extends Command { @Override protected boolean isFinished() { return false; - } } diff --git a/src/org/usfirst/frc/team3501/robot/subsystems/DriveTrain.java b/src/org/usfirst/frc/team3501/robot/subsystems/DriveTrain.java index 5422e97..bad303a 100644 --- a/src/org/usfirst/frc/team3501/robot/subsystems/DriveTrain.java +++ b/src/org/usfirst/frc/team3501/robot/subsystems/DriveTrain.java @@ -29,6 +29,9 @@ public class DriveTrain extends Subsystem { public static final double TIME_TO_CLIMB_FOR = 0; public static final double CLIMBER_SPEED = 0; + public static final boolean DRIVE_BRAKE_MODE = true; + public static final boolean DRIVE_COAST_MODE = false; + private static DriveTrain driveTrain; private final CANTalon frontLeft, frontRight, rearLeft, rearRight; @@ -185,7 +188,6 @@ public class DriveTrain extends Subsystem { * Changes the gear to a DoubleSolenoid.Value */ private void changeGear(DoubleSolenoid.Value gear) { - System.out.println(gear); leftGearPiston.set(gear); rightGearPiston.set(gear); } @@ -194,4 +196,12 @@ public class DriveTrain extends Subsystem { protected void initDefaultCommand() { setDefaultCommand(new JoystickDrive()); } + + public void setCANTalonsBrakeMode(boolean mode) { + frontLeft.enableBrakeMode(mode); + rearLeft.enableBrakeMode(mode); + + frontRight.enableBrakeMode(mode); + rearRight.enableBrakeMode(mode); + } } diff --git a/src/org/usfirst/frc/team3501/robot/subsystems/Shooter.java b/src/org/usfirst/frc/team3501/robot/subsystems/Shooter.java index adfdb34..bf743b1 100644 --- a/src/org/usfirst/frc/team3501/robot/subsystems/Shooter.java +++ b/src/org/usfirst/frc/team3501/robot/subsystems/Shooter.java @@ -18,9 +18,9 @@ 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_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 SHOOTING_SPEED_INCREMENT = 50; private double targetShootingSpeed = DEFAULT_SHOOTING_SPEED; private double currentShooterMotorValue = 0;