X-Git-Url: http://challenge-bot.com/repos/?a=blobdiff_plain;f=src%2Forg%2Fusfirst%2Ffrc%2Fteam3501%2Frobot%2Fsubsystems%2FDefenseArm.java;h=4cd4232e64ea54d90b441d0f177e2db15d076d16;hb=8e57685f4bacaa8353202309b93bd8f7802e0631;hp=8d30599838198924c287d726bb83104e571294b9;hpb=3f5489cc5ac3b7c7957602f45c50c14f6ad3df1a;p=3501%2Fstronghold-2016 diff --git a/src/org/usfirst/frc/team3501/robot/subsystems/DefenseArm.java b/src/org/usfirst/frc/team3501/robot/subsystems/DefenseArm.java index 8d305998..4cd4232e 100755 --- a/src/org/usfirst/frc/team3501/robot/subsystems/DefenseArm.java +++ b/src/org/usfirst/frc/team3501/robot/subsystems/DefenseArm.java @@ -1,18 +1,89 @@ -package org.usfirst.frc.team3501.robot.subsystems; - -import edu.wpi.first.wpilibj.AnalogPotentiometer; -import edu.wpi.first.wpilibj.command.Subsystem; - -public class DefenseArm extends Subsystem { - // Defense arm related objects - private AnalogPotentiometer potentiometer; - // Defense arm specific constants that relate to the degrees per pulse value - // for the potentiometers - private final static double PULSES_PER_ROTATION = 0; // in pulses - private final static double FULL_RANGE = 270.0; // in degrees - private final static double OFFSET = -135.0; // in degrees - - @Override - protected void initDefaultCommand() { - } -} +package org.usfirst.frc.team3501.robot.subsystems; + +import org.usfirst.frc.team3501.robot.Constants; + +import edu.wpi.first.wpilibj.AnalogPotentiometer; +import edu.wpi.first.wpilibj.CANTalon; +import edu.wpi.first.wpilibj.command.Subsystem; + +public class DefenseArm extends Subsystem { + // Defense arm related objects + private AnalogPotentiometer defenseArmPotentiometer; + private AnalogPotentiometer defenseHandPotentiometer; + private CANTalon defenseArm; + private CANTalon defenseHand; + private double hookHeight; + private double footHeight; + private Double[] potAngles; + + public DefenseArm() { + defenseArmPotentiometer = new AnalogPotentiometer( + Constants.DefenseArm.ARM_CHANNEL, + Constants.DefenseArm.FULL_RANGE, + Constants.DefenseArm.OFFSET); + + defenseArm = new CANTalon(Constants.DefenseArm.ARM_PORT); + defenseHand = new CANTalon(Constants.DefenseArm.HAND_PORT); + } + + public double getArmPotAngle() { + return defenseArmPotentiometer.get(); + } + + public double getHandPotAngle() { + return defenseHandPotentiometer.get(); + } + + public double getDistance(int desiredArmLocation) { + return potAngles[desiredArmLocation]; + } + + public Double[] putInValues() { + for (int i = 0; i < 3; i++) { + potAngles[i] = (double) (45 * i); + } + return potAngles; + } + + /*** + * This method sets the voltage of the arm motor. The range is from [-1,1]. A + * negative voltage makes the direction of the motor go backwards. + * + * @param speed + * The voltage that you set the motor at. The range of the voltage of + * the arm motor is from [-1,1]. A + * negative voltage makes the direction of the motor go backwards. + */ + + public void setArmSpeed(double speed) { + if (speed > 1) + speed = 1; + else if (speed < -1) + speed = -1; + + defenseArm.set(speed); + } + + /*** + * This method sets the voltage of the hand motor. The range is from [-1,1]. A + * negative voltage makes the direction of the motor go backwards. + * + * @param speed + * The voltage that you set the motor at. The range of the voltage of + * the hand motor is from [-1,1]. A + * negative voltage makes the direction of the motor go backwards. + */ + + public void setHandSpeed(double speed) { + if (speed > 1) + speed = 1; + else if (speed < -1) + speed = -1; + + defenseHand.set(speed); + } + + @Override + protected void initDefaultCommand() { + } +}