From: EvanYap Date: Thu, 28 Jan 2016 03:13:37 +0000 (-0800) Subject: Make 2 methods for gyro to getAngle and setSensitivity in DriveTrain class X-Git-Url: http://challenge-bot.com/repos/?a=commitdiff_plain;h=d004deeefcc7f8efb5bbca20391f71228f86b019;p=3501%2Fstronghold-2016 Make 2 methods for gyro to getAngle and setSensitivity in DriveTrain class --- diff --git a/src/org/usfirst/frc/team3501/robot/Constants.java b/src/org/usfirst/frc/team3501/robot/Constants.java index d17d1da9..6973eac9 100644 --- a/src/org/usfirst/frc/team3501/robot/Constants.java +++ b/src/org/usfirst/frc/team3501/robot/Constants.java @@ -40,8 +40,7 @@ public class Constants { private final static double WHEEL_SPROCKET_DIAMETER = 3.5; // in inches public final static double INCHES_PER_PULSE = (((Math.PI) * OUTPUT_SPROCKET_DIAMETER / PULSES_PER_ROTATION) - / WHEEL_SPROCKET_DIAMETER) - * WHEEL_DIAMETER; + / WHEEL_SPROCKET_DIAMETER) * WHEEL_DIAMETER; } public static class Scaler { diff --git a/src/org/usfirst/frc/team3501/robot/Robot.java b/src/org/usfirst/frc/team3501/robot/Robot.java index fbda4afc..e27c21f7 100644 --- a/src/org/usfirst/frc/team3501/robot/Robot.java +++ b/src/org/usfirst/frc/team3501/robot/Robot.java @@ -16,7 +16,6 @@ public class Robot extends IterativeRobot { public static OI oi; public static DriveTrain driveTrain; public static Shooter shooter; - public static Scaler scaler; public static IntakeArm intakeArm; public static DefenseArm defenseArm; diff --git a/src/org/usfirst/frc/team3501/robot/subsystems/DriveTrain.java b/src/org/usfirst/frc/team3501/robot/subsystems/DriveTrain.java index 6936abf7..e7610ce1 100644 --- a/src/org/usfirst/frc/team3501/robot/subsystems/DriveTrain.java +++ b/src/org/usfirst/frc/team3501/robot/subsystems/DriveTrain.java @@ -7,6 +7,7 @@ import edu.wpi.first.wpilibj.CANTalon; import edu.wpi.first.wpilibj.CounterBase.EncodingType; import edu.wpi.first.wpilibj.Encoder; import edu.wpi.first.wpilibj.I2C; +import edu.wpi.first.wpilibj.PIDController; import edu.wpi.first.wpilibj.command.Subsystem; public class DriveTrain extends Subsystem { @@ -14,6 +15,20 @@ public class DriveTrain extends Subsystem { private Encoder leftEncoder, rightEncoder; public static Lidar lidar; private CANTalon frontLeft, frontRight, rearLeft, rearRight; + private PIDController frontLeftC, frontRightC, rearLeftC, rearRightC; + // Drivetrain specific constants that relate to the inches per pulse value for + // the encoders + private final static double WHEEL_DIAMETER = 6.0; // in inches + private final static double PULSES_PER_ROTATION = 256; // in pulses + private final static double OUTPUT_SPROCKET_DIAMETER = 2.0; // in inches + private final static double WHEEL_SPROCKET_DIAMETER = 3.5; // in inches + public final static double INCHES_PER_PULSE = (((Math.PI) + * OUTPUT_SPROCKET_DIAMETER / PULSES_PER_ROTATION) + / WHEEL_SPROCKET_DIAMETER) * WHEEL_DIAMETER; + // Drivetrain specific constants that relate to the PID controllers + private final static double Kp = 1.0, Ki = 0.0, + Kd = 0.0 * (OUTPUT_SPROCKET_DIAMETER / PULSES_PER_ROTATION) + / (WHEEL_SPROCKET_DIAMETER) * WHEEL_DIAMETER; public DriveTrain() { frontLeft = new CANTalon(Constants.DriveTrain.FRONT_LEFT); @@ -28,6 +43,9 @@ public class DriveTrain extends Subsystem { Constants.DriveTrain.ENCODER_RIGHT_B, false, EncodingType.k4X); leftEncoder.setDistancePerPulse(Constants.DriveTrain.INCHES_PER_PULSE); rightEncoder.setDistancePerPulse(Constants.DriveTrain.INCHES_PER_PULSE); + leftEncoder.setDistancePerPulse(INCHES_PER_PULSE); + rightEncoder.setDistancePerPulse(INCHES_PER_PULSE); + } @Override @@ -79,4 +97,5 @@ public class DriveTrain extends Subsystem { this.rearLeft.set(leftSpeed); this.rearRight.set(-rightSpeed); } + }