ElapsedTime Kurulumu
ElapsedTime ile Programlama Yeni bir OpMode oluşturmakla başlayın, bu OpMode'yi HelloRobot_ElapsedTime olarak adlandırın ve Part 1'de kullandığımız BlankLinearOpMode örneğine benzer şekilde oluşturun.

Yukarıda tartışılan özellikleri seçmek, aşağıdaki kodla başlamanızı sağlar. "Configured Hardware için Kurulum Kodu" seçeneği seçildiğinde, OpMode, etkin yapılandırmaya dayalı olarak bir hardwareMap oluşturmaya çalışacaktır. Bu örnek, başlangıçta oluşturduğumuz aynı Hello Robot yapılandırma dosyasını kullanır!
Kopyala:
package org.firstinspires.ftc.teamcode;
import com.qualcomm.robotcore.eventloop.opmode.LinearOpMode;
import com.qualcomm.robotcore.hardware.Blinker;
import com.qualcomm.robotcore.hardware.Servo;
import com.qualcomm.robotcore.hardware.TouchSensor;
import com.qualcomm.robotcore.eventloop.opmode.TeleOp;
import com.qualcomm.robotcore.eventloop.opmode.Disabled;
import com.qualcomm.robotcore.hardware.DcMotor;
import com.qualcomm.robotcore.hardware.DcMotorSimple;
import com.qualcomm.robotcore.util.ElapsedTime;
@TeleOp
public class HelloRobot_ElapsedTime extends LinearOpMode {
private Blinker control_Hub;
private DcMotor arm;
private DcMotor leftmotor;
private DcMotor rightmotor;
private DcMotor test_motor;
private Servo test_servo;
private TouchSensor test_touch;
@Override
public void runOpMode() {
control_Hub = hardwareMap.get(Blinker.class, "Control Hub");
arm = hardwareMap.get(DcMotor.class, "arm");
leftmotor = hardwareMap.get(DcMotor.class, "leftmotor");
rightmotor = hardwareMap.get(DcMotor.class, "rightmotor");
test_motor = hardwareMap.get(DcMotor.class, "test_motor");
test_servo = hardwareMap.get(Servo.class, "test_servo");
test_touch = hardwareMap.get(TouchSensor.class, "test_touch");
telemetry.addData("Status", "Initialized");
telemetry.update();
// Oyun başlamadan önce bekleyin (sürücü PLAY'e basar)
waitForStart();
// Maç bitene kadar çalışmaya devam edin (sürücü STOP'a basar)
while (opModeIsActive()) {
telemetry.addData("Status", "Running");
telemetry.update();
}
}
}Temel Kurulumu Yapmak ElapsedTime kullanmaya hazırlanmak için bir değişken ve bir ElapsedTime örneği oluşturulması gerekir. Bunu yapmak için aşağıdaki satır gereklidir:
Kopyala:
private ElapsedTime runtime = new ElapsedTime();Bu durumda, değişkenimize runtime adını verdik.
Yukarıdaki satır iki işlem gerçekleştirir:
A. ElapsedTime adında bir değişken olan runtime oluşturulur. Bir ElapsedTime değişkeni olarak oluşturulduktan sonra, ilgili zaman bilgilerini ve verilerini tutabilir.
Satırın diğer kısmı, runtime = new ElapsedTime(); ifadesi, bir ElapsedTime zamanlayıcı nesnesi oluşturur ve bu nesneyi yeni oluşturduğumuz runtime değişkenine atar.
Bu satırı OpMode'ye, diğer özel değişkenlerle birlikte ekleyin:
Kopyala:
public class HelloRobot_ElapsedTime extends LinearOpMode {
private DcMotor leftMotor;
private DcMotor rightMotor;
private DcMotor arm;
private Servo claw;
private TouchSensor touch;
private ElapsedTime runtime = new ElapsedTime();OnBot Java'da private anahtar kelimesi, bir erişim belirleyicisidir ve bu durumda bu değişkenin yalnızca tanımlandığı sınıf içinde kullanılabileceği anlamına gelir. Bu projedeki sınıfımız "public class HelloRobot_ElapsedTime" sınıfıdır.
Sonraki adımda, motorlarımız için temel hareketi eklemeye geçebiliriz. Bu örnek için her iki motoru da 1 gücüne ayarlayacağız:
Kopyala:
@TeleOp
public class HelloRobot_ElapsedTime extends LinearOpMode {
private Blinker control_Hub;
private DcMotor arm;
private DcMotor leftmotor;
private DcMotor rightmotor;
private DcMotor test_motor;
private Servo test_servo;
private TouchSensor test_touch;
private ElapsedTime runtime = new ElapsedTime();
@Override
public void runOpMode() {
control_Hub = hardwareMap.get(Blinker.class, "Control Hub");
arm = hardwareMap.get(DcMotor.class, "arm");
leftmotor = hardwareMap.get(DcMotor.class, "leftmotor");
rightmotor = hardwareMap.get(DcMotor.class, "rightmotor");
test_motor = hardwareMap.get(DcMotor.class, "test_motor");
test_servo = hardwareMap.get(Servo.class, "test_servo");
test_touch = hardwareMap.get(TouchSensor.class, "test_touch");
telemetry.addData("Status", "Initialized");
telemetry.update();
// Oyun başlamadan önce bekleyin (sürücü PLAY'e basar)
waitForStart();
// Maç bitene kadar çalışmaya devam edin (sürücü STOP'a basar)
while (opModeIsActive()) {
leftmotor.setPower(1);
rightmotor.setPower(1);
telemetry.addData("Status", "Running");
telemetry.update();
}
}
}Son olarak, sağ motorun yönünü başlatma sırasında ters çevirmemiz gerektiğinden emin olmamız gerekir:
Kopyala:
@Override
public void runOpMode() {
control_Hub = hardwareMap.get(Blinker.class, "Control Hub");
arm = hardwareMap.get(DcMotor.class, "arm");
leftmotor = hardwareMap.get(DcMotor.class, "leftmotor");
rightmotor = hardwareMap.get(DcMotor.class, "rightmotor");
test_motor = hardwareMap.get(DcMotor.class, "test_motor");
test_servo = hardwareMap.get(Servo.class, "test_servo");
test_touch = hardwareMap.get(TouchSensor.class, "test_touch");
rightmotor.setDirection(DcMotorSimple.Direction.REVERSE);
telemetry.addData("Status", "Initialized");
telemetry.update();
// Oyun başlamadan önce bekleyin (sürücü PLAY'e basar)
waitForStart();
}Last updated