Skip to main content

Denetleyiciler ve Döngüler - Python

Denetleyiciler ve Döngüler

Yarışmalarda takımlar robotlarını kumandalarla kablosuz olarak kontrol etmek zorundalar. Kontrolör, kullanıcıdan gelen girdilere göre robotu güncelleyecek şekilde programlanır. Projede döngüler kullanılarak robotun güncellenmiş giriş bilgilerini tekrar tekrar kontrol etmesi sağlanmıştır. Döngüler, projenin hangi düğmelere basıldığını veya joystick'lere ne kadar basıldığını hızlı bir şekilde kontrol etmesini sağlar. Kontrol edildikten sonra bu bilgiler robota hızla iletilir ve böylece robot kontrolörün talimatlarına hızlı bir şekilde yanıt verir.

Aşağıda VEXcode V5'ten Tank Kontrol örnek projesi gösterilmektedir. Bu projedeki while Truesonsuz döngüsü, motorların hızını ayarlamak için Eksen 2 ve 3'ün pozisyonlarını sonsuza kadar kontrol eder.

# Kütüphane
vex'ten içe aktarır *

# Proje kodunu başlat
# Motorları denetleyici eksen konumlarına ayarlamak için Ana Denetleyici döngüsü
while True:
    left_motor.set_velocity(controller_1.axis3.position(), PERCENT)
    right_motor.set_velocity(controller_1.axis2.position(), PERCENT)
    left_motor.spin(FORWARD)
    right_motor.spin(FORWARD)
    wait(5, MSEC)

Döngüler, kontrolcü olmadan otonom programlama için bile önemlidir. Döngü, bir proje içerisinde tekrarlanan komutları basitleştirmeye ve düzenlemeye yardımcı olur.

Öğrenmenizi Genişletin simgesi Öğrenmenizi Genişletin

Bu aktiviteyi genişletmek için öğrencilerinizden arcade kontrolü ile tank kontrolü arasındaki farkları keşfetmelerini isteyin. Öğrenciler VEXcode V5'te bulunan örnek projeleri takip edebilirler.VEXcode V5'te Açık Örnekler vurgulanmış şekilde açık dosya menüsünün görüntüsü

Dört adet örnek proje bulunmaktadır: Sol Arcade, Sağ Arcade, Bölünmüş Arcade ve Tank Kontrolü.Yukarıda belirtilen projelerin vurgulandığı örnek proje menüsünün görüntüsü

Programlardaki döngülerin nasıl çalıştığını ve her kontrol tipinin avantajlarını ve dezavantajlarını tartışın.

Bu etkinliği matematiğe bağlamak için, yukarıdaki sol/sağ arcade (tek joystick) ve bölünmüş arcade/tank sürücüsü (her iki joystick) projelerini kullanarak projedeki X ve Y eksenlerinin rollerini tartışın.