From: Meryem Esa Date: Tue, 10 Jan 2017 04:24:56 +0000 (-0800) Subject: add getter/setter methods and constants for encoder X-Git-Url: http://challenge-bot.com/repos/?p=3501%2F2017steamworks;a=commitdiff_plain;h=fa4e4a97c3d02f50857995d23f68456a74cb7365 add getter/setter methods and constants for encoder --- diff --git a/src/org/usfirst/frc/team3501/robot/Constants.java b/src/org/usfirst/frc/team3501/robot/Constants.java index 021183a..163ba28 100644 --- a/src/org/usfirst/frc/team3501/robot/Constants.java +++ b/src/org/usfirst/frc/team3501/robot/Constants.java @@ -7,19 +7,28 @@ package org.usfirst.frc.team3501.robot; */ public class Constants { - public static class OI { - public final static int LEFT_STICK_PORT = 0; - public final static int RIGHT_STICK_PORT = 0; - } + public static class OI { + public final static int LEFT_STICK_PORT = 0; + public final static int RIGHT_STICK_PORT = 0; + } - public static class DriveTrain { - public static final int FRONT_LEFT = 0; - public static final int FRONT_RIGHT = 0; - public static final int REAR_LEFT = 0; - public static final int REAR_RIGHT = 0; - } + public static class DriveTrain { + // MOTOR CONTROLLERS + public static final int FRONT_LEFT = 0; + public static final int FRONT_RIGHT = 0; + public static final int REAR_LEFT = 0; + public static final int REAR_RIGHT = 0; - public static enum Direction { - LEFT, RIGHT, DOWN, UP, FORWARD, BACKWARD; - } + // ENCODERS + public static final int ENCODER_LEFT_A = 0; + public static final int ENCODER_LEFT_B = 0; + public static final int ENCODER_RIGHT_A = 0; + public static final int ENCODER_RIGHT_B = 0; + + public static final int INCHES_PER_PULSE = 0; + } + + public static enum Direction { + LEFT, RIGHT, DOWN, UP, FORWARD, BACKWARD; + } } diff --git a/src/org/usfirst/frc/team3501/robot/subsystems/DriveTrain.java b/src/org/usfirst/frc/team3501/robot/subsystems/DriveTrain.java index af22b68..4260636 100644 --- a/src/org/usfirst/frc/team3501/robot/subsystems/DriveTrain.java +++ b/src/org/usfirst/frc/team3501/robot/subsystems/DriveTrain.java @@ -4,6 +4,7 @@ import org.usfirst.frc.team3501.robot.Constants; import com.ctre.CANTalon; +import edu.wpi.first.wpilibj.Encoder; import edu.wpi.first.wpilibj.RobotDrive; import edu.wpi.first.wpilibj.command.Subsystem; @@ -11,13 +12,25 @@ public class DriveTrain extends Subsystem { private static DriveTrain driveTrain; private CANTalon frontLeft, frontRight, rearLeft, rearRight; private RobotDrive robotDrive; + private Encoder leftEncoder, rightEncoder; private DriveTrain() { + // MOTOR CONTROLLERS frontLeft = new CANTalon(Constants.DriveTrain.FRONT_LEFT); frontRight = new CANTalon(Constants.DriveTrain.FRONT_RIGHT); rearLeft = new CANTalon(Constants.DriveTrain.REAR_LEFT); rearRight = new CANTalon(Constants.DriveTrain.REAR_RIGHT); + // ENCODERS + leftEncoder = new Encoder(Constants.DriveTrain.ENCODER_LEFT_A, + Constants.DriveTrain.ENCODER_LEFT_B); + rightEncoder = new Encoder(Constants.DriveTrain.ENCODER_RIGHT_A, + Constants.DriveTrain.ENCODER_RIGHT_B); + + leftEncoder.setDistancePerPulse(Constants.DriveTrain.INCHES_PER_PULSE); + rightEncoder.setDistancePerPulse(Constants.DriveTrain.INCHES_PER_PULSE); + + // ROBOT DRIVE robotDrive = new RobotDrive(frontLeft, rearLeft, frontRight, rearRight); } @@ -31,6 +44,37 @@ public class DriveTrain extends Subsystem { robotDrive.tankDrive(left, right); } + // ENCODER METHODS + + public double getLeftEncoder() { + return leftEncoder.getDistance(); + } + + public double getRightEncoder() { + return rightEncoder.getDistance(); + } + + public double getAvgEncoderDistance() { + return (leftEncoder.getDistance() + rightEncoder.getDistance()) / 2; + } + + public void resetEncoders() { + leftEncoder.reset(); + rightEncoder.reset(); + } + + public double getLeftSpeed() { + return leftEncoder.getRate(); + } + + public double getRightSpeed() { + return rightEncoder.getRate(); + } + + public double getSpeed() { + return (getLeftSpeed() + getRightSpeed()) / 2.0; + } + @Override protected void initDefaultCommand() { }