Ana içeriğe atla

Hedefi Belirle

Belirli bir konumda bulunan Kahraman Robotun, Triball'ı başarıyla kaleye sokmasını sağlamak için ideal fırlatma bir algoritma oluşturun. [Sürüş Yönü] ve [Başlığa Dön] bloklarını, GPS Sensörünü, Kol Motorunu ve Giriş Motorunu kullanarak Kahraman Robotu, vurgulanan üç Triball'ın her birini alacak, (600, 600) konumuna gidecek, ideal yöne dönecek ve Triball'ı Kırmızı İttifak Hedefine fırlatacak şekilde kodlayın. En hızlı olan kazanır!

  • VRC Sanal Beceriler - Üstten Alttan Oyun Alanı'nı seçin.
  • Maç Öncesi Kontrol Listesini kullanarak robot için bir Başlangıç ​​Konumu, bir Başlangıç ​​Yönü ve Robot Ön Yükleme "No" seçin.
  • Robotu belirli bir konuma yönlendirmek için bir algoritma oluşturun.
  • Belirli bir konumda bulunan Triball'ı almak için robotu doğru pozisyona yönlendirecek bir algoritma oluşturun.
  • Triball topunu kaleye sokmak için ideal fırlatma yönünü bulan bir algoritma oluşturun.
  • Robotun kolunun tamamen aşağı inmesini ve sahadaki bir Triball topunu almasını sağlamak için robotu, kol motorunu döndürecek şekilde kodlayın.
  • Kahraman robotu, (0,1500) konumunda bulunan işaretli Triball'ı alıp Kırmızı İttifak'ın kalesine gol atacak şekilde kodlayın. 
    • Algoritmayı kullanarak robotu, (0, 1500) konumunda bulunan işaretlenmiş Triball'ı alabileceği bir konuma yönlendirin.
    • Robotu, Triball'ı almak için Giriş Motorunu döndürecek şekilde kodlayın.
    • Robotu (600, 600) koordinatlarına yönlendirmek için algoritmayı kullanın.
    • Kahraman robotun Triball'ı kaleye sokması için ideal fırlatma yönünü bulmak üzere algoritmayı kullanın. Robotu fırlatma yönüne doğru çevirin.
    • Robotu, Triball'ı Kırmızı İttifak'ın hedefine fırlatmak için Giriş Motorunu döndürecek şekilde kodlayın.
  • Kahraman robotu, (1600, 1600) konumunda bulunan işaretli Triball'ı alıp Kırmızı İttifak kalesine gol atacak şekilde kodlayın.
  • Kahraman robotu, (-125, 1075) konumunda bulunan işaretli Triball'ı alıp Kırmızı İttifak kalesine gol atacak şekilde kodlayın. 
  • Zamanlayıcı değerini Yazdırma Konsoluna yazdırmak için [print] bloğunu kullanın.

Faydalı İpuçları

  • Triball füzesinin ideal fırlatma yönünü bulmak için beklenen bir yörünge planı oluşturun.
    • Triball'ın direklere, kale çerçevesindeki noktalara veya kale içindeki Triball'lara çarpmasını önlemek için bir yörünge planlayın.
    • Hedefteki planlanan güzergah üzerinde bir konum seçin ve hedef noktasının X ve Y koordinatlarını belirleyin.
    • Robotun koordinatlarını (x1,y1), hedef noktasının koordinatlarını (x2,y2) ve atan fonksiyonunu kullanarak fırlatma yönünü bulun.
      • Bu iki noktayı birleştiren doğrunun açısını (teta θ) hesaplayın. 

        İki matematiksel ifadenin diyagramı. İlk ifade 'theta'nın atan((y2 - y1) / (x2 - x1))' eşit olduğunu belirtir. İkinci ifade, '- pi / 2'nin teta'dan küçük olduğunu, teta'nın da pi / 2' küçük olduğunu belirtir.

        Yukarıdan aşağıya doğru gösterilen matematiksel diyagramda robot (X1, Y1) koordinatında yer alıyor ve bir çizgi (X2, Y2) koordinatına doğru yöneliyor. Mesafe d değişkeniyle, açı ise teta değişkeniyle gösterilmiştir. Noktalar arasındaki yatay mesafe '- x1', dikey mesafe ise '- y1' olarak gösterilmiştir.

    • Teta açısı θ'yı robotun yönüne dönüştürün.

      Matematiksel ifade için sözde kod örneği (Başlangıç ​​yönü: Kuzey):

      Eğer X1, X2'ye eşitse:
      	Eğer Y2 > Y1'e eşitse:
      		yön = 0
      	aksi halde:
      		yön = 180
      aksi halde:
      	Eğer X2 > X1'e eşitse:
      		yön = 90 - atan((Y2 - Y1) / (X2 - X1))
      	aksi halde:
      		yön = 270 - atan((Y2 - Y1) / (X2 - X1))

      Yukarıdan aşağıya doğru gösterilen diyagramda, robotun'ile 360 ​​derece arasında işaretlenmiş etiketlerle belirtilen bir daire içinde yer aldığı görülmektedir.

    • Operatörler kategorisindeki fonksiyon bloğunu kullanın ve teta θ açısını hesaplamak için atan fonksiyonunu seçin.

      Boş VEXcode Fonksiyon bloğu, 'atan of blank' değerini okur.

      • Eşleşen Python komutu:

        matematik.atan() / matematik.pi * 180

VRC Üstü Alt Oyun Alanı'ndaki GPS Sensörünün kullanımı hakkında daha fazla bilgi için lütfen .