Make 2 methods for gyro to getAngle and setSensitivity in DriveTrain class
authorEvanYap <evanyap.14@gmail.com>
Thu, 28 Jan 2016 03:13:37 +0000 (19:13 -0800)
committerEvanYap <evanyap.14@gmail.com>
Sat, 13 Feb 2016 05:11:55 +0000 (21:11 -0800)
src/org/usfirst/frc/team3501/robot/Constants.java
src/org/usfirst/frc/team3501/robot/Robot.java
src/org/usfirst/frc/team3501/robot/subsystems/DriveTrain.java

index d17d1da90c6136948905e7d8fa41b7216a555c11..6973eac9c82cd8eb8e3a7c3bf41d337b38c63b5f 100644 (file)
@@ -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 {
index fbda4afcadc22c0cd97050c93f67753183c6ca7d..e27c21f7a3ba59db9f8f1114ccbd963ee2487e4a 100644 (file)
@@ -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;
index 6936abf72335a05142e400b45f673cf63342fcb1..e7610ce1672c3bc2927c41b1cbd0501f68a561bd 100644 (file)
@@ -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);
   }
+
 }