fgc2024-robotcode/FGC_2024.java

147 lines
6 KiB
Java
Raw Normal View History

2024-07-09 15:02:45 +02:00
package org.firstinspires.ftc.teamcode;
2024-07-09 15:43:03 +02:00
// https://prod.liveshare.vsengsaas.visualstudio.com/join?03587C25F0BC652DEF22BF0B00ACEDD85FD3
2024-07-09 15:02:45 +02:00
import com.qualcomm.robotcore.robot.Robot;
import com.qualcomm.robotcore.robot.Robot;
2024-07-09 15:43:03 +02:00
import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode;
2024-07-09 15:02:45 +02:00
import com.qualcomm.robotcore.eventloop.opmode.TeleOp;
2024-07-09 15:43:03 +02:00
import com.qualcomm.robotcore.hardware.Gamepad;
import com.qualcomm.robotcore.hardware.DcMotorEx;
2024-07-09 15:02:45 +02:00
import com.qualcomm.robotcore.hardware.DcMotor;
import com.qualcomm.robotcore.hardware.DcMotorSimple;
import com.qualcomm.robotcore.hardware.Servo;
import com.qualcomm.robotcore.hardware.IMU;
import com.qualcomm.robotcore.hardware.ImuOrientationOnRobot;
import com.qualcomm.hardware.rev.RevHubOrientationOnRobot;
2024-07-09 15:43:03 +02:00
import org.firstinspires.ftc.robotcore.external.Telemetry;
import org.firstinspires.ftc.robotcore.external.navigation.YawPitchRollAngles;
2024-07-09 15:02:45 +02:00
import org.firstinspires.ftc.robotcore.external.navigation.AngleUnit;
import org.firstinspires.ftc.robotcore.external.navigation.AxesOrder;
import org.firstinspires.ftc.robotcore.external.navigation.AxesReference;
import org.firstinspires.ftc.robotcore.external.navigation.Orientation;
import org.firstinspires.ftc.robotcore.external.navigation.Position;
import org.firstinspires.ftc.robotcore.external.navigation.Velocity;
@TeleOp(name = "FGC2024", group = "WeRobot")
public class FGC_2024 extends LinearOpMode {
2024-07-09 15:43:03 +02:00
2024-07-09 15:02:45 +02:00
private DcMotorEx rm;
private DcMotorEx lm;
private DcMotorEx elv1;
//private DcMotorEx elv2;
//private DcMotorEx elv3;
@Override
public void runOpMode() throws InterruptedException {
telemetry.addData("Status"," Initialized");
telemetry.update();
lm = hardwareMap.get(DcMotorEx.class, "lm");
rm = hardwareMap.get(DcMotorEx.class, "rm");
rm.setDirection(DcMotor.Direction.REVERSE);
//lm.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.FLOAT);
//rm.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.FLOAT);
elv1 = hardwareMap.get(DcMotorEx.class, "elv1");
elv1.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.FLOAT);
2024-07-09 15:30:18 +02:00
elv1.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER);
2024-07-09 15:02:45 +02:00
//elv2 = hardwareMap.get(DcMotorEx.class, "elv2");
//elv2.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.FLOAT);
2024-07-09 15:30:18 +02:00
//elv2.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER);
2024-07-09 15:02:45 +02:00
//elv3 = hardwareMap.get(DcMotorEx.class, "elv3");
//elv3.setZeroPowerBehavior(DcMotor.ZeroPowerBehavior.FLOAT);
2024-07-09 15:30:18 +02:00
//elv3.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER);
2024-07-09 15:02:45 +02:00
boolean already_up = false;
boolean already_down = false;
int hauteur = 0;
waitForStart();
while(opModeIsActive()){
float x = gamepad1.left_stick_x; // abscisse joystick gauche
double y = gamepad1.left_stick_y; // ordonnées joystick gauche
double lpower = 0.0; //puissance moteur gauche
double rpower = 0.0; //puissance moteur droit
lpower = ((1-x)*Math.signum(y))/1.5;
rpower = ((1+x)*Math.signum(y))/1.5;
if ( Math.abs(x)==1){
lpower = 0.75*Math.signum(x);
rpower = -lpower;
}
if(gamepad1.right_trigger == 0){
lpower /=3;
rpower /=3;
}else{
lpower = lpower*gamepad1.right_trigger;
rpower = rpower*gamepad1.right_trigger;
}
if(gamepad1.dpad_right){
elv1.setVelocity(20);
elv1.setTargetPosition(elv1.getCurrentPosition()+1);
elv1.setMode(DcMotor.RunMode.RUN_TO_POSITION);
}
if(gamepad1.dpad_left){
elv1.setVelocity(20);
elv1.setTargetPosition(elv1.getCurrentPosition()-1);
elv1.setMode(DcMotor.RunMode.RUN_TO_POSITION);
}
2024-07-09 16:05:14 +02:00
if(gamepad1.right_bumber && gamepad1.dpad_down){
elv1.setVelocity(0);
elv1.setTargetPosition(elv1.getCurrentPosition());
elv1.setMode(DcMotor.RunMode.RUN_TO_POSITION);
}
telemetry.addData("targetPos",elv1.getTargetPosition());
telemetry.addData("pos", elv1.getCurrentPosition())
2024-07-09 15:30:18 +02:00
if (gamepad1.dpad_up && !already_up && hauteur<3){
2024-07-09 15:02:45 +02:00
elv1.setVelocity(250);
// elv2.setVelocity(250);
// elv3.setVelocity(250);
2024-07-09 15:30:18 +02:00
elv1.setTargetPosition(elv1.getCurrentPosition()+277);
2024-07-09 15:02:45 +02:00
// elv2.setTargetPosition(elv2.getCurrentPosition()+15);
2024-07-09 15:30:18 +02:00
// elv3.setTargetPosition(elv3.getCurrentPosition()+15);
2024-07-09 15:02:45 +02:00
elv1.setMode(DcMotor.RunMode.RUN_TO_POSITION);
// elv2.setMode(DcMotor.RunMode.RUN_TO_POSITION);
// elv3.setMode(DcMotor.RunMode.RUN_TO_POSITION);
hauteur += 1;
already_up = !already_up;
}else{
already_up = false;
}
2024-07-09 15:30:18 +02:00
if (gamepad1.dpad_down && !already_up && hauteur>0){
2024-07-09 15:02:45 +02:00
elv1.setVelocity(250);
2024-07-09 15:30:18 +02:00
//elv2.setVelocity(250);
//elv3.setVelocity(250);
elv1.setTargetPosition(elv1.getCurrentPosition()-277);
// elv2.setTargetPosition(elv2.getCurrentPosition()-15);
// elv3.setTargetPosition(elv3.getCurrentPosition()-15);
2024-07-09 15:02:45 +02:00
elv1.setMode(DcMotor.RunMode.RUN_TO_POSITION);
2024-07-09 15:30:18 +02:00
// elv2.setMode(DcMotor.RunMode.RUN_TO_POSITION);
// elv3.setMode(DcMotor.RunMode.RUN_TO_POSITION);
2024-07-09 15:02:45 +02:00
hauteur -= 1;
already_down = !already_down;
}else{
already_down = false;
}
rm.setPower(rpower);
lm.setPower(lpower);
telemetry.addData("r", rpower);
telemetry.addData("l", lpower);
telemetry.addData("compteur", hauteur);
telemetry.update();
}
}
}