Skip to main content

Rekabet Bağlantısı: Dönüm Noktası - Python

Maçın başlangıcında başlangıç pozisyonlarında oyun elemanları ve puanlama alanlarının bulunduğu Turning Point VEX Robotik Yarışma Alanı. Arka duvarda, önünde bir dizi çevrilebilir bayrak bulunan bir ağ bulunmaktadır.
VRC 2018-2019 Dönüm Noktası

Robot Yetenekleri

2018 - 2019 VEX Robotik Yarışması oyunu Turning Point, oyuncuların diğer oyun öğelerinin yanı sıra bayrakları da açmasını gerektiriyordu. Toplamda dokuz bayrak vardı: Robotun çevirebileceği üç alt bayrak ve sadece yarışma top oyunu parçalarıyla vurularak çevrilebilen altı üst bayrak. Yarışma takımlarının top fırlatıcısı kullanarak daha yüksek bayraklara ulaşmanın bir yolunu bulmaları gerekiyordu. Düşünsenize, robotu top oyun taşlarını kullanarak ölçüm yaparak bayraklara vuracak şekilde programlamak her zaman doğru olmayabilir. Robotun otonom periyot içerisinde tek bir yanlış dönüş yapması durumunda, hesaplamalar yanlış olacağından hiçbir bayrağın vurulma ihtimali bulunmaktadır. Benzer şekilde, Sürüş Becerileri yarışmasında, takımların topu düzgün bir şekilde fırlatmak için robotu manuel olarak hizalaması zor olabilir. Böylece yetenekli ekipler, Görüntü Sensörü'nü kullanarak robotu programlayacak ve bayrakları algılayacak, ardından robotu doğru şekilde hizalayarak isabetli atışlar yapabilecek.

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

Bu etkinliği genişletmek için öğrencilerinizden, robotun bu yarışma oyununda potansiyel olarak kullanabilecekleri sarı nesnelere doğru hareket etmesini sağlayacak bir proje tasarlamalarını ve taslağını çizmelerini isteyin!
Öğrencilerinizden aşağıdakileri yapmalarını isteyin:

  • Clawbot (Aktarma Organları, 2 Motorlu, Jiroskop Yok) şablon örnek projesini açın.

    VEXcode V5 Örnek proje seçimi, üst kısımda Şablon filtresi seçili ve Clawbot Drivetrain 2 motor jiroskopsuz proje simgesi kırmızı kutuda vurgulanmış.

  • Görüntü Sensörünü programlarken referans olarak Nesneleri Algılama (Görüntü) örnek projesini kullanın.Görüntü Sensörünü programlarken referans olarak Nesneleri Algılama (Görüntü) örnek projesini kullanın (Google Doc / .v5python).
  • Clawbot (Aktarma Organları, 2 Motorlu, Jiroskop Yok) yapılandırmasına Görüntü Sensörünü ekleyin ve ardından Görüntü Sensörünü kırmızı ve mavi nesneleri algılayacak şekilde yapılandırın. Daha fazla bilgi için Görüntü Sensörünün Yapılandırılmasıbakın.

    VEXcode V5 Aygıtları Penceresi, aygıt ekleme seçenekleri gösterilerek açılır. Pencerede Cihaz Seç yazıyor ve Vizyon seçeneği kırmızı bir kutuyla vurgulanıyor. Diğer seçenekler arasında kontrolör, aktarma organları, motor ve 3 kablo yer alıyor.

  • Clawbot'u tespit edilen nesneye doğru hareket edecek şekilde programlayın. Pençebot'un sanki bir bayrağı kaldırıyormuş gibi kolunu kaldırması bile programlanabilir!
  • VRC Turning Point oyunundaki sarı toplar gibi, Vision Sensörünün sarı nesneleri algılayıp algılayamadığını gözlemlemek için projeyi indirin ve çalıştırın. Görüntü Sensörü nesneleri algılayabiliyorsa, robot algılanan nesnelere göre hareket ediyor mu? Bir projeyi indirme ve çalıştırma konusunda yardıma ihtiyacınız varsa,bu makaleyi görüntüleyin.
  • Eğer zamanınız varsa, Turning Point sahasına benzer bir oyun alanı kurun. Robotun puan kazanmak için hareket etmesini sağlamak amacıyla Görüntü Sensörünü kullanma alıştırması yapın!

Aşağıdaki örnek çözümü inceleyin:

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

# Proje kodunu başlat

check_yellow = Event()

def check_yellow_callback():
    brain.screen.set_font(FontType.MONO40)
    brain.screen.clear_row(3)
    brain.screen.set_cursor(3, 1)
    vision_5_objects = vision_5.take_snapshot(vision_5__YELLOWBOX)

    if (vision_5_objects):
        arm_motor.spin_for(FORWARD, 300, DEGREES)
        claw_motor.spin_for(FORWARD, 100, DEGREES)
        drivetrain.drive_for(FORWARD, 12, INCHES)
        arm_motor.spin_for(REVERSE, 300, DEGREES)
        claw_motor.spin_for(REVERSE, 100, DEGREES)
    
    else:
        brain.screen.print("Sarı Nesne Yok")

# sistem olay işleyicileri
check_yellow(check_yellow_callback)

# olay işleyicilerinin kullanıma hazır olduğundan emin olmak için küçük bir gecikme
wait(15, MSEC)

# yeni sensör verilerini kontrol etmek için sürekli çalışır
while True:
    check_blue.broadcast_and_wait()
    wait(105, MSEC)