From 23155d104672559179aeb4961ee45278da8389f9 Mon Sep 17 00:00:00 2001 From: missing Date: Thu, 17 Nov 2022 17:23:01 -0600 Subject: [PATCH] things and stuff (stuff and things) --- .../firstinspires/ftc/teamcode/AutonLeft.java | 36 +++++++++++ .../ftc/teamcode/AutonRight.java | 36 +++++++++++ .../firstinspires/ftc/teamcode/Gamepad.java | 46 +++++++++++++++ .../firstinspires/ftc/teamcode/Hardware.java | 59 +++++++++++++++++++ .../ftc/teamcode/MovementAPI.java | 22 +++++-- 5 files changed, 194 insertions(+), 5 deletions(-) create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/AutonLeft.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/AutonRight.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/Gamepad.java create mode 100644 TeamCode/src/main/java/org/firstinspires/ftc/teamcode/Hardware.java diff --git a/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/AutonLeft.java b/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/AutonLeft.java new file mode 100644 index 0000000..34b0e14 --- /dev/null +++ b/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/AutonLeft.java @@ -0,0 +1,36 @@ +package org.firstinspires.ftc.teamcode; + +import com.qualcomm.robotcore.eventloop.opmode.Autonomous; +import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode; + +@Autonomous(name = "idk something left") +public class AutonLeft extends LinearOpMode { + Hardware hardware; + MovementAPI movement; + + @Override + public void runOpMode() { + hardware = new Hardware(this); + movement = new MovementAPI(hardware); + + hardware.wrist.setPosition(0.5); + sleep(500); + hardware.claw.setPosition(1); + + waitForStart(); + + movement.move(0, 1, 0, 0.4); + sleep(1000); + movement.stop(); + sleep(1000); + hardware.claw.setPosition(0); + sleep(1000); + movement.move(0, -1, 0, 0.4); + sleep(1000); + movement.stop(); + sleep(1000); + movement.move(-1, 0, 0, 0.4); + sleep(2500); + movement.stop(); + } +} diff --git a/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/AutonRight.java b/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/AutonRight.java new file mode 100644 index 0000000..8899967 --- /dev/null +++ b/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/AutonRight.java @@ -0,0 +1,36 @@ +package org.firstinspires.ftc.teamcode; + +import com.qualcomm.robotcore.eventloop.opmode.Autonomous; +import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode; + +@Autonomous(name = "idk something right") +public class AutonRight extends LinearOpMode { + Hardware hardware; + MovementAPI movement; + + @Override + public void runOpMode() { + hardware = new Hardware(this); + movement = new MovementAPI(hardware); + + hardware.wrist.setPosition(0.5); + sleep(500); + hardware.claw.setPosition(1); + + waitForStart(); + + movement.move(0, 1, 0, 0.4); + sleep(1000); + movement.stop(); + sleep(1000); + hardware.claw.setPosition(0); + sleep(1000); + movement.move(0, -1, 0, 0.4); + sleep(1000); + movement.stop(); + sleep(1000); + movement.move(1, 0, 0, 0.4); + sleep(2500); + movement.stop(); + } +} diff --git a/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/Gamepad.java b/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/Gamepad.java new file mode 100644 index 0000000..8fd4caa --- /dev/null +++ b/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/Gamepad.java @@ -0,0 +1,46 @@ +package org.firstinspires.ftc.teamcode; + +import com.qualcomm.robotcore.eventloop.opmode.OpMode; +import com.qualcomm.robotcore.eventloop.opmode.TeleOp; + +@TeleOp(name = "BBBBBBBBB") +public class Gamepad extends OpMode { + Hardware hardware; + MovementAPI movement; + double speed = 0.6; + + @Override + public void init() { + hardware = new Hardware(this); + movement = new MovementAPI(hardware); + + hardware.claw.setPosition(1); + hardware.wrist.setPosition(0.5); + } + + @Override + public void loop() { + if (gamepad1.left_bumper) { + speed -= 0.005; + } + + if (gamepad1.right_bumper) { + speed += 0.005; + } + + speed = Math.max(0, Math.min(speed, 1)); + + hardware.spool.setPower(gamepad2.left_stick_y); + hardware.claw.setPosition(1 - gamepad2.left_trigger); + hardware.wrist.setPosition((-gamepad2.right_stick_y + 1) / 2); + + movement.move( + gamepad1.left_stick_x, + -gamepad1.left_stick_y, + gamepad1.right_stick_x, + speed + ); + + telemetry.addLine(speed + ""); + } +} diff --git a/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/Hardware.java b/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/Hardware.java new file mode 100644 index 0000000..3b78cc7 --- /dev/null +++ b/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/Hardware.java @@ -0,0 +1,59 @@ +package org.firstinspires.ftc.teamcode; + +import com.qualcomm.hardware.bosch.BNO055IMU; +import com.qualcomm.robotcore.eventloop.opmode.OpMode; +import com.qualcomm.robotcore.hardware.DcMotor; +import com.qualcomm.robotcore.hardware.DcMotorSimple; +import com.qualcomm.robotcore.hardware.HardwareMap; +import com.qualcomm.robotcore.hardware.Servo; + +import org.firstinspires.ftc.robotcore.external.navigation.Position; +import org.firstinspires.ftc.robotcore.external.navigation.Velocity; + +public class Hardware { + public final DcMotor fl; + public final DcMotor fr; + public final DcMotor bl; + public final DcMotor br; + public final DcMotor spool; + public final Servo claw; + public final Servo wrist; + public final BNO055IMU imu; + + public Hardware(OpMode opMode) { + this(opMode.hardwareMap); + } + + public Hardware(HardwareMap hardwareMap) { + this.fl = hardwareMap.get(DcMotor.class, "fl"); + this.fr = hardwareMap.get(DcMotor.class, "fr"); + this.bl = hardwareMap.get(DcMotor.class, "bl"); + this.br = hardwareMap.get(DcMotor.class, "br"); + + this.fl.setDirection(DcMotorSimple.Direction.REVERSE); + this.bl.setDirection(DcMotorSimple.Direction.REVERSE); + this.fr.setDirection(DcMotorSimple.Direction.FORWARD); + this.br.setDirection(DcMotorSimple.Direction.FORWARD); + this.fl.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE); + this.fr.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE); + this.bl.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE); + this.br.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.BRAKE); + + this.spool = hardwareMap.get(DcMotor.class, "spool"); + this.claw = hardwareMap.get(Servo.class, "claw"); + this.wrist = hardwareMap.get(Servo.class, "wrist"); + this.imu = hardwareMap.get(BNO055IMU.class, "imu"); + + this.wrist.scaleRange(0.25, 1); + } + + public void initIMU() { + BNO055IMU.Parameters parameters = new BNO055IMU.Parameters(); + parameters.angleUnit = BNO055IMU.AngleUnit.DEGREES; + parameters.accelUnit = BNO055IMU.AccelUnit.METERS_PERSEC_PERSEC; + parameters.calibrationDataFile = "BNO055IMUCalibration.json"; + + this.imu.initialize(parameters); + this.imu.startAccelerationIntegration(new Position(), new Velocity(), 1); + } +} \ No newline at end of file diff --git a/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/MovementAPI.java b/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/MovementAPI.java index c84ddf7..aa942fe 100644 --- a/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/MovementAPI.java +++ b/TeamCode/src/main/java/org/firstinspires/ftc/teamcode/MovementAPI.java @@ -2,6 +2,7 @@ package org.firstinspires.ftc.teamcode; import com.qualcomm.robotcore.hardware.DcMotor; import com.qualcomm.robotcore.hardware.DcMotorSimple.Direction; +import com.qualcomm.robotcore.hardware.HardwareMap; public class MovementAPI { private final DcMotor fl; @@ -14,16 +15,20 @@ public class MovementAPI { public DcMotor getBL() { return this.bl; } public DcMotor getBR() { return this.br; } + public MovementAPI(Hardware hardware) { + this( + hardware.fl, + hardware.fr, + hardware.bl, + hardware.br + ); + } + public MovementAPI(DcMotor fl, DcMotor fr, DcMotor bl, DcMotor br) { this.fl = fl; this.fr = fr; this.bl = bl; this.br = br; - - fl.setDirection(Direction.REVERSE); - bl.setDirection(Direction.REVERSE); - fr.setDirection(Direction.FORWARD); - br.setDirection(Direction.FORWARD); } public void move(double powerX, double powerY, double turn, double speed) { @@ -43,4 +48,11 @@ public class MovementAPI { bl.setPower(blPower); br.setPower(brPower); } + + public void stop() { + fl.setPower(0); + fr.setPower(0); + bl.setPower(0); + br.setPower(0); + } } \ No newline at end of file