Langsung ke konten utama

Ketinggian Baru

Buat sistem koordinat pada Bidang Keterampilan Virtual Volume Penuh dengan posisi titik merah sebagai titik asal (0, 0) dan posisi awal Pusat Bot Pahlawan terletak pada koordinat (0, 36). Gunakan blok [Drive for], [Turn to heading], [Spin ​​to position], dan [Spin ​​for] untuk memprogram Hero Bot agar mengambil keempat Balok Ungu yang disorot dan mencetaknya menjadi Gol III. Buat algoritma yang mengarahkan robot ke posisi tertentu untuk menjatuhkan Balok dan membuat Tujuan memiliki Level Pengisian Level 3.

  • Pilih VIQRC Virtual Skills - Full Volume Playground.
  • Programkan Hero Bot untuk mengambil Balok Ungu yang disorot dan mencetaknya ke Gawang III. 
    • Buat algoritma untuk menggerakkan robot sejauh jarak tertentu dan melacak koordinat X dan Y-nya. Gunakan algoritma untuk mengarahkan robot ke Balok Ungu yang disorot.
    • Programkan robot untuk mengambil Balok.
    • Buat algoritma untuk mengarahkan robot ke posisi tertentu. Gunakan algoritma untuk mengarahkan robot ke koordinat (-70, 1270) dan putar robot ke arah -45 derajat.
    • Program robot untuk menjatuhkan Balok.
  • Programkan Hero Bot untuk mengambil Balok Ungu kedua yang disorot dan mencetaknya ke Gawang III pada posisi dan orientasi yang sama seperti saat mencetak Balok Ungu pertama. 
  • Programkan Hero Bot untuk mengambil Balok Ungu ketiga yang disorot dan mencetaknya ke Gawang III pada posisi dan orientasi yang sama seperti saat mencetak Balok Ungu pertama. 
  • Programkan Hero Bot untuk mengambil Balok Ungu keempat yang disorot dan mencetaknya ke Gawang III pada posisi dan orientasi yang sama seperti saat mencetak Balok Ungu pertama. 

Tips Bermanfaat

  • Gunakan koordinat robot (x1,y1), koordinat posisi target (x2,y2), dan fungsi atan untuk menemukan arah penggerak.
    • Hitung sudut theta θ dari garis yang menghubungkan kedua titik ini. Diagram dari dua ekspresi matematika. Ekspresi pertama berbunyi 'theta sama dengan atan((y2 - y1) / (x2 - x1))'. Ekspresi kedua berbunyi 'negatif pi / 2 kurang dari theta, yang kurang dari pi / 2'. Diagram dari atas menunjukkan robot berada di koordinat (X1, Y1) dan sebuah garis mengarah ke koordinat (X2, Y2). Jarak dilabeli dengan variabel d, sudut dilabeli dengan variabel theta. Jarak horizontal antara titik-titik tersebut direpresentasikan sebagai 'x2 - x1', dan jarak vertikal direpresentasikan sebagai 'y2 - y1'.
    • Contoh pseudocode untuk ekspresi matematika:

      Jika x1 sama dengan x2:
      	Jika y2 > y1:
      		arah = 0 derajat
      	Jika tidak:
      		arah = 180 derajat
      Jika tidak:
      	Jika x2 > x1:
      		arah = 90 derajat - theta
      	Jika tidak:
      		arah = 270 derajat - theta
    • Konversikan sudut theta θ untuk menentukan arah (Heading).  Diagram dari atas ke bawah yang diberi label 'arah robot' menunjukkan robot dengan lingkaran di sekelilingnya dan label yang menandai 360 derajat lingkaran tersebut.
  • Gunakan koordinat robot (x1,y1), koordinat posisi target (x2,y2), dan Teorema Pythagoras untuk menemukan jarak tempuh. Ekspresi matematika berbunyi 'd = sqrt((X2 - X1) ^ 2 + (Y2 - Y1) ^ 2)' Diagram dari atas ke bawah yang sama seperti sebelumnya menunjukkan perbedaan antara dua koordinat. Robot tersebut berada di koordinat (X1, Y1) dan sebuah garis mengarah ke koordinat (X2, Y2). Jarak dilabeli dengan variabel d, sudut dilabeli dengan variabel theta. Jarak horizontal antara titik-titik tersebut direpresentasikan sebagai 'x2 - x1', dan jarak vertikal direpresentasikan sebagai 'y2 - y1'.

 

  • Gunakan fungsi dari kategori Operator untuk menyatakan fungsi atan guna menghitung sudut theta θ. Blok fungsi VEXcode yang berisi blok operator, yang semuanya dibaca 'atan dari ((Y2 - Y1) / (X2 - X1))'.
    • Perintah Python yang cocok: 

      matematika.atan((Y2 - Y1) / (X2 - X1)) / matematika.pi * 180
  • Gunakan blok fungsi dari kategori Operator untuk menyatakan Teorema Pythagoras guna menghitung jarak tempuh. VEXcode Set variable block containing function and operator blocks, that all together reads 'set driveDistance to sqrt of ((X2 - X1) * (X2 - X1) + (Y2 - Y1) * (Y2 - Y1))'.
    • Perintah Python yang cocok: 

      driveDistance = math.sqrt((X2 - X1) * (X2 - X1) + (Y2 - Y1) * (Y2 - Y1))