mirror of
https://github.com/TimeCrafters/FreightFrenzy.git
synced 2025-12-13 05:02:34 +00:00
Compare commits
2 Commits
0acdad3115
...
166b8091b8
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
166b8091b8 | ||
|
|
9efd0ffcad |
@@ -209,7 +209,7 @@ public class Robot {
|
|||||||
private void initCollector() {
|
private void initCollector() {
|
||||||
orangeArmBobbin = engine.hardwareMap.dcMotor.get("orangeArmBobbin");
|
orangeArmBobbin = engine.hardwareMap.dcMotor.get("orangeArmBobbin");
|
||||||
orangeDispenser = engine.hardwareMap.servo.get("orangeDispenser");
|
orangeDispenser = engine.hardwareMap.servo.get("orangeDispenser");
|
||||||
orangeArmBobbin.setDirection(DcMotorSimple.Direction.FORWARD);
|
orangeArmBobbin.setDirection(DcMotorSimple.Direction.REVERSE);
|
||||||
turretServoOrange = engine.hardwareMap.crservo.get("turretServoOrange");
|
turretServoOrange = engine.hardwareMap.crservo.get("turretServoOrange");
|
||||||
orangeArmRiser = engine.hardwareMap.dcMotor.get("orangeArmRiser");
|
orangeArmRiser = engine.hardwareMap.dcMotor.get("orangeArmRiser");
|
||||||
orangeArmRiser.setDirection(DcMotorSimple.Direction.FORWARD);
|
orangeArmRiser.setDirection(DcMotorSimple.Direction.FORWARD);
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package org.timecrafters.FreightFrenzy.Competition.TeleOp.States;
|
package org.timecrafters.FreightFrenzy.Competition.TeleOp.States;
|
||||||
|
|
||||||
|
import com.qualcomm.robotcore.hardware.CRServo;
|
||||||
import com.qualcomm.robotcore.hardware.DcMotor;
|
import com.qualcomm.robotcore.hardware.DcMotor;
|
||||||
|
import com.qualcomm.robotcore.hardware.Gamepad;
|
||||||
|
|
||||||
import org.cyberarm.engine.V2.CyberarmState;
|
import org.cyberarm.engine.V2.CyberarmState;
|
||||||
import org.timecrafters.FreightFrenzy.Competition.Common.Robot;
|
import org.timecrafters.FreightFrenzy.Competition.Common.Robot;
|
||||||
@@ -8,22 +10,25 @@ 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;
|
int maxArmTravelDistance, minArmTravelDistance;
|
||||||
|
boolean armLimitToggle = false, orangeCollectorToggle = false, whiteCollectorToggle = false;
|
||||||
|
boolean allianceRed = true;
|
||||||
|
|
||||||
public TeleOpState(Robot robot) {
|
public TeleOpState(Robot robot) {
|
||||||
this.robot = robot;
|
this.robot = robot;
|
||||||
maxDriveSpeed = 1;
|
maxDriveSpeed = 1;
|
||||||
maxCollectorArmSpeed = 1;
|
maxCollectorArmSpeed = 1;
|
||||||
maxDepositorArmSpeed = 1;
|
maxDepositorArmSpeed = 1;
|
||||||
|
minArmTravelDistance = 0;
|
||||||
maxArmTravelDistance = 4000;
|
maxArmTravelDistance = 4000;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void start() {
|
public void start() {
|
||||||
super.start();
|
super.start();
|
||||||
// FIXME: Don't reset when doing autonomous stuff
|
// 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.STOP_AND_RESET_ENCODER);
|
||||||
robot.whiteArmBobbin.setMode(DcMotor.RunMode.RUN_WITHOUT_ENCODER);
|
robot.whiteArmBobbin.setMode(DcMotor.RunMode.RUN_WITHOUT_ENCODER);
|
||||||
robot.orangeArmBobbin.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER);
|
robot.orangeArmBobbin.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER);
|
||||||
@@ -55,7 +60,7 @@ public class TeleOpState extends CyberarmState {
|
|||||||
|
|
||||||
robot.orangeArmBobbin.setPower(engine.gamepad1.left_trigger * maxDepositorArmSpeed);
|
robot.orangeArmBobbin.setPower(engine.gamepad1.left_trigger * maxDepositorArmSpeed);
|
||||||
} else {
|
} else {
|
||||||
if (engine.gamepad1.left_trigger <= 0 && robot.orangeArmBobbin.getCurrentPosition() >= 0) {
|
if (engine.gamepad1.left_trigger <= 0 && robot.orangeArmBobbin.getCurrentPosition() >= minArmTravelDistance) {
|
||||||
robot.orangeArmBobbin.setPower(-engine.gamepad1.right_trigger * maxDepositorArmSpeed);
|
robot.orangeArmBobbin.setPower(-engine.gamepad1.right_trigger * maxDepositorArmSpeed);
|
||||||
} else {
|
} else {
|
||||||
robot.orangeArmBobbin.setPower(0);
|
robot.orangeArmBobbin.setPower(0);
|
||||||
@@ -65,7 +70,7 @@ public class TeleOpState extends CyberarmState {
|
|||||||
|
|
||||||
// if either of these buttons... move the servo
|
// if either of these buttons... move the servo
|
||||||
// turretServo1 = orange
|
// turretServo1 = orange
|
||||||
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.turretServoOrange.setPower(-1);
|
robot.turretServoOrange.setPower(-1);
|
||||||
@@ -75,11 +80,11 @@ public class TeleOpState extends CyberarmState {
|
|||||||
robot.turretServoOrange.setPower(1);
|
robot.turretServoOrange.setPower(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// if neither of these buttons... power off
|
// if neither of these buttons... power off
|
||||||
else {
|
else {
|
||||||
robot.turretServoOrange.setPower(0);
|
robot.turretServoOrange.setPower(0);
|
||||||
}
|
}*/
|
||||||
|
turretOrbitControl(engine.gamepad1, robot.turretServoOrange, allianceRed);
|
||||||
|
|
||||||
// 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) {
|
||||||
@@ -97,22 +102,6 @@ public class TeleOpState extends CyberarmState {
|
|||||||
robot.orangeArmRiser.setPower(0);
|
robot.orangeArmRiser.setPower(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// if bumpers pressed intake wheel move...
|
|
||||||
|
|
||||||
if (engine.gamepad1.right_bumper || engine.gamepad1.left_bumper) {
|
|
||||||
if (engine.gamepad1.right_bumper) {
|
|
||||||
robot.collectorOrange.setPower(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (engine.gamepad1.left_bumper) {
|
|
||||||
robot.collectorOrange.setPower(-1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
// no bumpers pressed no wheel move...
|
|
||||||
else {
|
|
||||||
robot.collectorOrange.setPower(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
// button x pressed carousel wheel move.
|
// button x pressed carousel wheel move.
|
||||||
|
|
||||||
if (engine.gamepad1.x){
|
if (engine.gamepad1.x){
|
||||||
@@ -130,7 +119,7 @@ public class TeleOpState extends CyberarmState {
|
|||||||
|
|
||||||
robot.whiteArmBobbin.setPower(engine.gamepad2.left_trigger * maxDepositorArmSpeed);
|
robot.whiteArmBobbin.setPower(engine.gamepad2.left_trigger * maxDepositorArmSpeed);
|
||||||
} else {
|
} else {
|
||||||
if (engine.gamepad2.left_trigger <= 0 && robot.whiteArmBobbin.getCurrentPosition() >= 0) {
|
if (engine.gamepad2.left_trigger <= 0 && robot.whiteArmBobbin.getCurrentPosition() >= minArmTravelDistance) {
|
||||||
robot.whiteArmBobbin.setPower(-engine.gamepad2.right_trigger * maxDepositorArmSpeed);
|
robot.whiteArmBobbin.setPower(-engine.gamepad2.right_trigger * maxDepositorArmSpeed);
|
||||||
} else {
|
} else {
|
||||||
robot.whiteArmBobbin.setPower(0);
|
robot.whiteArmBobbin.setPower(0);
|
||||||
@@ -151,21 +140,21 @@ public class TeleOpState extends CyberarmState {
|
|||||||
|
|
||||||
// if either of these buttons move the servo
|
// if either of these buttons move the servo
|
||||||
// turretServo2 = white
|
// turretServo2 = white
|
||||||
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.turretServoWhite.setPower(-1);
|
// robot.turretServoWhite.setPower(-1);
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
if (engine.gamepad2.dpad_left) {
|
// if (engine.gamepad2.dpad_left) {
|
||||||
robot.turretServoWhite.setPower(1);
|
// robot.turretServoWhite.setPower(1);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
// if neither of these buttons power off
|
// // if neither of these buttons power off
|
||||||
else {
|
// else {
|
||||||
robot.turretServoWhite.setPower(0);
|
// robot.turretServoWhite.setPower(0);
|
||||||
}
|
// }
|
||||||
|
turretOrbitControl(engine.gamepad2, robot.turretServoWhite, allianceRed);
|
||||||
// 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) {
|
||||||
|
|
||||||
@@ -181,27 +170,116 @@ public class TeleOpState extends CyberarmState {
|
|||||||
else {
|
else {
|
||||||
robot.whiteArmRiser.setPower(0);
|
robot.whiteArmRiser.setPower(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (engine.gamepad2.left_bumper || engine.gamepad2.right_bumper) {
|
|
||||||
|
|
||||||
if (engine.gamepad2.left_bumper) {
|
|
||||||
robot.collectorWhite.setPower(-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (engine.gamepad2.right_bumper) {
|
|
||||||
robot.collectorWhite.setPower(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
else {
|
|
||||||
robot.collectorWhite.setPower(0);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void telemetry() {
|
public void telemetry() {
|
||||||
engine.telemetry.addData("white arm extension", robot.whiteArmBobbin.getCurrentPosition());
|
engine.telemetry.addData("white arm extension", robot.whiteArmBobbin.getCurrentPosition());
|
||||||
|
engine.telemetry.addData("orange arm extension", robot.orangeArmBobbin.getCurrentPosition());
|
||||||
|
|
||||||
|
engine.telemetry.addData("arm limit toggle", armLimitToggle);
|
||||||
|
engine.telemetry.addData("collector toggle orange", orangeCollectorToggle);
|
||||||
|
engine.telemetry.addData("collector toggle white", whiteCollectorToggle);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void buttonUp(Gamepad gamepad, String button) {
|
||||||
|
// this is a toggle of a limit for arm extension in the case of the robot crashes
|
||||||
|
// in the middle of the game we can bring the arm back in and extend and reset its position.
|
||||||
|
System.out.println("GamePad: " + gamepad.getGamepadId() + " Button: " + button);
|
||||||
|
|
||||||
|
if (button.equals("y")) {
|
||||||
|
System.out.println("Y has been pressed! (" + armLimitToggle + ")");
|
||||||
|
|
||||||
|
if (!armLimitToggle) {
|
||||||
|
armLimitToggle = true;
|
||||||
|
minArmTravelDistance = -8500;
|
||||||
|
maxArmTravelDistance = 8500;
|
||||||
|
} else {
|
||||||
|
armLimitToggle = false;
|
||||||
|
minArmTravelDistance = 0;
|
||||||
|
maxArmTravelDistance = 4000;
|
||||||
|
robot.orangeArmBobbin.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER);
|
||||||
|
robot.whiteArmBobbin.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER);
|
||||||
|
robot.orangeArmBobbin.setMode(DcMotor.RunMode.RUN_WITHOUT_ENCODER);
|
||||||
|
robot.whiteArmBobbin.setMode(DcMotor.RunMode.RUN_WITHOUT_ENCODER);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gamepad == engine.gamepad1) {
|
||||||
|
switch (button) {
|
||||||
|
case "left_bumper":
|
||||||
|
if (orangeCollectorToggle) {
|
||||||
|
orangeCollectorToggle = false;
|
||||||
|
robot.collectorOrange.setPower(0);
|
||||||
|
} else {
|
||||||
|
orangeCollectorToggle = true;
|
||||||
|
robot.collectorOrange.setPower(1);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "right_bumper":
|
||||||
|
if (orangeCollectorToggle) {
|
||||||
|
orangeCollectorToggle = false;
|
||||||
|
robot.collectorOrange.setPower(0);
|
||||||
|
} else {
|
||||||
|
orangeCollectorToggle = true;
|
||||||
|
robot.collectorOrange.setPower(-1);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gamepad == engine.gamepad2) {
|
||||||
|
switch (button) {
|
||||||
|
|
||||||
|
case "left_bumper":
|
||||||
|
if (whiteCollectorToggle) {
|
||||||
|
whiteCollectorToggle = false;
|
||||||
|
robot.collectorWhite.setPower(0);
|
||||||
|
} else {
|
||||||
|
whiteCollectorToggle = true;
|
||||||
|
robot.collectorWhite.setPower(1);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "right_bumper":
|
||||||
|
if (whiteCollectorToggle) {
|
||||||
|
whiteCollectorToggle = false;
|
||||||
|
robot.collectorWhite.setPower(0);
|
||||||
|
} else {
|
||||||
|
whiteCollectorToggle = true;
|
||||||
|
robot.collectorWhite.setPower(-1);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void turretOrbitControl (Gamepad gamepad, CRServo turretServo, boolean bias){
|
||||||
|
|
||||||
|
// if either of these buttons... move the servo
|
||||||
|
// turretServo1 = orange
|
||||||
|
if (gamepad.dpad_right || gamepad.dpad_left) {
|
||||||
|
if (bias) {
|
||||||
|
if (gamepad.dpad_right) {
|
||||||
|
turretServo.setPower(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gamepad.dpad_left) {
|
||||||
|
turretServo.setPower(1);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (gamepad.dpad_right) {
|
||||||
|
turretServo.setPower(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gamepad.dpad_left) {
|
||||||
|
turretServo.setPower(-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
turretServo.setPower(0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user