Ir para o conteúdo principal

Programação de exemplo


O servo taura pode ser programado normalmente como qualquer servo do ecosistema FTC. Nesta página você encontra um código de exemplo que:

  • Movimenta o servo em diferentes posições;
  • Retorna a posição (0.0 até 1.0) pelo sensor analógico presente.
package org.firstinspires.ftc.teamcode;

import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode;
import com.qualcomm.robotcore.eventloop.opmode.TeleOp;
import com.qualcomm.robotcore.hardware.AnalogInput;
import com.qualcomm.robotcore.hardware.Servo;

@TeleOp(name="Taura Move", group="Linear OpMode")
public class ExampleTaura extends LinearOpMode {

    private static final double A = -0.06637714;
    private static final double B =  0.34132813;

    @Override
    public void runOpMode() throws InterruptedException {
        Servo tauraServo = hardwareMap.get(Servo.class, "servoTeste");
        AnalogInput potentiometer = hardwareMap.get(AnalogInput.class, "potentiometer");

        tauraServo.setPosition(0);

        waitForStart();
        if (isStopRequested()) return;

        while(opModeIsActive()) {
            if(gamepad1.y)
                tauraServo.setPosition(1.0);
            else if(gamepad1.dpad_up)
                tauraServo.setPosition(0.85);
            else if(gamepad1.dpad_down)
                tauraServo.setPosition(0.65);
            else if(gamepad1.x || gamepad1.b)
                tauraServo.setPosition(0.5);
            else if(gamepad1.dpad_left)
                tauraServo.setPosition(0.35);
            else if(gamepad1.dpad_right)
                tauraServo.setPosition(0.15);
            else if(gamepad1.a)
                tauraServo.setPosition(0.0);

            double pose = tauraServo.getPosition();

            telemetry.addData("Pos comandada", "%.3f", pose);
            telemetry.addData("Pos lida", "%.3f", rawPoseFromVoltage(potentiometer.getVoltage()));
            telemetry.update();
        }
    }

    // Return the max position of servo [0.0, 1.0], can be greater than 1.0 for CR mode
    private double rawPoseFromVoltage(double voltage) {
        return A + B * voltage;
    }

}