This commit is contained in:
Zelina974 2024-04-01 17:10:52 +02:00
parent 60d01e81f5
commit 07423e3692

View file

@ -26,7 +26,7 @@ import org.firstinspires.ftc.robotcore.external.navigation.Velocity;
@TeleOp(name = "WeRobot: FTC2024 NEW!!! Carlike", group = "WeRobot") @TeleOp(name = "WeRobot: FTC2024 NEW!!! Carlike", group = "WeRobot")
public class WEROBOT_FTC2024_New_carlike extends LinearOpMode { public class WEROBOT_FTC2024_New_carlike extends LinearOpMode {
public enum RobotMode{ public enum RobotMode{
ESSAIFRANCK, ELINA, NORMAL, TANCK; ESSAIFRANCK, ELINA, NORMAL, TANK;
} }
private DcMotor rm; private DcMotor rm;
@ -37,7 +37,7 @@ public class WEROBOT_FTC2024_New_carlike extends LinearOpMode {
private DcMotorEx box; private DcMotorEx box;
private DcMotorEx rotation; private DcMotorEx rotation;
private ElapsedTime runtime = new ElapsedTime(); private ElapsedTime runtime = new ElapsedTime();
private RobotMode mode = RobotMode.ESSAIFRANCK;
/*La fonction pour faire des exponentielles spécifiques /*La fonction pour faire des exponentielles spécifiques
* @param double t => le nombre dont on veut faire l'exponentielle * @param double t => le nombre dont on veut faire l'exponentielle
* @return double une_exponentielle_très_spéciale_de_t*/ * @return double une_exponentielle_très_spéciale_de_t*/
@ -59,8 +59,6 @@ public class WEROBOT_FTC2024_New_carlike extends LinearOpMode {
double t2; double t2;
double t3; double t3;
String mode = "elina";
boolean already_b = false; boolean already_b = false;
boolean already_a = false; boolean already_a = false;
boolean already_x = false; boolean already_x = false;
@ -81,6 +79,7 @@ public class WEROBOT_FTC2024_New_carlike extends LinearOpMode {
rm.setDirection(DcMotor.Direction.REVERSE); rm.setDirection(DcMotor.Direction.REVERSE);
moissoneuse = hardwareMap.get(DcMotor.class, "moissonneuse"); moissoneuse = hardwareMap.get(DcMotor.class, "moissonneuse");
moissoneuse.setDirection(DcMotor.Direction.REVERSE);
lmelevator = hardwareMap.get(DcMotorEx.class, "ltrselv"); lmelevator = hardwareMap.get(DcMotorEx.class, "ltrselv");
lmelevator.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER); lmelevator.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER);
@ -136,21 +135,15 @@ public class WEROBOT_FTC2024_New_carlike extends LinearOpMode {
t3 = helloexp(Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2))); t3 = helloexp(Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2)));
telemetry.addData("Status", "Running"); telemetry.addData("Status", "Running");
// si le bouton a du gamepad 1 est appuyé et {already_a} est faux
if (gamepad1.a && !already_a) {
if (mode == "normal") {
mode = "tank";
} else if (mode == "tank") {
mode = "essai franck";
} else if (mode == "essai franck") {
mode = "elina";
} else {
mode = "elina";
}
already_a = true;
}
boxRot = gamepad1.right_stick_x; if (0.1<gamepad1.right_stick_x){
boxRot = 0.2;
} else if (-0.1>gamepad1.right_stick_x){
boxRot = -0.2;
}
if (gamepad1.right_trigger>0){
box.setPower(boxRot);
}
// if (boxRot <= 0){ // if (boxRot <= 0){
// signeBR = -1; // signeBR = -1;
// } // }
@ -169,41 +162,51 @@ public class WEROBOT_FTC2024_New_carlike extends LinearOpMode {
// } // }
// } // }
box.setPower(boxRot); if(gamepad1.a && !already_a){
nextMode();
already_a = true;
}
if (!gamepad1.a && already_a) { if (!gamepad1.a && already_a) {
already_a = false; already_a = false;
} }
double lpower = 0.0; double lpower = 0.0;
double rpower = 0.0; double rpower = 0.0;
if (mode == "normal") {
switch (mode) {
case NORMAL:
double ysign = Double.signum(y); double ysign = Double.signum(y);
double xsign = Double.signum(x); double xsign = Double.signum(x);
lpower = -ysign * t + (xsign - 2 * x) * t; lpower = -ysign * t + (xsign - 2 * x) * t;
rpower = ysign * t + (xsign - 2 * x) * t; rpower = ysign * t + (xsign - 2 * x) * t;
} else if (mode == "tank") { break;
case TANK:
lpower = -y; lpower = -y;
rpower = gamepad1.right_stick_y; rpower = gamepad1.right_stick_y;
} break;
if (mode == "essaifranck") {
case ESSAIFRANCK :
double a = (-y + x) / Math.pow(2, 1 / 2); double a = (-y + x) / Math.pow(2, 1 / 2);
double b = (-y - x) / Math.pow(2, 1 / 2); double b = (-y - x) / Math.pow(2, 1 / 2);
double vmean = (Math.abs(a) + Math.abs(b)) / 2; double vmean = (Math.abs(a) + Math.abs(b)) / 2;
lpower = (a / vmean) * t2; lpower = (a / vmean) * t2;
rpower = (b / vmean) * t2; rpower = (b / vmean) * t2;
} else if (mode == "elina") { break;
case ELINA :
double a = (-y + x) / Math.pow(2, 1 / 2); double a = (-y + x) / Math.pow(2, 1 / 2);
double b = (-y - x) / Math.pow(2, 1 / 2); double b = (-y - x) / Math.pow(2, 1 / 2);
double vmean = (Math.abs(a) + Math.abs(b)) / 2; double vmean = (Math.abs(a) + Math.abs(b)) / 4;
lpower = (a / vmean) * t3; lpower = (a / vmean) * t3;
rpower = (b / vmean) * t3; rpower = (b / vmean) * t3;
break;
} }
if (gamepad1.left_trigger>0.1) { if (gamepad1.left_trigger>0.1) {
lpower /= 3; lpower /= 3;
rpower /= 3; rpower /= 3;
} }
lm.setPower(lpower); lm.setPower(lpower);
rm.setPower(rpower); rm.setPower(rpower);
@ -375,11 +378,11 @@ public class WEROBOT_FTC2024_New_carlike extends LinearOpMode {
telemetry.addData("x", x); telemetry.addData("x", x);
telemetry.addData("y", y); telemetry.addData("y", y);
telemetry.addData("mode", mode);
telemetry.addData("lpow", lpower); telemetry.addData("lpow", lpower);
telemetry.addData("rpow", rpower); telemetry.addData("rpow", rpower);
telemetry.addData("ltrigg", t); telemetry.addData("ltrigg", t);
telemetry.addData("t2", t2); telemetry.addData("t2", t2);
telemetry.addData("manual mode", manualMode);
telemetry.addData("rotation power",boxRot); telemetry.addData("rotation power",boxRot);
telemetry.addData("mode manuel", manualMode); telemetry.addData("mode manuel", manualMode);
telemetry.addData("Position elevateur l", lmelevator.getCurrentPosition()); telemetry.addData("Position elevateur l", lmelevator.getCurrentPosition());