1 package org
.usfirst
.frc
.team3501
.robot
.subsystems
;
3 import org
.usfirst
.frc
.team3501
.robot
.Constants
;
5 import edu
.wpi
.first
.wpilibj
.AnalogPotentiometer
;
6 import edu
.wpi
.first
.wpilibj
.CANTalon
;
7 import edu
.wpi
.first
.wpilibj
.command
.Subsystem
;
9 public class DefenseArm
extends Subsystem
{
10 // Defense arm related objects
11 private AnalogPotentiometer potentiometer
;
12 private CANTalon defenseArmMotor
;
14 // Defense arm specific constants that relate to the degrees per pulse value
15 // for the potentiometers
16 private final static double PULSES_PER_ROTATION
= 1; // in pulses
17 private final static double FULL_RANGE
= 270.0; // in degrees
18 private final static double OFFSET
= -135.0; // in degrees
19 private Double
[] levelsToDegrees
= { 0.0, 45.0, 90.0 }; // 3 level array;
25 potentiometer
= new AnalogPotentiometer(Constants
.DefenseArm
.CHANNEL
,
27 defenseArmMotor
= new CANTalon(Constants
.DefenseArm
.PORT
);
30 public double getLevel(int desiredArmLocation
) {
31 return levelsToDegrees
[desiredArmLocation
];
34 public void moveArmTo(int levelsToDegrees
) {
38 public void moveArmDown(int levelsToDegrees
) {
39 // to move arm down levels
40 if (levelsToDegrees
> 0 & levelsToDegrees
< 45) {
42 if (levelsToDegrees
> 45 & levelsToDegrees
< 90) {
49 public void moveArmUp(int levelsToDegrees
) {
50 // to move arm up levels
51 if (levelsToDegrees
< 45 & levelsToDegrees
> 0) {
53 if (levelsToDegrees
< 90 & levelsToDegrees
> 45) {
62 protected void initDefaultCommand() {