Drivetrain Motorlarının Programlanması
Bölümde, bir motora güç vererek veya bir joystick'ten giriş alarak nasıl kontrol edileceğini öğrendik. Bir tahrik sistemini kontrol etmek için, robotun hareket etmesine yardımcı olmak amacıyla iki motoru eşzamanlı olarak kontrol etmemiz gerekir.
Çift bloğa erişmek için aktüatörler açılır menüsünü seçmeniz gerekecektir:

Drivetrain Motorlarının Programlanması
Adım 1: Temiz Başlangıç Bir önceki bölümde döngüye eklediğimiz tüm kodları silin. Alternatif olarak, yeni bir program oluşturabilirsiniz.
Blok üzerindeki değişken açılır menüsünü kullanarak koldan sağ motora geçin.
Hızlı Kontrol: Kodu çalıştırmadan önce şunu düşünün:
Program etkinleştirildiğinde robotunuzun ne yapmasını bekliyorsunuz?
Şimdi OpMode'u kaydedin ve programınızı çalıştırın!
Robot beklediğiniz gibi davranmadığında, Driver Hub'ı kolayca erişebileceğiniz bir yerde bulundurun. Şüphe durumunda robotu devre dışı bırakın.
Motorların Aynalanması
DC motorlar, sağlanan akım akışına bağlı olarak iki farklı yönde dönebilir.
Pozitif güç değeri uygulandığında motorlar saat yönünde döner.
Negatif güç değeri uygulandığında motorlar saat yönünün tersine döner.
Sorun: Robotunuzun şu anda döndüğünü fark edebilirsiniz. Robotun fiziksel yapısına daha yakından bakalım:

Robot Üstten Görünüm: Robotunuzdaki motorların tahrik sisteminin bir parçası olarak birbirine aynalı olduğunu göreceksiniz.
Motorların Yönü: Motorlar aynı yönde dönse bile (örneğin, saat yönü), birinin "saat yönü" diğerinin ters yönüdür.

Motorların ters yönde çalışmasını önlemek için iki çözüm yolu vardır:
Gücü negatif bir değerle ayarlamak.
Motorun yönünü başlangıçta ters çevirmek.
Adım 2: Motorun Yönünü Ters Çevirme
Robotumuzun dönen bir topaç olmaması için programımızı ayarlamanın birkaç yolu var. Örneğin, motorlarımızdan biri çağrıldığında gücün negatif bir değere ayarlandığından emin olabiliriz. Ya da başlatma sırasında motorumuzun yönünü basitçe tersine çevirebiliriz.
Eklemekprogramınıza, altında
yorum bloğu. Hatırlarsanız, bu bölüme yerleştirilen bloklar Sürücü Hub'ındaki intilizal düğmesine basıldıktan SONRA, ancak oynat düğmesine tıklanmadan ÖNCE çalışacaktır.
Tam Kod:
@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();
// Sağ motoru ters çevir
rightmotor.setDirection(DcMotorSimple.Direction.REVERSE);
// Oyun başlatıldığında bekle
waitForStart();
// Oyun sona erene kadar çalıştır
while (opModeIsActive()) {
rightmotor.setPower(1);
leftmotor.setPower(1);
telemetry.addData("Status", "Running");
telemetry.update();
}
}
Şimdi eklenen blokla birlikte sağ motor için yön bu program için her zaman tersine çevrilecektir. Güç değerlerimizin değiştirilmesine gerek yoktur.
Hadi deneyin!
Last updated