ElapsedTime - Birden Fazla Hareket

Şu an robotumuz 3 saniye boyunca ileri gitmeli ve sonra durmalı. Peki, bu 3 saniyeden sonra robotumuzun başka bir şey yapmasını istesek? Programımızın devam etmesini nasıl sağlayabiliriz?

Zamandan tasarruf etmek için mevcut kodumuzun altına tüm döngüyü ve zamanlayıcı sıfırlamayı kopyalayıp yapıştırabiliriz!

Kopyala:

runtime.reset();
while (opModeIsActive() && (runtime.seconds() <= 3.0)) {
    leftmotor.setPower(1);
    rightmotor.setPower(1);
    telemetry.addData("Number of Seconds in Phase 1", runtime.seconds());
    telemetry.update();
}

runtime.reset();
while (opModeIsActive() && (runtime.seconds() <= 3.0)) {
    leftmotor.setPower(1);
    rightmotor.setPower(1);
    telemetry.addData("Number of Seconds in Phase 1", runtime.seconds());
    telemetry.update();
}

İkinci döngümüzde de telemetry verileri için bir çağrı olduğunu fark ettiniz, ancak adı aynı! Bunu "Phase 2'de Geçen Saniye Sayısı" olarak düzenleyelim. Ekstra döngüler kopyaladığınızda isimleri aklınızda bulundurun.

OnBot Java içinde kodu kopyalayıp yapıştırırken doğru sayıda parantez kullandığınızdan emin olun! Bir parantez eksik veya fazla olduğunda satırın kırmızı renkte işaretlendiğini görebilirsiniz.

Hızlı Kontrol! Programınızı test edin ve ne olduğunu görün. Test ederken aşağıdakileri düşünün:

  • Robot ne kadar süre hareket ediyor?

  • Robotun Phase 1 ve Phase 2 arasında geçiş yaptığını anlayabiliyor musunuz?

  • İkinci döngüde gücü değiştirirsek ne olur?

Hareketi Tersine Çevirmek Farklı sürelerle birden fazla döngü kullanmak, robotumuzu bir alanda daha etkili bir şekilde yönlendirmemizi sağlayabilir. Şu an için, robotumuzun ilk hareketini 3 saniye boyunca ileri yapmasını, ardından başladığı yere geri dönmesini isteyelim.

Bu, ikinci döngüdeki gücü -1 yapmamızla çok basit bir şekilde yapılabilir!

Kopyala:

runtime.reset();
while (opModeIsActive() && (runtime.seconds() <= 3.0)) {
    leftmotor.setPower(1);
    rightmotor.setPower(1);
    telemetry.addData("Number of Seconds in Phase 1", runtime.seconds());
    telemetry.update();
}

runtime.reset();
while (opModeIsActive() && (runtime.seconds() <= 3.0)) {
    leftmotor.setPower(-1);
    rightmotor.setPower(-1);
    telemetry.addData("Number of Seconds in Phase 2", runtime.seconds());
    telemetry.update();
}

Last updated