| 1 | package org.usfirst.frc.team3501.robot; |
| 2 | |
| 3 | import edu.wpi.first.wpilibj.DoubleSolenoid; |
| 4 | import edu.wpi.first.wpilibj.DoubleSolenoid.Value; |
| 5 | |
| 6 | /** |
| 7 | * The Constants stores constant values for all subsystems. This includes the |
| 8 | * port values for motors and sensors, as well as important operational |
| 9 | * constants for subsystems such as max and min values. |
| 10 | */ |
| 11 | |
| 12 | public class Constants { |
| 13 | public final static int PCM_MODULE_A = 9; |
| 14 | public final static int PCM_MODULE_B = 10; |
| 15 | |
| 16 | public static class OI { |
| 17 | // Computer Ports |
| 18 | public final static int LEFT_STICK_PORT = 0; |
| 19 | public final static int RIGHT_STICK_PORT = 1; |
| 20 | |
| 21 | // Left Joystick |
| 22 | public final static int LEFT_JOYSTICK_GEAR_SHIFT_PORT = 1; |
| 23 | public final static int LEFT_JOYSTICK_EXTEND_INTAKE_1_PORT = 3; |
| 24 | public final static int LEFT_JOYSTICK_EXTEND_INTAKE_2_PORT = 5; |
| 25 | public final static int LEFT_JOYSTICK_RETRACT_INTAKE_1_PORT = 4; |
| 26 | public final static int LEFT_JOYSTICK_RETRACT_INTAKE_2_PORT = 6; |
| 27 | public final static int LEFT_JOYSTICK_TOGGLE_FRONT_PORT = 7; |
| 28 | |
| 29 | // Right Joystick |
| 30 | public final static int RIGHT_JOYSTICK_INTAKE_PORT = 1; |
| 31 | public final static int RIGHT_JOYSTICK_OUTTAKE_1_PORT = 3; |
| 32 | public final static int RIGHT_JOYSTICK_OUTTAKE_2_PORT = 4; |
| 33 | public final static int RIGHT_JOYSTICK_SHOOTER_UP_PORT = 2; |
| 34 | public final static int RIGHT_JOYSTICK_SHOOTER_DOWN_1_PORT = 5; |
| 35 | public final static int RIGHT_JOYSTICK_SHOOTER_DOWN_2_PORT = 6; |
| 36 | |
| 37 | } |
| 38 | |
| 39 | public static class DriveTrain { |
| 40 | public static final int TANK = 0; |
| 41 | public static final int ARCADE = 1; |
| 42 | public static final int DRIVE_TYPE = TANK; |
| 43 | |
| 44 | // Limits changes in speed during joystick driving |
| 45 | public static final double kADJUST = 8; |
| 46 | |
| 47 | // Drivetrain Motor related ports |
| 48 | public static final int DRIVE_FRONT_LEFT = 1; |
| 49 | public static final int DRIVE_REAR_LEFT = 2; |
| 50 | public static final int DRIVE_FRONT_RIGHT = 6; |
| 51 | public static final int DRIVE_REAR_RIGHT = 5; |
| 52 | |
| 53 | // Drivetrain shifter related ports |
| 54 | public static final int LEFT_SHIFT_MODULE = PCM_MODULE_B; |
| 55 | public static final int LEFT_SHIFT_FORWARD = 6; |
| 56 | public static final int LEFT_SHIFT_REVERSE = 3; |
| 57 | public static final int RIGHT_SHIFT_MODULE = PCM_MODULE_B; |
| 58 | public static final int RIGHT_SHIFT_FORWARD = 2; |
| 59 | public static final int RIGHT_SHIFT_REVERSE = 7; |
| 60 | |
| 61 | // Encoder related ports |
| 62 | public final static int ENCODER_LEFT_A = 0; |
| 63 | public final static int ENCODER_LEFT_B = 1; |
| 64 | public final static int ENCODER_RIGHT_A = 3; |
| 65 | public final static int ENCODER_RIGHT_B = 4; |
| 66 | |
| 67 | public static final double INCHES_PER_PULSE = ((3.66 / 5.14) * 6 * Math.PI) |
| 68 | / 256; |
| 69 | |
| 70 | public static double kp = 0.013, ki = 0.000015, kd = -0.002; |
| 71 | public static double encoderTolerance = 8.0; |
| 72 | |
| 73 | // Gearing constants |
| 74 | public static final Value HIGH_GEAR = DoubleSolenoid.Value.kForward; |
| 75 | public static final Value LOW_GEAR = DoubleSolenoid.Value.kReverse; |
| 76 | } |
| 77 | |
| 78 | public static class Shooter { |
| 79 | public static final int CATAPULT1_MODULE = PCM_MODULE_B; |
| 80 | public static final int CATAPULT1_FORWARD = 4; |
| 81 | public static final int CATAPULT1_REVERSE = 1; |
| 82 | public static final int CATAPULT2_MODULE = PCM_MODULE_A; |
| 83 | public static final int CATAPULT2_FORWARD = 0; |
| 84 | public static final int CATAPULT2_REVERSE = 1; |
| 85 | |
| 86 | public static final Value SHOOT = Value.kForward; |
| 87 | public static final Value RESET = Value.kReverse; |
| 88 | public static final double WAIT_TIME = 2.0; // In seconds |
| 89 | |
| 90 | // TODO: test for this time |
| 91 | |
| 92 | } |
| 93 | |
| 94 | public static class IntakeArm { |
| 95 | public static final int INTAKE_ROLLER_PORT = 8; |
| 96 | |
| 97 | // for pistons |
| 98 | public static final int LEFT_INTAKE_MODULE = PCM_MODULE_A; |
| 99 | public static final int LEFT_INTAKE_FORWARD = 5; |
| 100 | public static final int LEFT_INTAKE_REVERSE = 2; |
| 101 | public static final int RIGHT_INTAKE_MODULE = PCM_MODULE_B; |
| 102 | public static final int RIGHT_INTAKE_FORWARD = 5; |
| 103 | public static final int RIGHT_INTAKE_REVERSE = 0; |
| 104 | |
| 105 | public static final Value EXTEND = DoubleSolenoid.Value.kForward; |
| 106 | public static final Value RETRACT = DoubleSolenoid.Value.kReverse; |
| 107 | |
| 108 | public static final int IN = 1; |
| 109 | public static final int STOP = 0; |
| 110 | public static final int OUT = -1; |
| 111 | |
| 112 | // for roller |
| 113 | public static final double INTAKE_SPEED = 0.7; |
| 114 | public static final double OUTPUT_SPEED = -0.7; |
| 115 | } |
| 116 | |
| 117 | public static class Auton { // TODO: test for all these values |
| 118 | // Defense crossing speeds from -1 to 1 |
| 119 | public static final double DEFAULT_SPEED = 0.3; |
| 120 | public static final double MOAT_SPEED = 0.6; |
| 121 | public static final double ROCK_WALL_SPEED = 0.8; |
| 122 | public static final double ROUGH_TERRAIN_SPEED = 0.7; |
| 123 | public static final double RAMPART_SPEED = 0.4; |
| 124 | public static final double LOW_BAR_SPEED = 0.5; |
| 125 | |
| 126 | // Defense crossing times in seconds |
| 127 | public static final double DEFAULT_TIME = 10.0; |
| 128 | public static final double MOAT_TIME = 7.0; |
| 129 | public static final double ROCK_WALL_TIME = 8.0; |
| 130 | public static final double ROUGH_TERRAIN_TIME = 6.0; |
| 131 | public static final double RAMPART_TIME = 10.0; |
| 132 | public static final double LOW_BAR_TIME = 6.0; |
| 133 | |
| 134 | // Time to wait before shooting in seconds |
| 135 | public static final double WAIT_TIME = 1.0; |
| 136 | } |
| 137 | |
| 138 | public enum Defense { |
| 139 | PORTCULLIS, SALLY_PORT, ROUGH_TERRAIN, LOW_BAR, CHIVAL_DE_FRISE, DRAWBRIDGE, MOAT, ROCK_WALL, RAMPART; |
| 140 | } |
| 141 | } |