Compare commits

...

2 Commits

2 changed files with 60 additions and 46 deletions

View File

@@ -74,16 +74,16 @@ public class Robot {
public static final int COUNTS_PER_REVOLUTION = 1000; public static final int COUNTS_PER_REVOLUTION = 1000;
public DcMotor driveWarehouseLeft, driveWarehouseRight, driveGoalLeft, driveGoalRight, public DcMotor driveWarehouseLeft, driveWarehouseRight, driveGoalLeft, driveGoalRight,
collectorArmRiser, collectorArmBobbin, depositorArmRiser, depositorArmBobbin; orangeArmRiser, orangeArmBobbin, whiteArmRiser, whiteArmBobbin;
// Collector // Collector
public Servo collectorDispenser; public Servo orangeDispenser;
public CRServo turretServo1; public CRServo turretServoOrange;
// Depositor // Depositor
public Servo depositorDispenser; public Servo whiteDispenser;
// Depositor, and carousel // Depositor, and carousel
public CRServo turretServo2, carouselWheel, collectorOrange, collectorWhite; public CRServo turretServoWhite, carouselWheel, collectorOrange, collectorWhite;
@@ -207,24 +207,24 @@ public class Robot {
} }
private void initCollector() { private void initCollector() {
collectorArmBobbin = engine.hardwareMap.dcMotor.get("collectorArmBobbin"); orangeArmBobbin = engine.hardwareMap.dcMotor.get("orangeArmBobbin");
collectorDispenser = engine.hardwareMap.servo.get("collectorDispenser"); orangeDispenser = engine.hardwareMap.servo.get("orangeDispenser");
collectorArmBobbin.setDirection(DcMotorSimple.Direction.FORWARD); orangeArmBobbin.setDirection(DcMotorSimple.Direction.FORWARD);
turretServo1 = engine.hardwareMap.crservo.get("turretServo1"); turretServoOrange = engine.hardwareMap.crservo.get("turretServoOrange");
collectorArmRiser = engine.hardwareMap.dcMotor.get("collectorArmRiser"); orangeArmRiser = engine.hardwareMap.dcMotor.get("orangeArmRiser");
collectorArmRiser.setDirection(DcMotorSimple.Direction.FORWARD); orangeArmRiser.setDirection(DcMotorSimple.Direction.FORWARD);
collectorArmRiser.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE); orangeArmRiser.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE);
collectorOrange = engine.hardwareMap.crservo.get("collectorOrange"); collectorOrange = engine.hardwareMap.crservo.get("collectorOrange");
} }
private void initDepositor(){ private void initDepositor(){
depositorDispenser = engine.hardwareMap.servo.get("depositorDispenser"); whiteDispenser = engine.hardwareMap.servo.get("whiteDispenser");
depositorArmBobbin = engine.hardwareMap.dcMotor.get("depositorArmBobbin"); whiteArmBobbin = engine.hardwareMap.dcMotor.get("whiteArmBobbin");
depositorArmBobbin.setDirection(DcMotorSimple.Direction.REVERSE); whiteArmBobbin.setDirection(DcMotorSimple.Direction.REVERSE);
turretServo2 = engine.hardwareMap.crservo.get("turretServo2"); turretServoWhite = engine.hardwareMap.crservo.get("turretServoWhite");
depositorArmRiser = engine.hardwareMap.dcMotor.get("depositorArmRiser"); whiteArmRiser = engine.hardwareMap.dcMotor.get("whiteArmRiser");
depositorArmRiser.setDirection(DcMotorSimple.Direction.FORWARD); whiteArmRiser.setDirection(DcMotorSimple.Direction.FORWARD);
depositorArmRiser.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE); whiteArmRiser.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE);
collectorWhite = engine.hardwareMap.crservo.get("collectorWhite"); collectorWhite = engine.hardwareMap.crservo.get("collectorWhite");
} }

View File

@@ -8,18 +8,24 @@ import org.timecrafters.FreightFrenzy.Competition.Common.Robot;
public class TeleOpState extends CyberarmState { public class TeleOpState extends CyberarmState {
Robot robot; Robot robot;
double maxDriveSpeed, maxCollectorArmSpeed, maxDepositorArmSpeed; double maxDriveSpeed, maxCollectorArmSpeed, maxDepositorArmSpeed;
int maxArmTravelDistance;
public TeleOpState(Robot robot) { public TeleOpState(Robot robot) {
this.robot = robot; this.robot = robot;
maxDriveSpeed = 1; maxDriveSpeed = 1;
maxCollectorArmSpeed = 0.7; maxCollectorArmSpeed = 0.1;
maxDepositorArmSpeed = 0.7; maxDepositorArmSpeed = 0.1;
maxArmTravelDistance = 4000;
} }
@Override @Override
public void start() { public void start() {
super.start(); super.start();
// FIXME: Don't reset when doing autonomous stuff
// FIXME: Fix unable to retract if reset mid-match
robot.whiteArmBobbin.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER);
robot.whiteArmBobbin.setMode(DcMotor.RunMode.RUN_WITHOUT_ENCODER);
} }
@Override @Override
@@ -35,18 +41,18 @@ public class TeleOpState extends CyberarmState {
// dispenser powered // dispenser powered
if (engine.gamepad1.b){ if (engine.gamepad1.b){
robot.collectorDispenser.setPosition(.5); robot.orangeDispenser.setPosition(.5);
} }
// if not pressed dispenser off // if not pressed dispenser off
else { else {
robot.collectorDispenser.setPosition(0); robot.orangeDispenser.setPosition(0);
} }
// if one of triggers pressed arm extends or unextends // if one of triggers pressed arm extends or unextends
robot.collectorArmBobbin.setPower(engine.gamepad1.left_trigger * maxCollectorArmSpeed); robot.orangeArmBobbin.setPower(engine.gamepad1.left_trigger * maxCollectorArmSpeed);
if (engine.gamepad1.left_trigger <= 0){ if (engine.gamepad1.left_trigger <= 0){
robot.collectorArmBobbin.setPower(-engine.gamepad1.right_trigger * maxCollectorArmSpeed); robot.orangeArmBobbin.setPower(-engine.gamepad1.right_trigger * maxCollectorArmSpeed);
} }
// if either of these buttons... move the servo // if either of these buttons... move the servo
@@ -54,33 +60,33 @@ public class TeleOpState extends CyberarmState {
if (engine.gamepad1.dpad_right || engine.gamepad1.dpad_left) { if (engine.gamepad1.dpad_right || engine.gamepad1.dpad_left) {
if (engine.gamepad1.dpad_right) { if (engine.gamepad1.dpad_right) {
robot.turretServo1.setPower(-1); robot.turretServoOrange.setPower(-1);
} }
if (engine.gamepad1.dpad_left) { if (engine.gamepad1.dpad_left) {
robot.turretServo1.setPower(1); robot.turretServoOrange.setPower(1);
} }
} }
// if neither of these buttons... power off // if neither of these buttons... power off
else { else {
robot.turretServo1.setPower(0); robot.turretServoOrange.setPower(0);
} }
// if dpad verticles pressed arm rises or lowers... // if dpad verticles pressed arm rises or lowers...
if (engine.gamepad1.dpad_up || engine.gamepad1.dpad_down) { if (engine.gamepad1.dpad_up || engine.gamepad1.dpad_down) {
if (engine.gamepad1.dpad_up) { if (engine.gamepad1.dpad_up) {
robot.collectorArmRiser.setPower(1); robot.orangeArmRiser.setPower(1);
} }
if (engine.gamepad1.dpad_down) { if (engine.gamepad1.dpad_down) {
robot.collectorArmRiser.setPower(-1); robot.orangeArmRiser.setPower(-1);
} }
} }
// nothing pressed nothing move... // nothing pressed nothing move...
else { else {
robot.collectorArmRiser.setPower(0); robot.orangeArmRiser.setPower(0);
} }
// if bumpers pressed intake wheel move... // if bumpers pressed intake wheel move...
@@ -112,19 +118,27 @@ public class TeleOpState extends CyberarmState {
// GamePad 2 // GamePad 2
// if triggers are pressed then arm extends or unextends // if triggers are pressed then arm extends or unextends
robot.depositorArmBobbin.setPower(engine.gamepad2.left_trigger * maxDepositorArmSpeed); if (robot.whiteArmBobbin.getCurrentPosition() <= maxArmTravelDistance && engine.gamepad2.left_trigger > 0) {
robot.whiteArmBobbin.setPower(engine.gamepad2.left_trigger * maxDepositorArmSpeed);
} else {
if (engine.gamepad2.left_trigger <= 0 && robot.whiteArmBobbin.getCurrentPosition() >= 0) {
robot.whiteArmBobbin.setPower(-engine.gamepad2.right_trigger * maxDepositorArmSpeed);
} else {
robot.whiteArmBobbin.setPower(0);
}
if (engine.gamepad2.left_trigger <= 0) {
robot.depositorArmBobbin.setPower(-engine.gamepad2.right_trigger * maxDepositorArmSpeed);
} }
// if b is pressed then depositor door opens, if not pressed not opening. // if b is pressed then depositor door opens, if not pressed not opening.
if (engine.gamepad2.b){ if (engine.gamepad2.b){
robot.depositorDispenser.setPosition(.5); robot.whiteDispenser.setPosition(.5);
} }
else { else {
robot.depositorDispenser.setPosition(0); robot.whiteDispenser.setPosition(0);
} }
// if either of these buttons move the servo // if either of these buttons move the servo
@@ -132,32 +146,32 @@ public class TeleOpState extends CyberarmState {
if (engine.gamepad2.dpad_right || engine.gamepad2.dpad_left) { if (engine.gamepad2.dpad_right || engine.gamepad2.dpad_left) {
if (engine.gamepad2.dpad_right) { if (engine.gamepad2.dpad_right) {
robot.turretServo2.setPower(-1); robot.turretServoWhite.setPower(-1);
} }
if (engine.gamepad2.dpad_left) { if (engine.gamepad2.dpad_left) {
robot.turretServo2.setPower(1); robot.turretServoWhite.setPower(1);
} }
} }
// if neither of these buttons power off // if neither of these buttons power off
else { else {
robot.turretServo2.setPower(0); robot.turretServoWhite.setPower(0);
} }
// if dpad verticles pressed arm rises or lowers // if dpad verticles pressed arm rises or lowers
if (engine.gamepad2.dpad_down || engine.gamepad2.dpad_up) { if (engine.gamepad2.dpad_down || engine.gamepad2.dpad_up) {
if (engine.gamepad2.dpad_up) { if (engine.gamepad2.dpad_up) {
robot.depositorArmRiser.setPower(1); robot.whiteArmRiser.setPower(-1);
} }
if (engine.gamepad2.dpad_down) { if (engine.gamepad2.dpad_down) {
robot.depositorArmRiser.setPower(-1); robot.whiteArmRiser.setPower(1);
} }
} }
// nothing pressed nothing move... // nothing pressed nothing move...
else { else {
robot.depositorArmRiser.setPower(0); robot.whiteArmRiser.setPower(0);
} }
if (engine.gamepad2.left_bumper || engine.gamepad2.right_bumper) { if (engine.gamepad2.left_bumper || engine.gamepad2.right_bumper) {
@@ -178,8 +192,8 @@ public class TeleOpState extends CyberarmState {
} }
@Override
public void telemetry() {
engine.telemetry.addData("white arm extension", robot.whiteArmBobbin.getCurrentPosition());
}
} }