Hareket Aralığını Kontrol Etmek İçin Sınırlar Kullanma
Bölüm 2: Robot Kontrol’de, fiziksel bir sensör (örneğin, dokunma sensörü) kullanarak bir limit anahtarı oluşturma fikri tanıtılmıştı. Motorun yerleşik kodlayıcısını kullanarak benzer bir şey yapabiliriz. Fiziksel bir sensör, sert limit olarak tanımlanırken, yerleşik kodlayıcıyı kullanmak yumuşak limit olarak adlandırılır.
Yumuşak limitleri ayarlamak için, önceki bölümlerde oluşturduğumuz programı (HelloRobot_ArmEncoder) temel alacağız!

HelloRobot_ArmEncoder programı minPosition ve maxPosition oluşturma Başlamak için üst ve alt limitlerimizi oluşturmalıyız. Başlangıçta iki yeni değişken oluşturun; birine minPosition, diğerine ise maxPosition adını verin ve bunları başlatmada ekleyin.

Şimdilik minPosition'ı başlangıç pozisyonumuz olarak ve maxPosition'ı ise 90 derece pozisyonumuz olarak ayarlamak istiyoruz. minPosition'ı COUNTS_PER_DEGREE *
'a, maxPosition'ı ise
'e eşitleyin. Daha önce armPosition için kullandığımız blok
, maxPosition'a taşınabilir.

If/Else Koşulunu Düzenleme Başlamak için If/Else koşulumuzu, kolun pozisyonunu tahmin ettiğimizde kullandığımız basitleştirilmiş formata geri döndüreceğiz.

Kolu hareket ettirmek için If/Else koşulu Limiti ayarlamak için, If/Else koşulumuzu, limitlerimizi içerecek şekilde düzenlememiz gerekecek:
Eğer Dpad yukarıya basılmışsa ve kolun pozisyonu maxPosition’dan küçükse, o zaman kol maxPosition’a hareket edecektir.
Eğer Dpad aşağıya basılmışsa ve kolun pozisyonu minPosition’dan büyükse, o zaman kol minPosition’a doğru hareket edecektir.

Koşulun kontrolü için "mantık" açılır menüsünü kullanın.
Limitleri Aşmak Yumuşak limitlerin bir avantajı, bu limitin aşılabilmesidir.
Unutmayın ki, kodlayıcının sıfır tik pozisyonu, Control Hub açıldığında kolun pozisyonuyla belirlenir! Bu nedenle robotumuzu açmadan önce kolu sıfırlamazsak, bu kolun hareket aralığını etkileyebilir. Örneğin, kolu 90 derece pozisyonunda sıfırlamamız gerekirse, 90 derece pozisyonu 0 kodlayıcı tikine eşit olacaktır.
Bir yedek olarak, hareket aralığımızı sıfırlamak için bir override (geçersiz kılma) oluşturabiliriz. Bir override oluşturmanın birkaç farklı yolu vardır, ancak bizim durumumuzda, "A" düğmesi ve dokunma sensörü kullanarak aralığımızı sıfırlamaya yardımcı olacağız.
Gamepad Override Ekleme
Başlamak için,
bloğunu düzenleyerek başka bir
koşul ekleyin. Koşul olarak
bloğunu kullanın. do kısmına bir
bloğu ekleyin ve gücü -0.5 olarak ayarlayın.

Gamepad "A" geçersiz kılma eklemek Bu değişikliği yaptıktan sonra, "A" düğmesine basıldığında kol başlangıç pozisyonuna hareket edecektir.
Dokunma Sensörü Limit Anahtarı Ekleme Sonraki adımda, kol dokunma sensörüne ulaştığında ve onu bastırdığında, STOP_AND_RESET_ENCODER komutunu çalıştırmak istiyoruz.
Dokunma sensörünün basıldığında bu durumu kontrol etmek için ek bir
koşulu oluşturabilirsiniz. Gerekirse, Part 1: Temel Sorunları Ele Alma başlığında Dokunma Sensörlerini Programlamayı gözden geçirebilirsiniz!

Dokunma sensörü limit anahtarı, ayrı bir If/Else koşulu olarak eklendi OpMode’nuzu kaydedin ve test etmeyi deneyin!
Last updated