From 98ade4548595cdd0eed3404e5504956ae45908f3 Mon Sep 17 00:00:00 2001 From: Sodi Date: Thu, 25 Aug 2022 19:29:09 -0500 Subject: [PATCH 1/4] Tank drive w/ bumper strafe yay --- .../cyberarm/engines/PingPongEngine.java | 24 +++++++++++++ .../cyberarm/states/PingPongState.java | 35 +++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 TeamCode/src/main/java/org/timecrafters/minibots/cyberarm/engines/PingPongEngine.java create mode 100644 TeamCode/src/main/java/org/timecrafters/minibots/cyberarm/states/PingPongState.java diff --git a/TeamCode/src/main/java/org/timecrafters/minibots/cyberarm/engines/PingPongEngine.java b/TeamCode/src/main/java/org/timecrafters/minibots/cyberarm/engines/PingPongEngine.java new file mode 100644 index 0000000..f3cace8 --- /dev/null +++ b/TeamCode/src/main/java/org/timecrafters/minibots/cyberarm/engines/PingPongEngine.java @@ -0,0 +1,24 @@ +package org.timecrafters.minibots.cyberarm.engines; + +import com.qualcomm.robotcore.eventloop.opmode.TeleOp; + +import org.cyberarm.engine.V2.CyberarmEngine; +import org.timecrafters.minibots.cyberarm.states.MecanumRobot; +import org.timecrafters.minibots.cyberarm.states.PingPongState; + +@TeleOp (name = "Sodi PingPong") + +public class PingPongEngine extends CyberarmEngine { + + MecanumRobot robot; + + @Override + public void setup() { + + robot = new MecanumRobot(this); + + addState(new PingPongState(robot)); + + + } +} diff --git a/TeamCode/src/main/java/org/timecrafters/minibots/cyberarm/states/PingPongState.java b/TeamCode/src/main/java/org/timecrafters/minibots/cyberarm/states/PingPongState.java new file mode 100644 index 0000000..10153e7 --- /dev/null +++ b/TeamCode/src/main/java/org/timecrafters/minibots/cyberarm/states/PingPongState.java @@ -0,0 +1,35 @@ +package org.timecrafters.minibots.cyberarm.states; + +import org.cyberarm.engine.V2.CyberarmState; + +public class PingPongState extends CyberarmState { + + private final MecanumRobot robot; + public PingPongState(MecanumRobot robot) { + this.robot = robot; + } + @Override + public void exec() { + + if (engine.gamepad1.left_bumper) { + robot.frontLeftDrive.setPower(1); + robot.backLeftDrive.setPower(-1); + robot.backRightDrive.setPower(1); + robot.frontRightDrive.setPower(-1); + } + else if (engine.gamepad1.right_bumper) { + robot.frontLeftDrive.setPower(-1); + robot.backLeftDrive.setPower(1); + robot.frontRightDrive.setPower(1); + robot.backRightDrive.setPower(-1); + } + + else { + robot.backLeftDrive.setPower(engine.gamepad1.left_stick_y); + robot.frontLeftDrive.setPower(engine.gamepad1.left_stick_y); + robot.backRightDrive.setPower(engine.gamepad1.right_stick_y); + robot.frontRightDrive.setPower(engine.gamepad1.right_stick_y); + } + + } +} From 66abbe289714feae6e926ec32fc7dc9f40f047e9 Mon Sep 17 00:00:00 2001 From: Sodi Date: Tue, 30 Aug 2022 19:05:04 -0500 Subject: [PATCH 2/4] Tank drive w/ bumper strafe, playing with LEDS. --- .../minibots/cyberarm/Engine.java | 24 +++++++ .../timecrafters/minibots/cyberarm/State.java | 63 +++++++++++++++++++ .../minibots/cyberarm/engines/Common.java | 27 ++++++++ 3 files changed, 114 insertions(+) create mode 100644 TeamCode/src/main/java/org/timecrafters/minibots/cyberarm/Engine.java create mode 100644 TeamCode/src/main/java/org/timecrafters/minibots/cyberarm/State.java create mode 100644 TeamCode/src/main/java/org/timecrafters/minibots/cyberarm/engines/Common.java diff --git a/TeamCode/src/main/java/org/timecrafters/minibots/cyberarm/Engine.java b/TeamCode/src/main/java/org/timecrafters/minibots/cyberarm/Engine.java new file mode 100644 index 0000000..38f40e4 --- /dev/null +++ b/TeamCode/src/main/java/org/timecrafters/minibots/cyberarm/Engine.java @@ -0,0 +1,24 @@ +package org.timecrafters.minibots.cyberarm; + +import com.qualcomm.robotcore.eventloop.opmode.TeleOp; + +import org.cyberarm.engine.V2.CyberarmEngine; +import org.timecrafters.minibots.cyberarm.engines.Common; + +@TeleOp (name = "light test") + +public class Engine extends CyberarmEngine { + + Common robot; + + @Override + public void setup() { + + robot = new Common(this); + + addState(new State(robot)); + + + + } +} diff --git a/TeamCode/src/main/java/org/timecrafters/minibots/cyberarm/State.java b/TeamCode/src/main/java/org/timecrafters/minibots/cyberarm/State.java new file mode 100644 index 0000000..23038f1 --- /dev/null +++ b/TeamCode/src/main/java/org/timecrafters/minibots/cyberarm/State.java @@ -0,0 +1,63 @@ +package org.timecrafters.minibots.cyberarm; + +import com.qualcomm.hardware.rev.RevBlinkinLedDriver; + +import org.cyberarm.engine.V2.CyberarmState; +import org.timecrafters.minibots.cyberarm.engines.Common; + +public class State extends CyberarmState { + + private final Common robot; + + public State (Common robot) { this.robot = robot; } + + @Override + public void init() { + robot.leds.setPattern(RevBlinkinLedDriver.BlinkinPattern.GREEN); + } + + @Override + public void exec() { + + if (engine.gamepad1.a) { + + robot.leds.setPattern(RevBlinkinLedDriver.BlinkinPattern.GREEN); + + } + else if (engine.gamepad1.dpad_up) { + + robot.leds.setPattern(RevBlinkinLedDriver.BlinkinPattern.CP1_LIGHT_CHASE); + + } + if (engine.gamepad1.x) { + + robot.leds.setPattern(RevBlinkinLedDriver.BlinkinPattern.BLUE); + + } + else if (engine.gamepad1.dpad_up) { + + robot.leds.setPattern(RevBlinkinLedDriver.BlinkinPattern.CP1_LIGHT_CHASE); + + } + if (engine.gamepad1.y) { + + robot.leds.setPattern(RevBlinkinLedDriver.BlinkinPattern.YELLOW); + + } + else if (engine.gamepad1.dpad_up) { + + robot.leds.setPattern(RevBlinkinLedDriver.BlinkinPattern.CP1_LIGHT_CHASE); + + } + if (engine.gamepad1.b) { + + robot.leds.setPattern(RevBlinkinLedDriver.BlinkinPattern.RED); + + } + else if (engine.gamepad1.dpad_up) { + + robot.leds.setPattern(RevBlinkinLedDriver.BlinkinPattern.CP1_LIGHT_CHASE); + + } + } +} diff --git a/TeamCode/src/main/java/org/timecrafters/minibots/cyberarm/engines/Common.java b/TeamCode/src/main/java/org/timecrafters/minibots/cyberarm/engines/Common.java new file mode 100644 index 0000000..744c2f9 --- /dev/null +++ b/TeamCode/src/main/java/org/timecrafters/minibots/cyberarm/engines/Common.java @@ -0,0 +1,27 @@ +package org.timecrafters.minibots.cyberarm.engines; + +import com.qualcomm.hardware.rev.RevBlinkinLedDriver; + +import org.cyberarm.engine.V2.CyberarmEngine; + +public class Common { + + private CyberarmEngine engine; + + public RevBlinkinLedDriver leds; + + public Common (CyberarmEngine engine) { + + this.engine = engine; + + setupRobot (); + + } + + private void setupRobot () { + + leds = engine.hardwareMap.get(RevBlinkinLedDriver.class, "lights"); + + } + +} From 0b74a5dde52e10e1caaafb401fa08c609ea56eaa Mon Sep 17 00:00:00 2001 From: Sodi Date: Thu, 1 Sep 2022 18:58:12 -0500 Subject: [PATCH 3/4] Tank drive w/ bumper strafe, playing with LEDS and sensors. --- .../testing/engine/SodiEngine.java | 6 +- .../testing/states/LaserState.java | 37 +++++++++++ .../testing/states/SodiLEDState.java | 62 +++++++++++++++++++ 3 files changed, 104 insertions(+), 1 deletion(-) create mode 100644 TeamCode/src/main/java/org/timecrafters/testing/states/LaserState.java create mode 100644 TeamCode/src/main/java/org/timecrafters/testing/states/SodiLEDState.java diff --git a/TeamCode/src/main/java/org/timecrafters/testing/engine/SodiEngine.java b/TeamCode/src/main/java/org/timecrafters/testing/engine/SodiEngine.java index 0d4b325..93fe81a 100644 --- a/TeamCode/src/main/java/org/timecrafters/testing/engine/SodiEngine.java +++ b/TeamCode/src/main/java/org/timecrafters/testing/engine/SodiEngine.java @@ -3,12 +3,16 @@ package org.timecrafters.testing.engine; import com.qualcomm.robotcore.eventloop.opmode.TeleOp; import org.cyberarm.engine.V2.CyberarmEngine; +import org.timecrafters.testing.states.LaserState; +import org.timecrafters.testing.states.SodiLEDState; import org.timecrafters.testing.states.SodiState; @TeleOp(name = "Wheel") public class SodiEngine extends CyberarmEngine { @Override public void setup() { - addState(new SodiState()); +// addState(new SodiState()); +// addState(new SodiLEDState()); + addState(new LaserState()); } } diff --git a/TeamCode/src/main/java/org/timecrafters/testing/states/LaserState.java b/TeamCode/src/main/java/org/timecrafters/testing/states/LaserState.java new file mode 100644 index 0000000..349815d --- /dev/null +++ b/TeamCode/src/main/java/org/timecrafters/testing/states/LaserState.java @@ -0,0 +1,37 @@ +package org.timecrafters.testing.states; + +import com.qualcomm.hardware.rev.Rev2mDistanceSensor; +import com.qualcomm.hardware.rev.RevTouchSensor; +import com.qualcomm.robotcore.hardware.ColorSensor; + +import org.cyberarm.engine.V2.CyberarmState; +import org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit; + +public class LaserState extends CyberarmState { + Rev2mDistanceSensor laser; + RevTouchSensor Tack; + RevTouchSensor Mag; + ColorSensor Speck; + + + @Override + public void init() { + laser = engine.hardwareMap.get(Rev2mDistanceSensor.class, "Zappy"); + Tack = engine.hardwareMap.get(RevTouchSensor.class, "Pokey"); + Mag = engine.hardwareMap.get(RevTouchSensor.class, "Electro"); + Speck = engine.hardwareMap.get(ColorSensor.class, "Chroma"); + } + + @Override + public void telemetry() { + engine.telemetry.addData("Laser Distance", laser.getDistance(DistanceUnit.CM)); + engine.telemetry.addData("The Feels", Tack.isPressed()); + engine.telemetry.addData("Eel", Mag.isPressed()); + engine.telemetry.addData("Pretty Colors", ", Red " + Speck.red() + ", Green " + Speck.green() + ", Blue " + Speck.blue() ); + } + + @Override + public void exec() { + + } +} diff --git a/TeamCode/src/main/java/org/timecrafters/testing/states/SodiLEDState.java b/TeamCode/src/main/java/org/timecrafters/testing/states/SodiLEDState.java new file mode 100644 index 0000000..2a7b9cb --- /dev/null +++ b/TeamCode/src/main/java/org/timecrafters/testing/states/SodiLEDState.java @@ -0,0 +1,62 @@ +package org.timecrafters.testing.states; + +import com.qualcomm.hardware.rev.RevBlinkinLedDriver; + +import org.cyberarm.engine.V2.CyberarmState; +import org.timecrafters.minibots.cyberarm.engines.Common; + +public class SodiLEDState extends CyberarmState { + + RevBlinkinLedDriver LEDs; + + @Override + public void init() { + LEDs = engine.hardwareMap.get(RevBlinkinLedDriver.class, "lights"); + LEDs.setPattern(RevBlinkinLedDriver.BlinkinPattern.GREEN); + } + + @Override + public void exec() { + + if (engine.gamepad1.a) { + + LEDs.setPattern(RevBlinkinLedDriver.BlinkinPattern.GREEN); + + } + else if (engine.gamepad1.dpad_up) { + + LEDs.setPattern(RevBlinkinLedDriver.BlinkinPattern.CP1_LIGHT_CHASE); + + } + if (engine.gamepad1.x) { + + LEDs.setPattern(RevBlinkinLedDriver.BlinkinPattern.BLUE); + + } + else if (engine.gamepad1.dpad_up) { + + LEDs.setPattern(RevBlinkinLedDriver.BlinkinPattern.CP1_LIGHT_CHASE); + + } + if (engine.gamepad1.y) { + + LEDs.setPattern(RevBlinkinLedDriver.BlinkinPattern.YELLOW); + + } + else if (engine.gamepad1.dpad_up) { + + LEDs.setPattern(RevBlinkinLedDriver.BlinkinPattern.CP1_LIGHT_CHASE); + + } + if (engine.gamepad1.b) { + + LEDs.setPattern(RevBlinkinLedDriver.BlinkinPattern.RED); + + } + else if (engine.gamepad1.dpad_up) { + + LEDs.setPattern(RevBlinkinLedDriver.BlinkinPattern.CP1_LIGHT_CHASE); + + } + } +} From 7ad255c2c7eff8e223852c63303fc711570da770 Mon Sep 17 00:00:00 2001 From: Sodi Date: Tue, 6 Sep 2022 20:31:03 -0500 Subject: [PATCH 4/4] Tank drive w/ bumper strafe, playing with LEDS and sensors. --- .../timecrafters/minibots/cyberarm/State.java | 8 +- .../states/AssignmentOmniKinetic.java | 112 ++++++++++++++++++ .../states/AutonomousReversalExperiment.java | 22 ++++ .../testing/states/LaserState.java | 20 +++- 4 files changed, 156 insertions(+), 6 deletions(-) create mode 100644 TeamCode/src/main/java/org/timecrafters/minibots/cyberarm/states/AssignmentOmniKinetic.java create mode 100644 TeamCode/src/main/java/org/timecrafters/minibots/cyberarm/states/AutonomousReversalExperiment.java diff --git a/TeamCode/src/main/java/org/timecrafters/minibots/cyberarm/State.java b/TeamCode/src/main/java/org/timecrafters/minibots/cyberarm/State.java index 23038f1..58d3d52 100644 --- a/TeamCode/src/main/java/org/timecrafters/minibots/cyberarm/State.java +++ b/TeamCode/src/main/java/org/timecrafters/minibots/cyberarm/State.java @@ -26,7 +26,7 @@ public class State extends CyberarmState { } else if (engine.gamepad1.dpad_up) { - robot.leds.setPattern(RevBlinkinLedDriver.BlinkinPattern.CP1_LIGHT_CHASE); + robot.leds.setPattern(RevBlinkinLedDriver.BlinkinPattern.COLOR_WAVES_FOREST_PALETTE); } if (engine.gamepad1.x) { @@ -36,7 +36,7 @@ public class State extends CyberarmState { } else if (engine.gamepad1.dpad_up) { - robot.leds.setPattern(RevBlinkinLedDriver.BlinkinPattern.CP1_LIGHT_CHASE); + robot.leds.setPattern(RevBlinkinLedDriver.BlinkinPattern.COLOR_WAVES_OCEAN_PALETTE); } if (engine.gamepad1.y) { @@ -46,7 +46,7 @@ public class State extends CyberarmState { } else if (engine.gamepad1.dpad_up) { - robot.leds.setPattern(RevBlinkinLedDriver.BlinkinPattern.CP1_LIGHT_CHASE); + robot.leds.setPattern(RevBlinkinLedDriver.BlinkinPattern.STROBE_GOLD); } if (engine.gamepad1.b) { @@ -56,7 +56,7 @@ public class State extends CyberarmState { } else if (engine.gamepad1.dpad_up) { - robot.leds.setPattern(RevBlinkinLedDriver.BlinkinPattern.CP1_LIGHT_CHASE); + robot.leds.setPattern(RevBlinkinLedDriver.BlinkinPattern.COLOR_WAVES_LAVA_PALETTE); } } diff --git a/TeamCode/src/main/java/org/timecrafters/minibots/cyberarm/states/AssignmentOmniKinetic.java b/TeamCode/src/main/java/org/timecrafters/minibots/cyberarm/states/AssignmentOmniKinetic.java new file mode 100644 index 0000000..7548ee8 --- /dev/null +++ b/TeamCode/src/main/java/org/timecrafters/minibots/cyberarm/states/AssignmentOmniKinetic.java @@ -0,0 +1,112 @@ +package org.timecrafters.minibots.cyberarm.states; + +import com.qualcomm.hardware.rev.RevBlinkinLedDriver; +import com.qualcomm.robotcore.hardware.CRServo; +import com.qualcomm.robotcore.hardware.DcMotor; +import com.qualcomm.robotcore.hardware.Servo; + +import org.cyberarm.engine.V2.CyberarmState; + +public class AssignmentOmniKinetic extends CyberarmState { + CRServo Wheel, Rack; + DcMotor Three, Zero, Two, One; + Servo Zygo; + @Override + public void init() { + super.init(); + + Wheel=engine.hardwareMap.crservo.get("Wheel"); + Rack=engine.hardwareMap.crservo.get("Rack"); + Three=engine.hardwareMap.dcMotor.get("Three"); + Zero=engine.hardwareMap.dcMotor.get("Zero"); + Two=engine.hardwareMap.dcMotor.get("Two"); + One=engine.hardwareMap.dcMotor.get("One"); + Zygo=engine.hardwareMap.servo.get("Zygo"); + } + MecanumRobot robot; + public AssignmentOmniKinetic (MecanumRobot robot) {this.robot = robot;} + + @Override + public void exec() { + + if (engine.gamepad1.dpad_up) { + + robot.frontLeftDrive.setPower(1); + robot.frontRightDrive.setPower(1); + robot.backLeftDrive.setPower(1); + robot.backRightDrive.setPower(1); + + } + + if (engine.gamepad1.dpad_down) { + + robot.frontLeftDrive.setPower(-1); + robot.frontRightDrive.setPower(-1); + robot.backLeftDrive.setPower(-1); + robot.backRightDrive.setPower(-1); + + } + + if (engine.gamepad1.dpad_left) { + + robot.frontLeftDrive.setPower(1); + robot.frontRightDrive.setPower(-1); + robot.backLeftDrive.setPower(-1); + robot.backRightDrive.setPower(1); + + } + + if (engine.gamepad1.) { + + robot.frontLeftDrive.setPower(-1); + robot.frontRightDrive.setPower(1); + robot.backLeftDrive.setPower(1); + robot.backRightDrive.setPower(-1); + + } + + if (engine.gamepad1.) { + + robot.frontLeftDrive.setPower(-1); + robot.frontRightDrive.setPower(1); + robot.backLeftDrive.setPower(1); + robot.backRightDrive.setPower(-1); + + } + if (engine.gamepad1.left_bumper) { + + Zygo.setPosition(1.0); + + } + + if (engine.gamepad1.right_bumper) { + Zygo.setPosition(0); + } + + if (engine.gamepad1.a) { + + engine.hardwareMap.led.get(String.valueOf(RevBlinkinLedDriver.BlinkinPattern.GREEN)); + + } + + if (engine.gamepad1.b) { + + engine.hardwareMap.led.get(String.valueOf(RevBlinkinLedDriver.BlinkinPattern.RED)); + + } + + if (engine.gamepad1.x) { + + engine.hardwareMap.led.get(String.valueOf(RevBlinkinLedDriver.BlinkinPattern.BLUE)); + + } + + if (engine.gamepad1.y) { + + engine.hardwareMap.led.get(String.valueOf(RevBlinkinLedDriver.BlinkinPattern.YELLOW)); + + } + + + } +} diff --git a/TeamCode/src/main/java/org/timecrafters/minibots/cyberarm/states/AutonomousReversalExperiment.java b/TeamCode/src/main/java/org/timecrafters/minibots/cyberarm/states/AutonomousReversalExperiment.java new file mode 100644 index 0000000..0861bea --- /dev/null +++ b/TeamCode/src/main/java/org/timecrafters/minibots/cyberarm/states/AutonomousReversalExperiment.java @@ -0,0 +1,22 @@ +package org.timecrafters.minibots.cyberarm.states; + +import org.cyberarm.engine.V2.CyberarmState; + +public class AutonomousReversalExperiment extends CyberarmState { + + MecanumRobot robot; + public AutonomousReversalExperiment (MecanumRobot robot) { + this.robot = robot; + } + + @Override + public void exec() { + + if (engine.gamepad1.dpad_up) { + + + + } + + } +} diff --git a/TeamCode/src/main/java/org/timecrafters/testing/states/LaserState.java b/TeamCode/src/main/java/org/timecrafters/testing/states/LaserState.java index 349815d..a67bd91 100644 --- a/TeamCode/src/main/java/org/timecrafters/testing/states/LaserState.java +++ b/TeamCode/src/main/java/org/timecrafters/testing/states/LaserState.java @@ -1,11 +1,13 @@ package org.timecrafters.testing.states; import com.qualcomm.hardware.rev.Rev2mDistanceSensor; +import com.qualcomm.hardware.rev.RevBlinkinLedDriver; import com.qualcomm.hardware.rev.RevTouchSensor; import com.qualcomm.robotcore.hardware.ColorSensor; import org.cyberarm.engine.V2.CyberarmState; import org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit; +import org.timecrafters.minibots.cyberarm.states.MecanumRobot; public class LaserState extends CyberarmState { Rev2mDistanceSensor laser; @@ -13,6 +15,15 @@ public class LaserState extends CyberarmState { RevTouchSensor Mag; ColorSensor Speck; + MecanumRobot robot; + + public LaserState(MecanumRobot robot) { + this.robot = robot; + } + + public LaserState() { + + } @Override public void init() { @@ -27,11 +38,16 @@ public class LaserState extends CyberarmState { engine.telemetry.addData("Laser Distance", laser.getDistance(DistanceUnit.CM)); engine.telemetry.addData("The Feels", Tack.isPressed()); engine.telemetry.addData("Eel", Mag.isPressed()); - engine.telemetry.addData("Pretty Colors", ", Red " + Speck.red() + ", Green " + Speck.green() + ", Blue " + Speck.blue() ); + engine.telemetry.addData("Pretty Colors", ", Red " + Speck.red() + ", Green " + Speck.green() + ", Blue " + Speck.blue()); } @Override public void exec() { + if (Tack.isPressed() & !Mag.isPressed()) { + robot.ledDriver.setPattern(RevBlinkinLedDriver.BlinkinPattern.GREEN); + } else { + robot.ledDriver.setPattern(RevBlinkinLedDriver.BlinkinPattern.RED); + } } -} +} \ No newline at end of file