Drivetrain Encoder’ları - Bloklar
Drivetrain Encoder'ları - Bloklar Encoder'ları kullanarak motorları belirli bir pozisyona taşımak, Süre Ölçümü (Elapsed Time) kullanımından kaynaklanabilecek herhangi bir hatayı veya tutarsızlığı ortadan kaldırır. Bu bölümün odak noktası, encoder'lar kullanarak robotu bir hedef pozisyona taşımaktır.
Drivetrain Encoder'larının Ayarlanması Bu öğreticide, OpMode adımız HelloRobot_Encoder olarak belirlenmiştir!
Çok fazla detaya girmeden önce, bazı drivetrain yapıları için, örneğin Class Bot V2 gibi, motorlardan birinin ters çalıştırılması gerektiğini unutmayın, çünkü motorlar birbirinin aynadaki görüntüsü gibidir. Bizim örneğimizde,
bloğu kullanarak rightMotor'u ters çalışacak şekilde ayarlıyoruz.

RUN_TO_POSITION Encoder kullanarak RUN_TO_POSITION modunu kullanmak üç aşamalı bir süreçtir.
Hedef Pozisyonun Ayarlanması İlk adım hedef pozisyonu ayarlamaktır. Bunu yapmak için
bloğunu alıp,
altına ekleyin. Bu örnekte, hedef pozisyonumuzu Initialize düğmesine bastıktan sonra ama Play düğmesine basmadan önce belirleyeceğiz.

Robotumuzun belirli bir mesafeyi kat etmesini istiyorsak, hedef pozisyonu hesaplamak için biraz matematik yapmamız gerekecek. Ancak şimdilik, hedef pozisyonu 1000 tick olarak ayarlayarak basit başlayalım.

RUN_TO_POSITION Modunun Ayarlanması Bir sonraki adım, her iki motoru da RUN_TO_POSITION moduna ayarlamaktır.
bloğunu
bloğunun hemen altına yerleştirin.
Sıra önemlidir! setTargetPosition bloğu RUN_TO_POSITION modundan önce gelmelidir, aksi takdirde bir hata oluşur.
Motor Gücünün Ayarlanması Bahsedildiği gibi, motorların hedef pozisyona ne kadar hızlı ulaşması gerektiğini belirlemek için daha fazla matematik gerekebilir. Ancak test amaçlı olarak şimdilik basit tutuyoruz!
bloğunu,
bloğunun altına ekleyin. Hadi her iki motorun güç değerini 1 yerine 0.8 yapalım.

Hızlı Kontrol! OpMode'unuzu kaydedin ve test edin. Initialize düğmesine bastıktan sonra ne olur? Play düğmesine bastığınızda ne olur? Programı durdurup yeniden başlattığınızda ne olur?
STOP_AND_RESET_ENCODERS Kullanımı Demo kodumuzda, programın başlatılması sırasında motorların encoder'larını sıfırlamalarını talep edeceğiz.

While Döngüsünü Ayarlama Programımızın yalnızca motorların belirlenen pozisyona ulaşması için ne kadar süre gerektiğine bağlı olarak çalışmasını veya hedefe ulaştıktan sonra başka bir şey yapmasını istiyorsak, whileLoop bloğumuzu düzenlememiz gerekecek!

Bu bölümde, whileLoop bloğunu düzenleyeceğiz.
Yeni bir çıkış durumu eklememize rağmen, programımızın anında zaman aşımına uğramamasını sağlamak için her zaman opModeIsActive çağrısına sahip olmamız gerekir!
Mantık menüsünden bir
bloğu alın ve while döngüsüne ekleyin.
bloğunun sol tarafına
bloğunu, sağ tarafına ise motorların hedef pozisyona ulaşıp ulaşmadığını kontrol eden bir
blok ekleyin.

Tam While Döngüsü Mantık İfadesi While döngüsünde hem opModeIsActive çağrısını hem de motorların hedef pozisyona ulaşıp ulaşmadığını kontrol eden tam bir mantık ifadesi oluşturun.

Şu anda, while döngüsü, sağ ve sol motorların kendi hedeflerine ulaşmasını bekliyor. Motorların her ikisinin de hedefe ulaşmasını beklemek istediğiniz durumlarda, AND yerine OR bloğunu kullanabilirsiniz.
OpMode'unuzu kaydedin ve test edin!
Last updated