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..58d3d52 --- /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.COLOR_WAVES_FOREST_PALETTE); + + } + if (engine.gamepad1.x) { + + robot.leds.setPattern(RevBlinkinLedDriver.BlinkinPattern.BLUE); + + } + else if (engine.gamepad1.dpad_up) { + + robot.leds.setPattern(RevBlinkinLedDriver.BlinkinPattern.COLOR_WAVES_OCEAN_PALETTE); + + } + if (engine.gamepad1.y) { + + robot.leds.setPattern(RevBlinkinLedDriver.BlinkinPattern.YELLOW); + + } + else if (engine.gamepad1.dpad_up) { + + robot.leds.setPattern(RevBlinkinLedDriver.BlinkinPattern.STROBE_GOLD); + + } + if (engine.gamepad1.b) { + + robot.leds.setPattern(RevBlinkinLedDriver.BlinkinPattern.RED); + + } + else if (engine.gamepad1.dpad_up) { + + robot.leds.setPattern(RevBlinkinLedDriver.BlinkinPattern.COLOR_WAVES_LAVA_PALETTE); + + } + } +} 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"); + + } + +} 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/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/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); + } + + } +} 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..a67bd91 --- /dev/null +++ b/TeamCode/src/main/java/org/timecrafters/testing/states/LaserState.java @@ -0,0 +1,53 @@ +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; + RevTouchSensor Tack; + RevTouchSensor Mag; + ColorSensor Speck; + + MecanumRobot robot; + + public LaserState(MecanumRobot robot) { + this.robot = robot; + } + + public LaserState() { + + } + + @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() { + + if (Tack.isPressed() & !Mag.isPressed()) { + robot.ledDriver.setPattern(RevBlinkinLedDriver.BlinkinPattern.GREEN); + } else { + robot.ledDriver.setPattern(RevBlinkinLedDriver.BlinkinPattern.RED); + } + } +} \ No newline at end of file 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); + + } + } +}