mirror of
https://github.com/TimeCrafters/FreightFrenzy.git
synced 2025-12-15 14:02:34 +00:00
added limits to the white arm so it doesn't over extend, also it cant retract if it is extended and needs to restart so that will need to be fixed.
This commit is contained in:
@@ -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");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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.8;
|
||||||
maxDepositorArmSpeed = 0.7;
|
maxDepositorArmSpeed = 0.8;
|
||||||
|
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());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user