Goat
Goat
teamcode;
import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode;
import com.qualcomm.robotcore.hardware.Servo;
import com.qualcomm.robotcore.hardware.DcMotor;
import com.qualcomm.robotcore.hardware.CRServo;
@com.qualcomm.robotcore.eventloop.opmode.TeleOp(name="StarterBot_V1_Java",
group="Linear Opmode")
public class StarterBot2025TeleOpJava extends LinearOpMode {
/*
// Estado do toggle da garra
private boolean garraAberta = true;
private boolean ultimoBotaoB = false;
private boolean ultimoBotaoY = false;
private boolean ultimoGatilhoDireito = false;
*/
// Posições-alvo do braço e pulso
private int alvoBraco = 0;
@Override
public void runOpMode() {
// Inicializa os componentes do hardware
motorEsquerdo = hardwareMap.get(DcMotor.class, "motorEsquerdo");
motorDireito = hardwareMap.get(DcMotor.class, "motorDireito");
motorBraco = hardwareMap.get(DcMotor.class, "motorBraco");
motorPulso = hardwareMap.get(DcMotor.class, "motorPulso");
garra = hardwareMap.get(Servo.class, "garra");
servoIntake = hardwareMap.get(CRServo.class, "servoIntake");
// Reseta os encoders
motorEsquerdo.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER);
motorDireito.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER);
motorBracoA.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER);
motorBracoB.setMode(DcMotor.RunMode.STOP_AND_RESET_ENCODER);
case COLETA:
alvoBraco = POS_BRACO_COLETA;
telemetry.addData("Estado", "COLETA");
break;
case CESTO_BAIXO:
alvoBraco = POS_BRACO_CESTO_BAIXO;
telemetry.addData("Estado", "CESTO_BAIXO");
break;
case MANUAL:
telemetry.addData("Estado", "MANUAL");
break;
}
/*
// Transições de estado baseadas no controle
if (gamepad1.a) {
estadoAtual = EstadoRobo.COLETA;
} else if (gamepad1.b && !ultimoBotaoB) {
estadoAtual = (estadoAtual == EstadoRobo.PAREDE_AGARRAR) ?
EstadoRobo.PAREDE_DESPRENDER : EstadoRobo.PAREDE_AGARRAR;
} else if (gamepad1.y && !ultimoBotaoY) {
estadoAtual = (estadoAtual == EstadoRobo.HOVER_ALTO) ?
EstadoRobo.CLIP_ALTO : EstadoRobo.HOVER_ALTO;
} else if (gamepad1.x) {
estadoAtual = EstadoRobo.CESTO_BAIXO;
} else if (gamepad1.left_bumper) {
estadoAtual = EstadoRobo.INICIAL;
}
*/
//Transição rápida
if (gamepad1.a) {
estadoAtual = EstadoRobo.INICIAL;
} else if (gamepad1.x) {
estadoAtual = EstadoRobo.CESTO_BAIXO;
}
// Controle do intake
if (gamepad1.left_bumper) {
servoIntake.setPower(1.0);
} else if (gamepad1.right_bumper) {
servoIntake.setPower(-1.0);
} else {
servoIntake.setPower(0);
}
motorEsquerdo.setPower(eixoEsquerdo);
motorDireito.setPower(eixoDireito);
motorBracoA.setPower(1);
motorBracoB.setPower(1);