package org.firstinspires.ftc.teamcode; import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode; import com.qualcomm.robotcore.eventloop.opmode.TeleOp; import com.qualcomm.robotcore.hardware.Servo; import com.qualcomm.robotcore.util.Range; @TeleOp(name="Rotating Camera", group="mm") public class Camera extends LinearOpMode { public AprilTags aprilTags; private Servo cameraMount = null; double target = .5; double bearingMin = 9999; @Override public void runOpMode(){ telemetry.addLine("Status: Initializing please wait...."); telemetry.update(); aprilTags = new AprilTags(this); initialize(); aprilTags.init(); telemetry.addLine("Status: Initialized, go for it."); telemetry.update(); waitForStart(); while(opModeIsActive() && target == .5){ cameraMount.setPosition(Range.clip(getTargetPos(), 0, 1)); } while(opModeIsActive()){} } public double getTargetPos(){ double currentBearing = aprilTags.getBearing(7); if (currentBearing < 996) { target -= currentBearing * 0.00625; } if(currentBearing < bearingMin){ bearingMin = currentBearing; } telemetry.addData("bearing", currentBearing); telemetry.addData("initTarget", target); // //if (currentBearing != 999) { // if (target > 1) { //adjust values to ensure they are usable // target -= 1; // } else if (target < 0) { // target += 1; // } // } telemetry.addData("target", target); telemetry.addData("minBearing", bearingMin); telemetry.update(); return target; } private void initialize(){ cameraMount = hardwareMap.get(Servo.class, "mount"); cameraMount.setPosition(.5); } }