moved in tele

This commit is contained in:
DanTheMan-byte
2025-11-11 20:52:55 -06:00
parent 331ec2fa0b
commit 7f968de6a8

View File

@@ -1,17 +1,22 @@
package org.firstinspires.ftc.teamcode.teleop; package org.firstinspires.ftc.teamcode.teleop;
import static org.firstinspires.ftc.teamcode.constants.Poses.teleStart;
import static org.firstinspires.ftc.teamcode.constants.ServoPositions.hoodDefault;
import com.acmerobotics.dashboard.FtcDashboard; import com.acmerobotics.dashboard.FtcDashboard;
import com.acmerobotics.dashboard.config.Config; import com.acmerobotics.dashboard.config.Config;
import com.acmerobotics.dashboard.telemetry.MultipleTelemetry; import com.acmerobotics.dashboard.telemetry.MultipleTelemetry;
import com.acmerobotics.roadrunner.Pose2d;
import com.arcrobotics.ftclib.gamepad.GamepadEx; import com.arcrobotics.ftclib.gamepad.GamepadEx;
import com.arcrobotics.ftclib.gamepad.GamepadKeys; import com.arcrobotics.ftclib.gamepad.GamepadKeys;
import com.arcrobotics.ftclib.gamepad.ToggleButtonReader; import com.arcrobotics.ftclib.gamepad.ToggleButtonReader;
import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode; import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode;
import com.qualcomm.robotcore.eventloop.opmode.TeleOp; import com.qualcomm.robotcore.eventloop.opmode.TeleOp;
import org.firstinspires.ftc.robotcore.external.navigation.AngleUnit;
import org.firstinspires.ftc.teamcode.libs.RR.MecanumDrive;
import org.firstinspires.ftc.teamcode.subsystems.Drivetrain; import org.firstinspires.ftc.teamcode.subsystems.Drivetrain;
import org.firstinspires.ftc.teamcode.subsystems.Intake; import org.firstinspires.ftc.teamcode.subsystems.Intake;
import org.firstinspires.ftc.teamcode.subsystems.Rejecter;
import org.firstinspires.ftc.teamcode.subsystems.Shooter; import org.firstinspires.ftc.teamcode.subsystems.Shooter;
import org.firstinspires.ftc.teamcode.subsystems.Spindexer; import org.firstinspires.ftc.teamcode.subsystems.Spindexer;
import org.firstinspires.ftc.teamcode.subsystems.Transfer; import org.firstinspires.ftc.teamcode.subsystems.Transfer;
@@ -23,7 +28,6 @@ import org.firstinspires.ftc.teamcode.utils.Robot;
public class TeleopV1 extends LinearOpMode { public class TeleopV1 extends LinearOpMode {
public static double rpos = 0.5;
Robot robot; Robot robot;
@@ -31,14 +35,10 @@ public class TeleopV1 extends LinearOpMode {
Intake intake; Intake intake;
Rejecter rejecter;
Spindexer spindexer; Spindexer spindexer;
Transfer transfer; Transfer transfer;
Shooter shooter;
MultipleTelemetry TELE; MultipleTelemetry TELE;
GamepadEx g1; GamepadEx g1;
@@ -49,34 +49,85 @@ public class TeleopV1 extends LinearOpMode {
public static double slowMoSpeed = 0.4; public static double slowMoSpeed = 0.4;
public static double shooterPower = 0.0; public static double power = 0.0;
public static double turretPosition = 0.501; public static double pos = hoodDefault;
public static double hoodPosition = 0.501; public boolean all = false;
public int ticker = 0;
ToggleButtonReader g1RightBumper; ToggleButtonReader g1RightBumper;
ToggleButtonReader g1LeftBumper;
ToggleButtonReader g2Circle; ToggleButtonReader g2Circle;
ToggleButtonReader g2Square; ToggleButtonReader g2Square;
ToggleButtonReader g2LeftBumper;
ToggleButtonReader g2Triangle; ToggleButtonReader g2Triangle;
ToggleButtonReader g2RightBumper;
ToggleButtonReader g1LeftBumper;
ToggleButtonReader g2LeftBumper;
ToggleButtonReader g2DpadUp;
ToggleButtonReader g2DpadDown;
ToggleButtonReader g2DpadRight;
ToggleButtonReader g2DpadLeft;
public boolean leftBumper = false;
public double g1RightBumperStamp = 0.0; public double g1RightBumperStamp = 0.0;
public double g1LeftBumperStamp = 0.0;
public double g2LeftBumperStamp = 0.0;
public static int spindexerPos = 0; public static int spindexerPos = 0;
public double time = 0.0; public boolean green = false;
Shooter shooter;
public boolean scoreAll = false;
MecanumDrive drive ;
public boolean autotrack = false;
public int last = 0;
public int second = 0;
public double offset = 0.0;
public static double rIn = 0.59;
public static double rOut = 0;
public boolean notShooting = true;
public boolean circle = false;
public boolean square = false;
public boolean tri = false;
@Override @Override
public void runOpMode() throws InterruptedException { public void runOpMode() throws InterruptedException {
drive = new MecanumDrive(hardwareMap, teleStart);
robot = new Robot(hardwareMap); robot = new Robot(hardwareMap);
TELE = new MultipleTelemetry( TELE = new MultipleTelemetry(
@@ -90,12 +141,12 @@ public class TeleopV1 extends LinearOpMode {
g1, GamepadKeys.Button.RIGHT_BUMPER g1, GamepadKeys.Button.RIGHT_BUMPER
); );
g2 = new GamepadEx(gamepad2);
g1LeftBumper = new ToggleButtonReader( g1LeftBumper = new ToggleButtonReader(
g1, GamepadKeys.Button.LEFT_BUMPER g1, GamepadKeys.Button.LEFT_BUMPER
); );
g2 = new GamepadEx(gamepad2);
g2Circle = new ToggleButtonReader( g2Circle = new ToggleButtonReader(
g2, GamepadKeys.Button.B g2, GamepadKeys.Button.B
); );
@@ -108,10 +159,33 @@ public class TeleopV1 extends LinearOpMode {
g2, GamepadKeys.Button.X g2, GamepadKeys.Button.X
); );
g2RightBumper = new ToggleButtonReader(
g2, GamepadKeys.Button.RIGHT_BUMPER
);
g2LeftBumper = new ToggleButtonReader( g2LeftBumper = new ToggleButtonReader(
g2, GamepadKeys.Button.LEFT_BUMPER g2, GamepadKeys.Button.LEFT_BUMPER
); );
g2DpadUp = new ToggleButtonReader(
g2, GamepadKeys.Button.DPAD_UP
);
g2DpadDown = new ToggleButtonReader(
g2, GamepadKeys.Button.DPAD_DOWN
);
g2DpadLeft = new ToggleButtonReader(
g2, GamepadKeys.Button.DPAD_LEFT
);
g2DpadRight = new ToggleButtonReader(
g2, GamepadKeys.Button.DPAD_RIGHT
);
@@ -127,36 +201,594 @@ public class TeleopV1 extends LinearOpMode {
transfer = new Transfer(robot); transfer = new Transfer(robot);
spindexer = new Spindexer(robot, TELE);
shooter = new Shooter(robot, TELE); spindexer = new Spindexer(robot, TELE);
spindexer.setTelemetryOn(true); spindexer.setTelemetryOn(true);
time = getRuntime(); shooter = new Shooter(robot, TELE);
shooter.setShooterMode("MANUAL");
robot.rejecter.setPosition(rIn);
waitForStart(); waitForStart();
if (isStopRequested()) return; if (isStopRequested()) return;
drive = new MecanumDrive(hardwareMap, teleStart);
while(opModeIsActive()){ while(opModeIsActive()){
intake(); drive.updatePoseEstimate();
rejecter.rejecterPos(rpos); TELE.addData("pose", drive.localizer.getPose());
TELE.addData("heading", drive.localizer.getPose().heading.toDouble());
TELE.addData("off", offset);
robot.hood.setPosition(pos);
g1LeftBumper.readValue();
if (g1LeftBumper.wasJustPressed()){
g2LeftBumperStamp = getRuntime();
spindexer.intakeShake(getRuntime());
leftBumper = true;
}
if (leftBumper){
double time = getRuntime() - g2LeftBumperStamp;
if (time < 1.0){
robot.rejecter.setPosition(rOut);
} else {
robot.rejecter.setPosition(rIn);
}
}
intake();
drivetrain.update(); drivetrain.update();
TELE.update(); TELE.update();
transfer(); transfer.update();
shooter.setManualPower(shooterPower); g2RightBumper.readValue();
shooter.sethoodPosition(hoodPosition); g2LeftBumper.readValue();
g2DpadDown.readValue();
g2DpadUp.readValue();
if (!scoreAll){
spindexer.checkForBalls();
}
if(g2DpadUp.wasJustPressed()){
pos -=0.02;
}
if(g2DpadDown.wasJustPressed()){
pos +=0.02;
}
g2DpadLeft.readValue();
g2DpadRight.readValue();
if(g2DpadLeft.wasJustPressed()){
offset -=0.02;
}
if(g2DpadRight.wasJustPressed()){
offset +=0.02;
}
TELE.addData("hood", pos);
if (Math.abs(gamepad2.right_stick_x) < 0.1 && autotrack) {
shooter.trackGoal(drive.localizer.getPose(), new Pose2d(-10, 0, 0), offset);
} else {
autotrack = false;
shooter.moveTurret(0.3+offset);
}
if (gamepad2.right_stick_button){
autotrack = true;
}
if (g2RightBumper.wasJustPressed()){
transfer.setTransferPower(1);
transfer.transferIn();
shooter.setManualPower(1);
notShooting = false;
}
if (g2RightBumper.wasJustReleased()){
transfer.setTransferPower(1);
transfer.transferOut();
}
if (gamepad2.left_stick_y>0.5){
shooter.setManualPower(0);
} else if (gamepad2.left_stick_y<-0.5){
shooter.setManualPower(1);
}
if (g2LeftBumper.wasJustPressed()){
g2LeftBumperStamp = getRuntime();
notShooting = false;
scoreAll = true;
}
if (scoreAll) {
double time = getRuntime() - g2LeftBumperStamp;
shooter.setManualPower(1);
TELE.addData("greenImportant", green);
TELE.addData("last", last);
TELE.addData("2ndLast", second);
int numGreen = spindexer.greens();
if (square) {
if (time < 0.3) {
ticker = 0;
last = 0;
second = 0;
transfer.transferOut();
transfer.setTransferPower(1);
} else if (time < 2) {
if (ticker == 0) {
if (numGreen == 2) {
last = spindexer.outtakePurple(second, last);
second = last;
} else {
last = spindexer.outtakeGreen(second, last);
second = last;
}
}
second = last;
ticker++;
} else if (time < 2.5) {
ticker = 0;
second = last;
transfer.transferIn();
} else if (time < 4) {
transfer.transferOut();
if (ticker == 0) {
if (numGreen == 2) {
last = spindexer.outtakeGreen(second, last);
} else {
last = spindexer.outtakePurple(second, last);
}
}
ticker++;
} else if (time < 4.5) {
ticker = 0;
transfer.transferIn();
} else if (time < 6) {
transfer.transferOut();
if (ticker == 0) {
if (numGreen == 2) {
last = spindexer.outtakeGreen(second, last);
} else {
last = spindexer.outtakePurple(second, last);
}
}
ticker++;
} else if (time < 6.5) {
transfer.transferIn();
} else {
ticker = 0;
scoreAll = false;
transfer.transferOut();
shooter.setManualPower(0);
}
} else if (tri) {
if (time < 0.3) {
ticker = 0;
last = 0;
second = 0;
transfer.transferOut();
transfer.setTransferPower(1);
} else if (time < 2) {
if (ticker == 0) {
if (numGreen == 2) {
last = spindexer.outtakeGreen(second, last);
second = last;
} else {
last = spindexer.outtakePurple(second, last);
second = last;
}
}
second = last;
ticker++;
} else if (time < 2.5) {
ticker = 0;
second = last;
transfer.transferIn();
} else if (time < 4) {
transfer.transferOut();
if (ticker == 0) {
if (numGreen == 2) {
last = spindexer.outtakePurple(second, last);
} else {
last = spindexer.outtakeGreen(second, last);
}
}
ticker++;
} else if (time < 4.5) {
ticker = 0;
transfer.transferIn();
} else if (time < 6) {
transfer.transferOut();
if (ticker == 0) {
if (numGreen == 2) {
last = spindexer.outtakeGreen(second, last);
} else {
last = spindexer.outtakePurple(second, last);
}
}
ticker++;
} else if (time < 6.5) {
transfer.transferIn();
} else {
ticker = 0;
scoreAll = false;
transfer.transferOut();
shooter.setManualPower(0);
}
} else if (circle){
if (time < 0.3) {
ticker = 0;
last = 0;
second = 0;
transfer.transferOut();
transfer.setTransferPower(1);
} else if (time < 2) {
if (ticker == 0) {
if (numGreen == 2) {
last = spindexer.outtakeGreen(second, last);
second = last;
} else {
last = spindexer.outtakePurple(second, last);
second = last;
}
}
second = last;
ticker++;
} else if (time < 2.5) {
ticker = 0;
second = last;
transfer.transferIn();
} else if (time < 4) {
transfer.transferOut();
if (ticker == 0) {
if (numGreen == 2) {
last = spindexer.outtakeGreen(second, last);
} else {
last = spindexer.outtakePurple(second, last);
}
}
ticker++;
} else if (time < 4.5) {
ticker = 0;
transfer.transferIn();
} else if (time < 6) {
transfer.transferOut();
if (ticker == 0) {
if (numGreen == 2) {
last = spindexer.outtakePurple(second, last);
} else {
last = spindexer.outtakeGreen(second, last);
}
}
ticker++;
} else if (time < 6.5) {
transfer.transferIn();
} else {
ticker = 0;
scoreAll = false;
transfer.transferOut();
shooter.setManualPower(0);
}
} else{
if (time < 0.3) {
ticker = 0;
last = 0;
second = 0;
if (gamepad2.right_trigger > 0.5) {
green = false;
all = gamepad2.left_trigger > 0.5;
} else if (gamepad2.left_trigger > 0.5) {
green = true;
all = false;
} else {
all = true;
}
transfer.transferOut();
transfer.setTransferPower(1);
} else if (time < 2) {
if (ticker == 0) {
if (all) {
spindexer.outtake3();
last = 3;
second = 3;
} else if (green) {
last = spindexer.outtakeGreen(second, last);
second = last;
} else {
last = spindexer.outtakePurple(second, last);
second = last;
}
}
second = last;
ticker++;
} else if (time < 2.5) {
ticker = 0;
second = last;
if (gamepad2.right_trigger > 0.5) {
green = false;
all = gamepad2.left_trigger > 0.5;
} else if (gamepad2.left_trigger > 0.5) {
green = true;
all = false;
}
transfer.transferIn();
} else if (time < 4) {
transfer.transferOut();
if (ticker == 0) {
if (all) {
spindexer.outtake2();
last = 2;
} else if (green) {
last = spindexer.outtakeGreen(second, last);
} else {
last = spindexer.outtakePurple(second, last);
}
}
ticker++;
} else if (time < 4.5) {
ticker = 0;
if (gamepad2.right_trigger > 0.5) {
green = false;
all = gamepad2.left_trigger > 0.5;
} else if (gamepad2.left_trigger > 0.5) {
green = true;
all = false;
}
transfer.transferIn();
} else if (time < 6) {
transfer.transferOut();
if (ticker == 0) {
if (all) {
spindexer.outtake1();
} else if (green) {
last = spindexer.outtakeGreen(second, last);
} else {
last = spindexer.outtakePurple(second, last);
}
}
ticker++;
} else if (time < 6.5) {
transfer.transferIn();
} else {
ticker = 0;
scoreAll = false;
transfer.transferOut();
shooter.setManualPower(0);
}
}
}
shooter.update();
shooter.setTurretPosition(turretPosition);
@@ -188,6 +820,10 @@ public class TeleopV1 extends LinearOpMode {
if (g1RightBumper.wasJustPressed()){ if (g1RightBumper.wasJustPressed()){
notShooting = true;
if (getRuntime() - g1RightBumperStamp < 0.3){ if (getRuntime() - g1RightBumperStamp < 0.3){
intake.reverse(); intake.reverse();
@@ -195,47 +831,65 @@ public class TeleopV1 extends LinearOpMode {
intake.toggle(); intake.toggle();
} }
if (intake.getIntakeState()==1){
shooter.setManualPower(0);
}
spindexer.intake(); spindexer.intake();
transfer.transferOut();
g1RightBumperStamp = getRuntime(); g1RightBumperStamp = getRuntime();
} }
if (intake.getIntakeState()==1) {
if (intake.getIntakeState()==1 && notShooting) {
spindexer.intakeShake(getRuntime()); spindexer.intakeShake(getRuntime());
transfer.setTransferPowerOff();
transfer.setTransferPositionOff();
} else { } else {
if (g2Circle.wasJustPressed()){ if (g2Circle.wasJustPressed()){
transfer.setTransferPositionOff(); circle = true;
intake.intakeMinPower(); tri = false;
spindexer.outtake3(); square = false;
transfer.setTransferPowerOn();
} }
if (g2Triangle.wasJustPressed()){ if (g2Triangle.wasJustPressed()){
transfer.setTransferPositionOff(); circle = false;
intake.intakeMinPower(); tri = true;
spindexer.outtake2(); square = false;
transfer.setTransferPowerOn();
} }
if (g2Square.wasJustPressed()){ if (g2Square.wasJustPressed()){
transfer.setTransferPositionOff(); circle = false;
intake.intakeMinPower(); tri = false;
spindexer.outtake1(); square = true;
transfer.setTransferPowerOn();
} }
if (gamepad2.x){
circle = false;
tri = false;
square = false;
} }
}
intake.update(); intake.update();
transfer.update();
spindexer.update(); spindexer.update();
@@ -243,17 +897,5 @@ public class TeleopV1 extends LinearOpMode {
}
public void transfer(){
g1LeftBumper.readValue();
if (g1LeftBumper.wasJustPressed()){
transfer.setTransferPositionOn();
}
transfer.update();
} }
} }