From 0881c2440b0017aaad48c62e28076e1e039f1cad Mon Sep 17 00:00:00 2001 From: FTC16750 Date: Tue, 28 Jun 2022 17:25:51 -0700 Subject: [PATCH 1/3] Added OpMode code to help with script --- .../ftc/teachcode/DemoOpMode.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 TeachCode/src/main/java/org/firstinspires/ftc/teachcode/DemoOpMode.java diff --git a/TeachCode/src/main/java/org/firstinspires/ftc/teachcode/DemoOpMode.java b/TeachCode/src/main/java/org/firstinspires/ftc/teachcode/DemoOpMode.java new file mode 100644 index 0000000..91e376b --- /dev/null +++ b/TeachCode/src/main/java/org/firstinspires/ftc/teachcode/DemoOpMode.java @@ -0,0 +1,21 @@ +package org.firstinspires.ftc.teachcode; + + + +import com.qualcomm.robotcore.eventloop.opmode.OpMode; +import com.qualcomm.robotcore.eventloop.opmode.TeleOp; +import com.qualcomm.robotcore.hardware.DcMotorEx; + +@TeleOp(name = "StickTankDrive") +public class DemoOpMode extends OpMode { + + @Override + public void init() { + + } + + @Override + public void loop() { + + } +} From 11215b2cbd429d1d304e07905288c74973831498 Mon Sep 17 00:00:00 2001 From: FTC16750 Date: Tue, 2 Aug 2022 17:10:25 -0700 Subject: [PATCH 2/3] Added OpMode code to help with script --- .../ftc/teachcode/DemoOpMode.java | 2 +- .../ftc/teachcode/OpModes/StickCubedTank.java | 11 +++--- .../ftc/teachcode/OpModes/StickTankDrive.java | 10 ++++-- .../OpModes/StickTankDriveForVideo.java | 15 ++++++++ .../ftc/teachcode/TankDrive.java | 35 +------------------ .../ftc/teachcode/TankDriveDemo.java | 23 ++++++++++++ 6 files changed, 53 insertions(+), 43 deletions(-) create mode 100644 TeachCode/src/main/java/org/firstinspires/ftc/teachcode/OpModes/StickTankDriveForVideo.java diff --git a/TeachCode/src/main/java/org/firstinspires/ftc/teachcode/DemoOpMode.java b/TeachCode/src/main/java/org/firstinspires/ftc/teachcode/DemoOpMode.java index 91e376b..c0d58cf 100644 --- a/TeachCode/src/main/java/org/firstinspires/ftc/teachcode/DemoOpMode.java +++ b/TeachCode/src/main/java/org/firstinspires/ftc/teachcode/DemoOpMode.java @@ -6,7 +6,7 @@ import com.qualcomm.robotcore.eventloop.opmode.TeleOp; import com.qualcomm.robotcore.hardware.DcMotorEx; -@TeleOp(name = "StickTankDrive") +@TeleOp(name = "DemoOpMode") public class DemoOpMode extends OpMode { @Override diff --git a/TeachCode/src/main/java/org/firstinspires/ftc/teachcode/OpModes/StickCubedTank.java b/TeachCode/src/main/java/org/firstinspires/ftc/teachcode/OpModes/StickCubedTank.java index 5cc066f..0b61b22 100644 --- a/TeachCode/src/main/java/org/firstinspires/ftc/teachcode/OpModes/StickCubedTank.java +++ b/TeachCode/src/main/java/org/firstinspires/ftc/teachcode/OpModes/StickCubedTank.java @@ -2,16 +2,16 @@ import com.qualcomm.robotcore.eventloop.opmode.OpMode; import com.qualcomm.robotcore.hardware.DcMotorEx; -import com.qualcomm.robotcore.hardware.Gamepad; +import com.qualcomm.robotcore.hardware.DcMotorSimple; -import org.firstinspires.ftc.teachcode.TankDrive; +import org.firstinspires.ftc.teachcode.TankDriveDemo; @com.qualcomm.robotcore.eventloop.opmode.TeleOp(name = "TankCubed") public class StickCubedTank extends OpMode { private static final double DEAD_ZONE = 0.1; - private TankDrive tankDrive; + private TankDriveDemo tankDrive; private DcMotorEx motorL; private DcMotorEx motorR; @@ -19,7 +19,8 @@ public class StickCubedTank extends OpMode { public void init() { motorL = hardwareMap.get(DcMotorEx.class, "motorL"); motorR = hardwareMap.get(DcMotorEx.class, "motorR"); - tankDrive = new TankDrive(motorL, motorR); + motorR.setDirection(DcMotorSimple.Direction.REVERSE); + tankDrive = new TankDriveDemo(motorL, motorR); } @Override @@ -32,7 +33,7 @@ public void loop() { tankDrive.motorLPower(0); } if (Math.abs(ry) > DEAD_ZONE) { - tankDrive.motorRPower(-ry * ry * ry); + tankDrive.motorRPower(ry * ry * ry); } else { tankDrive.motorRPower(0); } diff --git a/TeachCode/src/main/java/org/firstinspires/ftc/teachcode/OpModes/StickTankDrive.java b/TeachCode/src/main/java/org/firstinspires/ftc/teachcode/OpModes/StickTankDrive.java index 73a098f..fb89504 100644 --- a/TeachCode/src/main/java/org/firstinspires/ftc/teachcode/OpModes/StickTankDrive.java +++ b/TeachCode/src/main/java/org/firstinspires/ftc/teachcode/OpModes/StickTankDrive.java @@ -9,7 +9,9 @@ import com.qualcomm.robotcore.hardware.Gamepad; import com.qualcomm.robotcore.hardware.Servo; import com.qualcomm.robotcore.hardware.TouchSensor; +import com.qualcomm.robotcore.hardware.DcMotorSimple; +import org.firstinspires.ftc.teachcode.TankDriveDemo; import org.firstinspires.ftc.robotcore.external.navigation.DistanceUnit; import org.firstinspires.ftc.teachcode.TankDrive; @@ -17,7 +19,7 @@ public class StickTankDrive extends OpMode { private static final double DEAD_ZONE = 0.1; - private TankDrive tankDrive; + private TankDriveDemo tankDrive; private DcMotorEx motorL; private DcMotorEx motorR; private Servo servo; @@ -29,7 +31,8 @@ public class StickTankDrive extends OpMode { public void init() { motorL = hardwareMap.get(DcMotorEx.class, "motorL"); motorR = hardwareMap.get(DcMotorEx.class, "motorR"); - tankDrive = new TankDrive(motorL, motorR); + motorR.setDirection(DcMotorSimple.Direction.REVERSE); + tankDrive = new TankDriveDemo(motorL, motorR); servo = hardwareMap.get(Servo.class, "gobilda"); toucha = hardwareMap.get(RevTouchSensor.class, "touch6"); touchb = hardwareMap.get(RevTouchSensor.class, "touch7"); @@ -48,7 +51,8 @@ public void loop() { } tankDrive.motorLPower(left); if (Math.abs(gamepad1.right_stick_y) > DEAD_ZONE) { - right = -gamepad1.right_stick_y; + tankDrive.motorRPower(gamepad1.right_stick_y); + right = gamepad1.right_stick_y; } else { right = 0; } diff --git a/TeachCode/src/main/java/org/firstinspires/ftc/teachcode/OpModes/StickTankDriveForVideo.java b/TeachCode/src/main/java/org/firstinspires/ftc/teachcode/OpModes/StickTankDriveForVideo.java new file mode 100644 index 0000000..4050258 --- /dev/null +++ b/TeachCode/src/main/java/org/firstinspires/ftc/teachcode/OpModes/StickTankDriveForVideo.java @@ -0,0 +1,15 @@ +package org.firstinspires.ftc.teachcode.OpModes; + +import com.qualcomm.robotcore.eventloop.opmode.OpMode; + +public class StickTankDriveForVideo extends OpMode { + @Override + public void init() { + + } + + @Override + public void loop() { + + } +} diff --git a/TeachCode/src/main/java/org/firstinspires/ftc/teachcode/TankDrive.java b/TeachCode/src/main/java/org/firstinspires/ftc/teachcode/TankDrive.java index 633cfe2..7467a66 100644 --- a/TeachCode/src/main/java/org/firstinspires/ftc/teachcode/TankDrive.java +++ b/TeachCode/src/main/java/org/firstinspires/ftc/teachcode/TankDrive.java @@ -2,16 +2,7 @@ import com.qualcomm.robotcore.hardware.DcMotorEx; -import java.util.*; - public class TankDrive { - private void sleep(int ms) { - try { - Thread.sleep(ms); - } catch (Exception e) { - } - } - public DcMotorEx motorL; public DcMotorEx motorR; @@ -20,34 +11,9 @@ public TankDrive(DcMotorEx motorL, DcMotorEx motorR) { this.motorR = motorR; } - // For non-stick control system - public void moveForwardButton(double power, int seconds) { - motorL.setPower(power); - motorR.setPower(power); - sleep(seconds * 1000); - pleaseStop(); - } - - // For non-stick control system - public void pleaseStop() { - motorL.setPower(0); - motorR.setPower(0); - } - - // For non-stick control system - public void moveBackwardButton(double power, int seconds) { - motorL.setPower(-power); - motorR.setPower(-power); - sleep(seconds * 1000); - pleaseStop(); - } - - // For stick control system public void motorLPower(double power) { motorL.setPower(power); } - - // For stick control system public void motorRPower(double power) { motorR.setPower(power); } @@ -59,3 +25,4 @@ public DcMotorEx getMotorR() { return motorR; } } + diff --git a/TeachCode/src/main/java/org/firstinspires/ftc/teachcode/TankDriveDemo.java b/TeachCode/src/main/java/org/firstinspires/ftc/teachcode/TankDriveDemo.java index cbf35ee..2b3f43b 100644 --- a/TeachCode/src/main/java/org/firstinspires/ftc/teachcode/TankDriveDemo.java +++ b/TeachCode/src/main/java/org/firstinspires/ftc/teachcode/TankDriveDemo.java @@ -2,9 +2,32 @@ import com.qualcomm.robotcore.hardware.DcMotorEx; +import java.util.*; + public class TankDriveDemo { + public DcMotorEx motorL; public DcMotorEx motorR; + public TankDriveDemo(DcMotorEx motorL, DcMotorEx motorR) { + this.motorL = motorL; + this.motorR = motorR; + } + + // For stick control system + public void motorLPower(double power) { + motorL.setPower(power); + } + + // For stick control system + public void motorRPower(double power) { + motorR.setPower(power); + } + public DcMotorEx getMotorL() { + return motorL; + } + public DcMotorEx getMotorR() { + return motorR; + } } From 7a44a1b35d284ef7f7d5caeb02657123e8649f72 Mon Sep 17 00:00:00 2001 From: FTC16750 Date: Tue, 2 Aug 2022 17:32:50 -0700 Subject: [PATCH 3/3] Added OpMode code to help with script --- .../OpModes/StickTankDriveForVideo.java | 32 ++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/TeachCode/src/main/java/org/firstinspires/ftc/teachcode/OpModes/StickTankDriveForVideo.java b/TeachCode/src/main/java/org/firstinspires/ftc/teachcode/OpModes/StickTankDriveForVideo.java index 4050258..9e0a0d5 100644 --- a/TeachCode/src/main/java/org/firstinspires/ftc/teachcode/OpModes/StickTankDriveForVideo.java +++ b/TeachCode/src/main/java/org/firstinspires/ftc/teachcode/OpModes/StickTankDriveForVideo.java @@ -1,15 +1,45 @@ package org.firstinspires.ftc.teachcode.OpModes; import com.qualcomm.robotcore.eventloop.opmode.OpMode; +import com.qualcomm.robotcore.hardware.DcMotorEx; +import com.qualcomm.robotcore.hardware.DcMotorSimple; +import com.qualcomm.robotcore.hardware.Gamepad; + +import org.firstinspires.ftc.teachcode.TankDriveDemo; + +@com.qualcomm.robotcore.eventloop.opmode.TeleOp(name = "StickTankDriveForVideo") public class StickTankDriveForVideo extends OpMode { + + private static final double DEAD_ZONE = 0.1; + private TankDriveDemo tankDrive; + private DcMotorEx motorL; + private DcMotorEx motorR; + @Override public void init() { - + motorL = hardwareMap.get(DcMotorEx.class, "motorL"); + motorR = hardwareMap.get(DcMotorEx.class, "motorR"); + motorR.setDirection(DcMotorSimple.Direction.REVERSE); + tankDrive = new TankDriveDemo(motorL, motorR); } @Override public void loop() { + if (Math.abs(gamepad1.left_stick_y) > DEAD_ZONE) { + tankDrive.motorLPower(gamepad1.left_stick_y); + } else { + tankDrive.motorLPower(0); + } + if (Math.abs(gamepad1.right_stick_y) > DEAD_ZONE) { + tankDrive.motorRPower(gamepad1.right_stick_y); + } else { + tankDrive.motorRPower(0); + } + } + + @Override + public void start() { } }