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;
}
}