Kol Kontrolü - OnBot Java
Şimdi robotumuz hareket edebiliyorken, kolumuzu da kaldırıp hareket ettirelim!
Kol Kontrolüne Giriş
Bir kolu kontrol etmek, tahrik sistemini kontrol etmekten farklı bir düşünme tarzı gerektirir. Tahrik sistemi, motorların dönme hareketini kullanarak doğrusal mesafeyi hareket ettirirken, kol bir merkezi nokta veya eklem etrafında döner.
Tahrik sistemimizden farklı olarak, kolumuzun dönebileceği mesafede fiziksel sınırlamalar vardır. Robotumuzun kendisine zarar vermemesi için dokunma sensörümüzü limit anahtarı olarak kullanacağız.
Bir Kol Programlamanın Temelleri Bu bölüm için yeni bir program olan HelloRobot_ArmControl'ı oluşturacağız. Bunu daha sonra tahrik OpMode'umuza ekleyebiliriz, ancak şimdilik bunu ayrı tutmak, yalnızca kola odaklanmamıza yardımcı olacaktır.
Kolumuzu kontrol etmek için gamepad'imizdeki Dpad'i kullanacağız. Joystick'imiz mümkün olan bir dizi değer veya kayan veri sağlarken, Dpad yalnızca 1 veya 0 olarak okunur. Bu sayılar bizim için true (buton basılı) veya false (buton basılı değil) olarak anlam bulur.
Başlamak için, döngümüzün içine Dpad Yukarı ve Dpad Aşağı butonlarımız için bir If/else if ifadesi kurabiliriz:
while (opModeIsActive()) {
if(gamepad1.dpad_up){
}
else if (gamepad1.dpad_down){
}
} Hareket Eklemek Şimdilik, en kolay yolumuz, arm'ımızı DpadYukarı ile yukarı, DpadAşağı ile aşağı hareket ettirmektir. Daha sonra hangi butonların kullanılacağını değiştirmeye karar verebilirsiniz, ancak burada bulduğumuz mantık benzer olmalıdır.
Her "do" kısmına bir arm.setPower(); ekleyelim. Hareketi test ederken, gücü daha yönetilebilir bir aralığa indirmek isteyeceğiz. Şimdilik yukarı için 0.2, aşağı için -0.2 olarak ayarlayacağız.
if(gamepad1.dpad_up){
arm.setPower(0.2);
}
else if (gamepad1.dpad_down){
arm.setPower(-0.2);
} Hızlı Kontrol! OpMode'unuzu kaydedin ve deneyin! Programınızı test ederken şu soruları göz önünde bulundurun:
Dpad üzerinde yukarıya basarsanız ne olur?
Dpad üzerinde aşağıya basarsanız ne olur?
Hiçbir buton aktif olarak basılmadığında ne olur?
Robot beklendiği gibi hareket etti mi?
Bir "Else" Oluşturmak Mevcut if/else if ifadesi, robota motorun ne zaman ve hangi yönde hareket etmesi gerektiğini söylüyor, ancak motorun durması gerektiğini belirten hiçbir şey yok, dolayısıyla kol limitsiz bir şekilde çalışmaya devam ediyor. İdeal olarak, kolumuz yalnızca bir butona basıldığında hareket etmelidir.
Bunu düzeltmek için, ifademizi "else" ekleyerek daha uzun yapabiliriz. Bu "else" son olarak kontrol edilecek ve robotumuza, Dpad butonlarından hiçbirine basılmadığında ne yapması gerektiğini bildirecektir!
if(gamepad1.dpad_up){
arm.setPower(0.2);
}
else if (gamepad1.dpad_down){
arm.setPower(-0.2);
}
else {
arm.setPower(0);
} Bu değişikliği yaptıktan sonra programınızı kaydedin ve tekrar test edin!
Last updated