Bir Motoru Gamepad ile Programlama

Motorları Gamepad ile Sürmek Bir önceki bölümde, motoru belirli bir güç seviyesinde ve belirli bir yönde çalıştırmayı öğrendiniz. Ancak, çoğu uygulamada, motoru bir gamepad ile kontrol etmeniz gerekecektir; böylece mekanizmanın yönünü veya güç seviyesini kolayca değiştirebilirsiniz.

Bir buton kullanarak motoru belirli bir güçle ayarlayabiliriz veya motoru gamepad'in bir joystick'inin yönüne göre değişecek şekilde programlayabiliriz!

Mevcut test_motor.setPower(1); satırını alıp, 1 değerini this.gamepad1.left_stick_y ile değiştirebiliriz.

while (opModeIsActive()) {
    test_motor.setPower(this.gamepad1.left_stick_y);
    telemetry.addData("Status", "Running");
    telemetry.update();
}

Şimdi motorumuzun gücü, gamepad'in sol joystick'inin y eksenindeki pozisyonuna göre ayarlanacaktır!

Hızlı Kontrol! OpMode'unuzu oluşturun ve gamepad'inizle test edin! Test ederken aşağıdaki soruları düşünün:

  • Sol joystick'i az bir miktarda yukarı hareket ettirdiğinizde ve büyük bir miktarda yukarı hareket ettirdiğinizde ne olur?

  • Joystick'i sola veya sağa hareket ettirdiğinizde ne olur?

  • Joystick'i diyagonal bir şekilde hareket ettirdiğinizde veya 360 derece döndürdüğünüzde ne olur?

X ekseni boyunca hareket ederken şu an bir şeyin değişmediğini fark edebilirsiniz. Ancak, joystick Y ekseninin köşelerine yakın bir açıya geldiğinde motor titremeye başlayabilir ve dönmeye başlayabilir.

Y Ekseninin Yönünü Ayarlamak Programınızı test ettiğinizde, motor joystick'i yukarı veya aşağı hareket ettirirken beklenen yönde döndü mü?

FTC SDK'sında çoğu kontrol cihazı için joystick'in Y değeri, joystick'in en üst konumunda -1'den, en alt konumunda +1'e kadar değişir.

Bu, kontrol etmek biraz kafa karıştırıcı olabilir, ancak motorun yönünü gamepad ile ilişkilendirecek şekilde değiştirmek için koda bir negatif sembol veya negatifleme operatörü ekleyebiliriz.

while (opModeIsActive()) {
    test_motor.setPower(-this.gamepad1.left_stick_y);
    telemetry.addData("Status", "Running");
    telemetry.update();
}

Last updated