Limit Switch Ekleme

Kol mekanizmanızın fiziksel sınırlamalarını göz önünde bulundurmak önemlidir. Tıpkı sizin kollarınızı ne kadar hareket ettirebileceğinizin bir sınırı olduğu gibi, robotun kolunun da yalnızca yukarı veya aşağı hareket edebileceği bir mesafe vardır. Ancak, sizin sinirleriniz, limitinizi ne zaman aştığınızı anlamanıza yardımcı olurken, robotumuzun kendisini veya çevresindekileri zarar vermemesi için bir şey eklememiz gerekecek.

İşte burada sensörlerin kullanımının önemi devreye giriyor. Mekanizmamızı sınırlamanın birkaç yolu olabilir. Sizce bunlar ne olabilir?

Bu bölümde, robotumuzun kolunun çok fazla uzamamasını sağlamak için bir limit anahtarı eklemeyi inceleyeceğiz. "Touch Sensors" (Dokunma Sensörleri) bölümümüzde, dokunma sensörlerinin bir açma/kapama anahtarı gibi çalışabileceğini tartıştığınızı hatırlayabilirsiniz. Esasen, robotumuzun kolu, limit noktası gerçekleştiğinde motorunu kapatacak!

Bu bölüm, REV Touch Sensor veya Magnetic Limit Switch (Manyetik Limit Anahtarı) kullanımı göz önünde bulundurularak hazırlanmıştır. Üçüncü taraf dokunma sensörleri için ek gereksinimler olabilir.

Quick Check! "Programming Touch Sensors" (Dokunma Sensörleri Programlama) bölümüne geri dönün ve aşağıdaki gibi temel bir limit anahtarı programı oluşturmayı öğrendiğinizi hatırlayın:

Limit Switch if/else

if (test_touch.isPressed()){
    //Dokunma Sensörü basıldı  
    arm.setPower(0);
} else {
    //Dokunma Sensörü basılmadı 
    arm.setPower(0.2);
}

Dokunma sensörünün TRUE/FALSE ikili verisiyle çalıştığını da öğrendik. Peki yukarıdaki program robotumuza ne yapması gerektiğini söylüyor?

Kontrolör Kontrolü Eklemek Şimdi programımıza bir adım daha ekleyelim ve kolumuzu bir kontrolörle kontrol edebilmesini sağlayalım. Bunu yapmak için, Gamepad if/else if ifadesini Limit Switch if/else if ifadesinin içine yerleştirebiliriz. Bu şu şekilde olacak:

if(test_touch.isPressed()){
     arm.setPower(0);
       }
else {
    if(gamepad1.dpad_up){
       arm.setPower(0.2);         
            }
     else if (gamepad1.dpad_down){
       arm.setPower(-0.2); 
            }   
     else { 
       arm.setPower(0); 
            } 
       } 

Test ederken, kol mekanizmanızın Dokunma Sensörü ile hizalı olduğundan emin olun.

Class Bot V2 kullanıyorsanız, dokunma sensörünü daha tutarlı bir şekilde bağlamak için limit anahtarı tamponunu ayarlamanız gerekebilir.

OpMode'u kaydedin ve deneyin!

Ayarlamalar Yapmak Yukarıdaki kodu test ettiğinizde ne oldu? Dokunma sensörü basıldığında kol hareket etmiyor olabilir. Bu muhtemelen ideal değil, peki neden böyle oldu?

Limit anahtarı, dokunma sensörü gibi, varsayılan durumuna kolayca sıfırlanabilmesi avantajına sahiptir. Tek yapmanız gereken butona basıncın serbest bırakılmasıdır, ancak şu anda robotumuz sadece switch basıldığında gücü kapatmayı biliyor!

Bunu nasıl düzeltiriz?

Bunu düzeltmek için, limitin tersine kolu hareket ettirecek bir işlem, "else" ifadesine eklenmelidir. Dokunma sensörü, kolun alt limitini sağladığı için, dokunma sensöründen uzaklaşmak için yukarı hareket etmesi (ya da motorun ileri yönde hareket etmesi) gerekir.

Bunu yapmak için mevcut Gamepad if/else if ifadesine benzer bir if/else ifadesi oluşturabiliriz. Bu durumda, dokunma sensörü ve DpadYukarı aynı anda basıldığında kol, dokunma sensöründen uzaklaşacaktır. Dokunma sensörü true olarak rapor etmediği sürece normal gamepad işlemleri tekrar devreye girecektir!

if(test_touch.isPressed()){
    if(gamepad1.dpad_up){
        arm.setPower(0.2);         
    }
    else{
        arm.setPower(0);
    }  
}
else {
    if(gamepad1.dpad_up){
        arm.setPower(0.2);         
    }
    else if (gamepad1.dpad_down){
        arm.setPower(-0.2); 
    }   
    else { 
        arm.setPower(0); 
    } 
}  

Last updated