| 1 | package org.usfirst.frc.team3501.robot.subsystems;\r |
| 2 | \r |
| 3 | import org.usfirst.frc.team3501.robot.Constants;\r |
| 4 | \r |
| 5 | import edu.wpi.first.wpilibj.AnalogPotentiometer;\r |
| 6 | import edu.wpi.first.wpilibj.CANTalon;\r |
| 7 | import edu.wpi.first.wpilibj.command.Subsystem;\r |
| 8 | \r |
| 9 | public class DefenseArm extends Subsystem {\r |
| 10 | // Defense arm related objects\r |
| 11 | private AnalogPotentiometer potentiometer;\r |
| 12 | private CANTalon defenseArmMotor;\r |
| 13 | \r |
| 14 | // Defense arm specific constants that relate to the degrees per pulse value\r |
| 15 | // for the potentiometers\r |
| 16 | private final static double PULSES_PER_ROTATION = 1; // in pulses\r |
| 17 | private final static double FULL_RANGE = 270.0; // in degrees\r |
| 18 | private final static double OFFSET = -135.0; // in degrees\r |
| 19 | private Double[] levelsToDegrees = { 0.0, 45.0, 90.0 }; // 3 level array;\r |
| 20 | \r |
| 21 | // angles at 0,45,90\r |
| 22 | // degrees\r |
| 23 | \r |
| 24 | public DefenseArm() {\r |
| 25 | potentiometer = new AnalogPotentiometer(Constants.DefenseArm.CHANNEL,\r |
| 26 | FULL_RANGE, OFFSET);\r |
| 27 | defenseArmMotor = new CANTalon(Constants.DefenseArm.PORT);\r |
| 28 | }\r |
| 29 | \r |
| 30 | public double getLevel(int desiredArmLocation) {\r |
| 31 | return levelsToDegrees[desiredArmLocation];\r |
| 32 | }\r |
| 33 | \r |
| 34 | public void moveArmTo(int levelsToDegrees) {\r |
| 35 | \r |
| 36 | }\r |
| 37 | \r |
| 38 | public void moveArmDown(int levelsToDegrees) {\r |
| 39 | // to move arm down levels\r |
| 40 | if (levelsToDegrees > 0 & levelsToDegrees < 45) {\r |
| 41 | levelsToDegrees = 0;\r |
| 42 | if (levelsToDegrees > 45 & levelsToDegrees < 90) {\r |
| 43 | levelsToDegrees = 45;\r |
| 44 | \r |
| 45 | }\r |
| 46 | }\r |
| 47 | }\r |
| 48 | \r |
| 49 | public void moveArmUp(int levelsToDegrees) {\r |
| 50 | // to move arm up levels\r |
| 51 | if (levelsToDegrees < 45 & levelsToDegrees > 0) {\r |
| 52 | levelsToDegrees = 45;\r |
| 53 | if (levelsToDegrees < 90 & levelsToDegrees > 45) {\r |
| 54 | levelsToDegrees = 90;\r |
| 55 | \r |
| 56 | }\r |
| 57 | \r |
| 58 | }\r |
| 59 | }\r |
| 60 | \r |
| 61 | @Override\r |
| 62 | protected void initDefaultCommand() {\r |
| 63 | }\r |
| 64 | }\r |