Blok Khusus Robot#

Perkenalan#

Robot Hero, Flex, mencakup ClawMotor, ArmMotor, Sensor Penglihatan AI, Sensor Jarak, dan Sensor Sistem Penentuan Posisi Game (GPS).

Semua Blok VR VEXcode standar tersedia untuk digunakan di V5 26-27 Override Playground.

Berikut adalah daftar semua Blok khusus Robot yang tersedia:

Sistem Penggerak – Menggerakkan dan membelokkan robot.

Gerakan – Gerakkan dan lacak motor robot.

AI Vision – Tangkap dan analisis objek menggunakan Sensor AI Vision.

  • Tindakan

    • mendapatkan data objek – Mengambil data untuk tanda tangan tertentu, seperti Klasifikasi AI yang terdeteksi.

  • Pengaturan

  • Nilai-nilai

    • objek ada – Mengembalikan apakah klasifikasi terdeteksi.

    • objek adalah – Mengembalikan nilai true jika klasifikasi terdeteksi.

    • objek adalah AprilTag – Mengembalikan apakah objek yang terdeteksi adalah AprilTag yang cocok dengan ID tertentu.

    • jumlah objek – Mengembalikan jumlah objek yang terdeteksi.

    • properti objek – Mengembalikan detail seperti:

Penginderaan – Manfaatkan berbagai sensor robot.

  • Jarak

    • Jarak mendeteksi objek – Melaporkan apakah Sensor Jarak mendeteksi objek dalam jangkauan.

    • jarak objek – Melaporkan jarak antara Sensor Jarak dan objek terdekat yang terdeteksi.

  • GPS

    • Posisi GPS – Mengembalikan posisi X atau Y dari Sensor GPS.

    • Arah GPS – Mengembalikan arah yang sedang dihadapi robot.

Contoh-contoh di halaman ini menggunakan Lokasi Awal C dari daftar periksa Pra-Pertandingan di Lapangan Bermain.

Sistem penggerak#

Sistem penggerak mengontrol cara Robot VR bergerak dan berbelok. Sistem penggerak dapat bergerak maju atau mundur, berbelok ke kiri atau kanan, berbelok ke arah tertentu, dan mengikuti arah rotasinya.

Tindakan#

menyetir#

Blok tumpukan drive menggerakkan robot maju atau mundur tanpa henti. Robot akan terus bergerak hingga diberi tindakan lain, seperti berbelok atau berhenti.

kendarai [maju v]

Parameter

Keterangan

arah

Arah pergerakan robot: maju atau mundur.

Contoh

saat dimulai :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
putar [ArmMotor v] [naik v] sejauh (300) [derajat v] ▶
kendarai [maju v]
tunggu (0.5) detik
hentikan mengemudi
putar [ClawMotor v] [membuka v] sejauh (180) [derajat v] ▶

dorongan untuk#

Blok drive for stack menggerakkan robot maju atau mundur sejauh jarak tertentu. Proyek akan menunggu hingga robot selesai bergerak sebelum blok berikutnya dalam stack dijalankan.

kendarai [maju v] sejauh (200) [mm v] ▶

Parameter

Keterangan

arah

Arah pergerakan robot: maju atau mundur.

jarak

Jarak yang ditempuh robot. Ini bisa berupa bilangan bulat atau desimal.

satuan

Satuan jarak: mm (milimeter) atau inci

dan jangan menunggu

Pilih tanda panah ( ▶ ) untuk memperluas blok menjadi dan jangan menunggu, sehingga blok berikutnya dalam tumpukan akan segera dijalankan.

Contoh

saat dimulai :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
putar [ArmMotor v] [naik v] sejauh (300) [derajat v] ▶
kendarai [maju v] sejauh (10) [inci v] ▶
putar [ClawMotor v] [membuka v] sejauh (180) [derajat v] ▶

berbelok#

Blok tumpukan turn akan memutar robot ke kiri atau ke kanan selamanya. Robot akan terus berputar hingga diberi tindakan lain, seperti mengemudi atau berhenti.

belok [kanan v]

Parameter

Keterangan

arah

Arah putaran robot: kiri atau kanan.

Contoh

saat dimulai :: hat events
[Score a Pin in a Neutral Goal.]
belok [kiri v]
tunggu (0.78) detik
hentikan mengemudi
putar [ArmMotor v] [naik v] sejauh (800) [derajat v] ▶
kendarai [maju v] sejauh (25) [inci v] ▶
putar [ClawMotor v] [membuka v] sejauh (180) [derajat v] ▶

berbalik untuk#

Blok tumpukan turn for membelokkan robot ke kiri atau ke kanan sejumlah derajat tertentu. Belokan tersebut relatif terhadap posisi robot saat ini. Proyek akan menunggu hingga robot selesai berbelok sebelum blok berikutnya dalam tumpukan dijalankan.

belok [kanan v] sejauh (90) derajat ▶

Parameter

Keterangan

arah

Arah putaran robot: kiri atau kanan.

sudut

Jumlah derajat putaran robot. Ini bisa berupa bilangan bulat atau desimal.

dan jangan menunggu

Pilih tanda panah ( ▶ ) untuk memperluas blok menjadi dan jangan menunggu, sehingga blok berikutnya dalam tumpukan akan segera dijalankan.

Contoh

saat dimulai :: hat events
[Score a Pin in a Neutral Goal.]
belok [kiri v] sejauh (110) derajat ▶
putar [ArmMotor v] [naik v] sejauh (800) [derajat v] ▶
kendarai [maju v] sejauh (25) [inci v] ▶
putar [ClawMotor v] [membuka v] sejauh (180) [derajat v] ▶

beralih ke judul#

Arah haluan adalah arah yang dihadapi robot, diukur dalam derajat. Blok tumpukan turn to heading memutar robot untuk menghadap arah haluan tertentu dari -359 hingga 359 derajat. Robot akan berbelok melalui arah terpendek untuk mencapai arah haluan target.

Arah awal adalah 0 derajat.

Proyek ini akan menunggu hingga robot selesai berputar sebelum blok berikutnya dalam tumpukan dijalankan.

belok ke arah (90) derajat ▶

Parameter

Keterangan

menuju

Arah haluan yang harus dihadapi robot, dari -359 hingga 359 derajat.

dan jangan menunggu

Pilih tanda panah ( ▶ ) untuk memperluas blok menjadi dan jangan menunggu, sehingga blok berikutnya dalam tumpukan akan segera dijalankan.

Contoh

saat dimulai :: hat events
[Score a Pin in a Neutral Goal.]
belok ke arah (-110) derajat ▶
putar [ArmMotor v] [naik v] sejauh (800) [derajat v] ▶
kendarai [maju v] sejauh (25) [inci v] ▶
putar [ClawMotor v] [membuka v] sejauh (180) [derajat v] ▶

beralih ke rotasi#

Blok tumpukan putar ke rotasi memutar robot ke rotasi tertentu.

Rotasi adalah seberapa jauh robot telah berputar, diukur dalam derajat. Pada awal proyek, nilai rotasi diatur ke 0 derajat. Rotasi juga dapat diatur menggunakan blok set drive rotation.

Nilai rotasi bersifat absolut. Artinya, arah putaran bergantung pada rotasi robot saat ini. Berbelok ke kanan akan meningkatkan rotasi, dan berbelok ke kiri akan mengurangi rotasi.

Sebagai contoh, jika robot mulai dari 0 derajat dan Anda memutarnya hingga mencapai rotasi 720 derajat, robot akan berbelok ke kanan dua kali. Jika kemudian Anda memutarnya hingga mencapai rotasi 360 derajat, robot akan berbelok ke kiri sekali, karena 360 kurang dari 720.

Proyek ini akan menunggu hingga robot selesai berputar sebelum blok berikutnya dalam tumpukan dijalankan.

belok ke rotasi (90) derajat ▶

Parameter

Keterangan

rotasi

Nilai rotasi, dalam derajat, yang akan dilakukan robot. Nilai ini dapat berupa bilangan bulat atau desimal.

dan jangan menunggu

Pilih tanda panah ( ▶ ) untuk memperluas blok menjadi dan jangan menunggu, sehingga blok berikutnya dalam tumpukan akan segera dijalankan.

Contoh

saat dimulai :: hat events
[Score a Pin in a Neutral Goal.]
belok ke rotasi (-110) derajat ▶
putar [ArmMotor v] [naik v] sejauh (800) [derajat v] ▶
kendarai [maju v] sejauh (25) [inci v] ▶
putar [ClawMotor v] [membuka v] sejauh (180) [derajat v] ▶

berhenti mengemudi#

Blok tumpukan berhenti mengemudi menghentikan pergerakan robot.

hentikan mengemudi

Parameter

Keterangan

Blok ini tidak memiliki parameter.

Contoh

saat dimulai :: hat events
[Score a Pin in a Neutral Goal.]
putar [ArmMotor v] [naik v] sejauh (300) [derajat v] ▶
kendarai [maju v]
tunggu (0.5) detik
hentikan mengemudi
putar [ClawMotor v] [membuka v] sejauh (180) [derajat v] ▶

Pengaturan#

atur kecepatan penggerak#

Blok tumpukan set drive velocity memberi tahu robot seberapa cepat ia harus bergerak. Persentase yang lebih tinggi membuat robot bergerak lebih cepat dan persentase yang lebih rendah membuat robot bergerak lebih lambat.

Setiap proyek dimulai dengan robot yang bergerak dengan kecepatan 50% secara default.

Catatan: Kecepatan yang lebih tinggi membuat robot bergerak lebih cepat, tetapi mungkin kurang presisi. Kecepatan yang lebih rendah membuat robot bergerak lebih lambat, tetapi bisa lebih presisi.

atur kecepatan kendarai ke (50) [% v]

Parameter

Keterangan

kecepatan

Kecepatan berkendara berkisar dari 0% hingga 100%.

satuan

Satuan kecepatan: *%

Contoh

saat dimulai :: hat events
[Score a Pin in a Neutral Goal.]
belok [kiri v] sejauh (110) derajat ▶
putar [ArmMotor v] [naik v] sejauh (800) [derajat v] ▶
atur kecepatan kendarai ke (100) [% v]
kendarai [maju v] sejauh (25) [inci v] ▶
putar [ClawMotor v] [membuka v] sejauh (180) [derajat v] ▶

atur kecepatan putar#

Blok tumpukan set turn velocity memberi tahu robot seberapa cepat harus berbelok. Persentase yang lebih tinggi membuat robot berbelok lebih cepat dan persentase yang lebih rendah membuat robot berbelok lebih lambat.

Setiap proyek dimulai dengan robot yang berputar dengan kecepatan 50% secara default.

Catatan: Kecepatan yang lebih tinggi membuat robot berbelok lebih cepat, tetapi mungkin kurang presisi. Kecepatan yang lebih rendah membuat robot berbelok lebih lambat, tetapi bisa lebih presisi.

atur kecepatan belok ke (50) [% v]

Parameter

Keterangan

kecepatan

Kecepatan untuk berbelok berkisar dari 0% hingga 100%.

satuan

Satuan kecepatan: *%

Contoh

saat dimulai :: hat events
[Turn to face the Neutral Goal faster.]
atur kecepatan belok ke (100) [% v]
belok [kiri v] sejauh (110) derajat ▶

atur arah berkendara#

Heading adalah arah yang dihadapi robot, diukur dalam derajat. Blok tumpukan set drive heading mengubah heading robot saat ini ke nilai heading baru.

Sebagai contoh, jika robot telah berputar menghadap ke kanan, mengatur arah menjadi 0 derajat akan menjadikan posisi menghadap ke kanan tersebut sebagai 0 derajat yang baru. Kemudian robot dapat berputar ke posisi lain berdasarkan arah yang baru tersebut.

atur arah kendarai ke (0) derajat

Parameter

Keterangan

menuju

Nilai haluan, dalam derajat, yang akan diatur untuk robot.

Contoh

saat dimulai :: hat events
[Make facing the Neutral Goal the new heading.]
atur arah kendarai ke (110) derajat
belok ke arah (0) derajat ▶

atur rotasi penggerak#

Rotasi adalah seberapa jauh robot telah berputar, diukur dalam derajat. Pada awal proyek, nilai rotasi diatur ke 0 derajat. Blok tumpukan set drive rotation mengubah rotasi robot saat ini ke nilai baru.

Sebagai contoh, jika robot telah melakukan dua putaran penuh ke kanan, nilai rotasinya akan menjadi 720 derajat. Mengatur rotasi ke 0 derajat akan mengatur ulang rotasi tersebut dari 720 menjadi 0 derajat. Kemudian robot dapat berputar berdasarkan nilai rotasi yang baru tersebut.

atur rotasi kendarai ke (0) derajat

Parameter

Keterangan

rotasi

Nilai rotasi, dalam derajat, yang akan diatur untuk robot. Nilai ini dapat berupa bilangan bulat atau desimal.

Contoh

saat dimulai :: hat events
[Make facing the Neutral Goal the new rotation.]
atur rotasi kendarai ke (110) derajat
belok ke rotasi (0) derajat ▶

atur batas waktu drive#

Blok tumpukan set drive timeout mengatur berapa detik robot akan mencoba menyelesaikan suatu gerakan. Jika robot tidak dapat menyelesaikannya dalam waktu tersebut, robot akan berhenti mencoba dan melanjutkan ke blok berikutnya dalam tumpukan. Ini mencegah robot terjebak pada suatu gerakan.

atur batas waktu kendarai ke (1) detik

Parameter

Keterangan

waktu

Jumlah detik yang dapat dicoba robot untuk menyelesaikan suatu gerakan. Ini bisa berupa bilangan bulat atau desimal.

Contoh

saat dimulai :: hat events
[Turn to face the Neutral Goal.]
atur batas waktu kendarai ke (0.8) detik
belok [kiri v] sejauh (180) derajat ▶

Nilai-nilai#

perjalanan selesai#

Blok Boolean drive is done melaporkan apakah robot telah selesai bergerak. Ini dapat digunakan untuk mengontrol waktu perilaku lain berdasarkan pergerakan robot.

  • Benar — Robot telah selesai bergerak.

  • Salah — Robot itu masih bergerak.

Blok ini bekerja bersama dengan blok drivetrain yang memiliki parameter dan jangan menunggu.

<kendarai selesai?>

Parameter

Keterangan

Blok ini tidak memiliki parameter.

Contoh

saat dimulai :: hat events
[Score a Pin in a Neutral Goal.]
belok [kiri v] sejauh (110) derajat ▶
putar [ArmMotor v] [naik v] sejauh (800) [derajat v] ▶
kendarai [maju v] sejauh (25) [inci v] ◀ dan jangan tunggu
tunggu sampai <kendarai selesai?>
putar [ClawMotor v] [membuka v] sejauh (180) [derajat v] ▶

penggeraknya sedang bergerak#

Blok Boolean drive is moving melaporkan apakah robot sedang bergerak. Ini dapat digunakan untuk mengontrol pengaturan waktu perilaku lain berdasarkan pergerakan robot.

  • Benar — Robot itu sedang bergerak.

  • Salah — Robot tersebut tidak bergerak.

Blok ini bekerja bersama dengan blok drivetrain yang memiliki parameter dan jangan menunggu.

<kendarai bergerak?>

Parameter

Keterangan

Blok ini tidak memiliki parameter.

Contoh

saat dimulai :: hat events
[Raise the Arm once stopped near the Goal.]
belok [kiri v] sejauh (110) derajat ▶
kendarai [maju v] sejauh (25) [inci v] ◀ dan jangan tunggu
selagi <kendarai bergerak?>
tunggu (0.005) detik
selesai
putar [ArmMotor v] [naik v] sejauh (800) [derajat v] ▶

arah berkendara#

Heading adalah arah yang dihadapi robot, diukur dalam derajat. Blok pelapor drive heading melaporkan heading tersebut dari 0 hingga 359,99 derajat.

Arah awal pergerakan robot adalah 0 derajat.

(arah kendarai dalam derajat)

Parameter

Keterangan

Blok ini tidak memiliki parameter.

Contoh

saat dimulai :: hat events
[Turn to the Goal, then show heading.]
belok [kanan v] sejauh (450) derajat ▶
cetak (arah kendarai dalam derajat) di layar ◀ dan atur kursor ke baris berikutnya

rotasi penggerak#

Rotasi adalah seberapa jauh robot telah berputar, diukur dalam derajat. Pada awal proyek, nilai rotasi diatur ke 0 derajat. Blok pelapor drive rotation melaporkan rotasi robot saat ini.

Memutar ke kanan akan meningkatkan rotasi, dan memutar ke kiri akan mengurangi rotasi. Misalnya, melakukan dua putaran penuh ke kanan akan menghasilkan rotasi sebesar 720 derajat.

(rotasi kendarai dalam derajat)

Parameter

Keterangan

Blok ini tidak memiliki parameter.

Contoh

saat dimulai :: hat events
[Spin to find a Pin, then show rotation.]
belok [kanan v] sejauh (450) derajat ▶
cetak (rotasi kendarai dalam derajat) di layar ◀ dan atur kursor ke baris berikutnya

kecepatan penggerak#

Blok pelapor kecepatan penggerak melaporkan seberapa cepat robot tersebut bergerak.

(kecepatan kendarai dalam [% v])

Parameter

Keterangan

satuan

Satuan kecepatan: *%

Contoh

saat dimulai :: hat events
[Show speed while driving to the Goal.]
kendarai [maju v] sejauh (150) [mm v] ▶
cetak (kecepatan kendarai dalam [% v]) di layar ◀ dan atur kursor ke baris berikutnya

Gerakan#

Flex menggunakan ArmMotor untuk mengangkat dan menurunkan lengan, dan ClawMotor untuk membuka dan menutup cakar.

Setiap motor memiliki opsi arahnya sendiri. Nama-nama arah tersebut menjelaskan bagaimana motor tersebut bergerak pada Flex.

Tindakan#

motor putar#

Blok tumpukan spin motor memutar motor ke salah satu dari dua arah selamanya. Motor akan terus berputar sampai diberi tindakan lain, seperti berputar ke arah yang berbeda atau berhenti.

putar [ArmMotor v] [naik v]

Parameter

Keterangan

motor

Motor yang akan diputar: ArmMotor atau ClawMotor.

arah

Arah putaran motor:

  • Motor Lengan — atas atau bawah
  • Motor Cakar — buka atau tutup

Contoh

saat dimulai
[Raise the Arm before driving toward a Pin.]
putar [ArmMotor v] [naik v]
tunggu (1) detik
hentikan [ArmMotor v]

putar motor untuk#

Blok spin motor for stack memutar motor sejauh jarak tertentu. Putaran tersebut relatif terhadap posisi motor saat ini. Proyek akan menunggu hingga motor selesai berputar sebelum blok berikutnya dalam stack dijalankan.

putar [ArmMotor v] [naik v] sejauh (90) [derajat v] ▶

Parameter

Keterangan

motor

Motor yang akan diputar: ArmMotor atau ClawMotor.

arah

Arah putaran motor:

  • Motor Lengan — atas atau bawah
  • Motor Cakar — buka atau tutup

jarak

Jarak putaran motor. Derajat menggunakan bilangan bulat. Putaran dapat menggunakan bilangan bulat atau desimal.

satuan

Satuan jarak: derajat atau putaran.

dan jangan menunggu

Pilih tanda panah ( ▶ ) untuk memperluas blok menjadi dan jangan menunggu, sehingga blok berikutnya dalam tumpukan akan segera dijalankan.

Contoh

saat dimulai
[Raise the Arm to carry the Pin to the Goal.]
putar [ArmMotor v] [naik v] sejauh (800) [derajat v] ▶

Putar motor ke posisi yang diinginkan.#

Blok tumpukan putar motor ke posisi memutar motor ke posisi tertentu.

Posisi motor adalah seberapa jauh motor tersebut telah berputar, diukur dalam derajat atau putaran. Satu putaran sama dengan 360 derajat. Pada awal proyek, posisi ArmMotor diatur ke 0 derajat. ClawMotor adalah pengecualian — ia dimulai pada 467 derajat (tertutup sepenuhnya). Posisi motor juga dapat diatur menggunakan blok atur posisi motor.

Nilai posisi bersifat absolut. Ini berarti arah putaran bergantung pada posisi motor saat ini.

Sebagai contoh, jika motor mulai berputar pada sudut 0 derajat dan berputar hingga posisi 720 derajat, maka motor akan berputar maju dua putaran. Jika kemudian berputar hingga posisi 360 derajat, maka motor akan berputar mundur satu putaran, karena 360 kurang dari 720.

putar [ArmMotor v] ke posisi (90) [derajat v] ▶

Parameter

Keterangan

motor

Motor yang akan diputar: ArmMotor atau ClawMotor.

posisi

Nilai posisi putaran motor. Derajat menggunakan bilangan bulat. Putaran dapat menggunakan bilangan bulat atau desimal.

satuan

Satuan posisi: derajat atau putaran.

dan jangan menunggu

Pilih tanda panah ( ▶ ) untuk memperluas blok menjadi dan jangan menunggu, sehingga blok berikutnya dalam tumpukan akan segera dijalankan.

Contoh

saat dimulai
[Raise the Arm, then release the Pin.]
putar [ArmMotor v] ke posisi (800) [derajat v] ▶
putar [ClawMotor v] [membuka v] sejauh (180) [derajat v] ▶

motor berhenti#

Blok tumpukan stop motor menghentikan motor yang dipilih.

hentikan [ArmMotor v]

Parameter

Keterangan

motor

Motor yang akan dihentikan: ArmMotor atau ClawMotor.

Contoh

saat dimulai
[Raise the Arm partway to hold the Pin.]
putar [ArmMotor v] [naik v]
tunggu (1) detik
hentikan [ArmMotor v]

Pengaturan#

mengatur kecepatan motorik#

Blok tumpukan set motor velocity memberi tahu motor seberapa cepat harus berputar. Persentase yang lebih tinggi membuat motor berputar lebih cepat dan persentase yang lebih rendah membuat motor berputar lebih lambat.

Setiap proyek dimulai dengan setiap motor berputar pada kecepatan 50% secara default.

Catatan: Kecepatan yang lebih tinggi membuat motor berputar lebih cepat, tetapi mungkin kurang presisi. Kecepatan yang lebih rendah membuat motor berputar lebih lambat, tetapi bisa lebih presisi.

atur kecepatan [ArmMotor v] ke [50] [% v]

Parameter

Keterangan

motor

Motor yang akan diatur kecepatannya: ArmMotor atau ClawMotor.

kecepatan

Kecepatan putaran motor. Persen menggunakan bilangan bulat dari 0% hingga 100%.

satuan

Satuan kecepatan: *%.

Contoh

saat dimulai
[Raise the Arm fast to release the Pin.]
atur kecepatan [ArmMotor v] ke [100] [% v]
putar [ArmMotor v] [naik v] sejauh (800) [derajat v] ▶
putar [ClawMotor v] [membuka v] sejauh (180) [derajat v] ▶

atur waktu habis motor#

Blok tumpukan set motor timeout mengatur berapa lama motor akan mencoba menyelesaikan suatu gerakan. Jika motor tidak dapat menyelesaikannya dalam waktu tersebut, motor akan berhenti mencoba dan beralih ke blok berikutnya dalam tumpukan. Ini mencegah motor macet pada suatu gerakan.

atur batas waktu [ArmMotor v] ke [1] detik

Parameter

Keterangan

motor

Motor yang akan diatur waktu habisnya: ArmMotor atau ClawMotor.

waktu

Jumlah detik yang dapat dicoba oleh motor untuk menyelesaikan suatu gerakan. Ini bisa berupa bilangan bulat atau desimal.

Contoh

saat dimulai
[Score a Pin in a Neutral Goal.]
belok [kiri v] sejauh (110) derajat ▶
atur batas waktu [ArmMotor v] ke [1] detik
putar [ArmMotor v] [naik v] sejauh (1800) [derajat v] ▶
kendarai [maju v] sejauh (25) [inci v] ▶
putar [ClawMotor v] [membuka v] sejauh (180) [derajat v] ▶

Posisi#

posisi motor#

Posisi motor adalah seberapa jauh motor tersebut telah berputar, diukur dalam derajat atau putaran. Satu putaran sama dengan 360 derajat. Blok pelapor posisi motor melaporkan posisi motor saat ini.

Pada awal proyek, posisi ArmMotor diatur ke 0 derajat. ClawMotor merupakan pengecualian — ia dimulai pada 467 derajat (tertutup sepenuhnya). Jika motor berputar satu putaran penuh ke depan, posisinya akan bertambah. Jika motor berputar ke arah sebaliknya, posisinya akan berkurang.

(posisi [ArmMotor v] dalam [derajat v])

Parameter

Keterangan

motor

Motor yang akan melaporkan posisi: ArmMotor atau ClawMotor.

satuan

Satuan untuk melaporkan posisi motor adalah: derajat atau putaran.

Contoh

saat dimulai
[Raise the Arm, then release the Pin.]
selagi <(posisi [ArmMotor v] dalam [derajat v]) < (800)>
putar [ArmMotor v] [naik v]
tunggu (0.002) detik
selesai
hentikan [ArmMotor v]
putar [ClawMotor v] [membuka v] sejauh (180) [derajat v] ▶

atur posisi motor#

Posisi motor adalah seberapa jauh motor telah berputar, diukur dalam derajat atau putaran. Satu putaran sama dengan 360 derajat. Blok tumpukan atur posisi motor mengubah posisi motor saat ini ke nilai baru.

Sebagai contoh, jika sebuah motor telah berputar hingga 180 derajat, mengatur posisi ke 0 derajat akan mengatur ulang posisi tersebut dari 180 menjadi 0 derajat. Kemudian motor dapat berputar ke posisi berdasarkan nilai baru tersebut.

atur posisi [ArmMotor v] ke (0) [derajat v]

Parameter

Keterangan

motor

Motor untuk mengatur posisi: ArmMotor atau ClawMotor.

posisi

Nilai posisi yang akan diatur untuk motor. Derajat menggunakan bilangan bulat. Putaran dapat menggunakan bilangan bulat atau desimal.

satuan

Satuan posisi: derajat atau putaran.

Contoh

saat dimulai
[Reset encoder, raise Arm, place Pin.]
atur posisi [ArmMotor v] ke (0) [derajat v]
putar [ArmMotor v] ke posisi (800) [derajat v] ▶
putar [ClawMotor v] [membuka v] sejauh (180) [derajat v] ▶

Nilai-nilai#

mesin sudah selesai#

Blok Boolean motor is done melaporkan apakah motor telah selesai bergerak. Ini dapat digunakan untuk mengontrol pengaturan waktu perilaku lain berdasarkan pergerakan motor.

  • Benar — Motor sudah berhenti bergerak.

  • Salah — Motor masih berputar.

Blok ini bekerja bersama dengan blok Gerak berikut yang memiliki parameter dan jangan menunggu: putar motor selama dan putar motor ke posisi.

<[ArmMotor v] selesai?>

Parameter

Keterangan

motor

Motor yang melaporkan apakah pergerakannya telah selesai: ArmMotor atau ClawMotor.

Contoh

saat dimulai
[Raise the Arm while driving to the Goal.]
putar [ArmMotor v] ke posisi (800) [derajat v] ◀ dan jangan tunggu
tunggu (0.1) detik
selagi <bukan <[ArmMotor v] selesai?>>
kendarai [maju v]
tunggu (0.005) detik
selesai
hentikan mengemudi

motor berputar#

Blok Boolean motor sedang berputar melaporkan apakah motor sedang berputar. Ini dapat digunakan untuk mengontrol pengaturan waktu perilaku lain berdasarkan pergerakan motor.

  • Benar — Motornya berputar.

  • Salah — Motor tidak berputar.

Blok ini bekerja bersama dengan blok Gerak berikut yang memiliki parameter dan jangan menunggu: putar motor selama dan putar motor ke posisi.

<[ArmMotor v] sedang berputar?>

Parameter

Keterangan

motor

Motor yang akan melaporkan apakah sedang berputar: ArmMotor atau ClawMotor.

Contoh

saat dimulai
[Raise the Arm while driving to the Goal, then release the Pin.]
putar [ArmMotor v] ke posisi (800) [derajat v] ◀ dan jangan tunggu
tunggu (0.1) detik
selagi <[ArmMotor v] sedang berputar?>
kendarai [maju v] sejauh (20) [mm v] ▶
selesai
putar [ClawMotor v] [membuka v] sejauh (180) [derajat v] ▶

kecepatan motorik#

Blok pelapor kecepatan motor melaporkan seberapa cepat motor berputar, sebagai persentase dari -100% hingga 100%.

(kecepatan [ArmMotor v] dalam [% v] :: custom-motion)

Parameter

Keterangan

motor

Motor yang akan dilaporkan kecepatannya adalah: ArmMotor atau ClawMotor.

satuan

Satuan yang digunakan untuk melaporkan kecepatan motorik adalah: *%.

Contoh

saat dimulai
[Show Arm Motor velocity while raising.]
atur kecepatan [ArmMotor v] ke [100] [% v]
putar [ArmMotor v] ke posisi (800) [derajat v] ◀ dan jangan tunggu
tunggu (0.2) detik
cetak (kecepatan [ArmMotor v] dalam [% v] :: custom-motion) di layar ◀ dan atur kursor ke baris berikutnya

Visi AI#

Tindakan#

mendapatkan data objek#

Blok get object data menyaring data dari frame AI Vision Sensor ke satu tanda tangan tunggal — deskripsi tersimpan dari sesuatu yang dapat dikenali oleh sensor, seperti elemen permainan di lapangan.

Dataset ini menyimpan objek yang diurutkan dari yang terbesar hingga terkecil berdasarkan lebar, dimulai dari indeks 0. Properti setiap objek dapat diakses menggunakan blok Properti objek AI Vision. Dataset kosong akan dikembalikan jika tidak ada objek yang cocok yang terdeteksi.

Blok tumpukan Dapatkan data objek.#
dapatkan data [Klasifikasi AI v] dari [AIVision v]

Parameter

Keterangan

tanda tangan

Memfilter dataset agar hanya menyertakan data dari tanda tangan yang diberikan. Tanda tangan yang tersedia adalah:

  • Klasifikasi AI - Mendeteksi elemen permainan RedBluePin, BlueYellowPin, RedYellowPin, YellowPin, dan Cup.
  • AprilTags - Mendeteksi ID AprilTag yang ditemukan di lapangan.

Contoh

saat dimulai
[Raise the Arm, drive to the Goal, release the Pin.]
putar [ArmMotor v] [naik v] sejauh (300) [derajat v] ▶
kendarai [maju v] sejauh (10) [inci v] ▶
putar [ClawMotor v] [membuka v] sejauh (180) [derajat v] ▶
belok [kiri v] sejauh (70) derajat ▶
[Turn to face the Pin.]
atur kecepatan belok ke (30) [% v]
selamanya
dapatkan data [Klasifikasi AI v] dari [AIVision v]
jika <objek [AIVision v] ada?> maka
if <(objek [AIVision v] [centerX v]) < (140)> then
belok [kiri v]
else if <([AIVision v] object [centerX v]) > (180)> then
belok [kanan v]
lainnya
hentikan mengemudi
hentikan
selesai
selesai
selesai

Pengaturan#

atur item objek#

Blok set object item menentukan item mana dalam dataset yang akan digunakan.

Blok tumpukan item objek Set AI Vision.#
atur item objek [AIVision v] ke [1]

Parameter

Keterangan

barang

Nomor item dalam dataset yang akan digunakan.

Contoh

saat dimulai
[Raise the Arm, drive to the Goal, release the Pin.]
putar [ArmMotor v] [naik v] sejauh (300) [derajat v] ▶
kendarai [maju v] sejauh (10) [inci v] ▶
putar [ClawMotor v] [membuka v] sejauh (180) [derajat v] ▶
belok [kiri v] sejauh (70) derajat ▶
dapatkan data [Klasifikasi AI v] dari [AIVision v]
[Check if any AI Classifications were detected in the last snapshot.]
jika <objek [AIVision v] ada?> maka
[If any AI Classification is detected, check if any of them are a specific game element.]
jika <objek [AIVision v] adalah [RedBluePin v]?> maka
cetak [RedBluePin detected.] ▶
lainnya
cetak [No RedBluePin detected.] ▶
selesai
selesai

Nilai-nilai#

objek ada#

Blok objek ada mengembalikan nilai Boolean yang menunjukkan apakah ada objek yang terdeteksi dalam dataset.

  • Benar – Dataset tersebut mencakup objek yang terdeteksi.

  • Salah – Dataset ini tidak mencakup objek yang terdeteksi.

Objek AI Vision berupa blok Boolean.#
<objek [AIVision v] ada?>

Parameter

Keterangan

Blok ini tidak memiliki parameter.

Contoh

saat dimulai
[Raise the Arm, drive to the Goal, release the Pin.]
putar [ArmMotor v] [naik v] sejauh (300) [derajat v] ▶
kendarai [maju v] sejauh (10) [inci v] ▶
putar [ClawMotor v] [membuka v] sejauh (180) [derajat v] ▶
belok [kiri v] sejauh (70) derajat ▶
dapatkan data [Klasifikasi AI v] dari [AIVision v]
[Check if any AI Classifications were detected in the last snapshot.]
jika <objek [AIVision v] ada?> maka
cetak (jumlah objek [AIVision v]) ◀ dan atur kursor ke baris berikutnya
selesai

objek adalah#

Blok object is mengembalikan nilai Boolean yang menunjukkan apakah objek yang terdeteksi sesuai dengan klasifikasi tertentu.

  • Benar – Item dalam dataset adalah objek spesifik tersebut.

  • Salah – Item dalam dataset bukanlah objek spesifik tersebut.

Objek AI Vision adalah blok Boolean.#
<objek [AIVision v] adalah [RedBluePin v]?>

Parameter

Keterangan

obyek

Benda mana yang harus dibandingkan dengan item ini:

  • Pin MerahBiru
  • Pin BiruKuning
  • Pin MerahKuning
  • Pin Kuning
  • Cangkir

Contoh

saat dimulai
[Raise the Arm, drive to the Goal, release the Pin.]
putar [ArmMotor v] [naik v] sejauh (300) [derajat v] ▶
kendarai [maju v] sejauh (10) [inci v] ▶
putar [ClawMotor v] [membuka v] sejauh (180) [derajat v] ▶
belok [kiri v] sejauh (70) derajat ▶
dapatkan data [Klasifikasi AI v] dari [AIVision v]
jika <objek [AIVision v] ada?> maka
jika <objek [AIVision v] adalah [RedBluePin v]?> maka
cetak [RedBluePin detected.] ▶
lainnya
cetak [No RedBluePin detected.] ▶
selesai
selesai

Objeknya adalah AprilTag#

Blok object is AprilTag mengembalikan nilai Boolean yang menunjukkan apakah objek yang terdeteksi adalah AprilTag yang cocok dengan ID tertentu.

  • Benar – Objek yang terdeteksi adalah AprilTag dengan ID yang diberikan.

  • Salah – Objek yang terdeteksi bukanlah AprilTag dengan ID yang diberikan.

Objeknya adalah blok Boolean AprilTag.#
<objek [AIVision v] adalah AprilTag [0]?>

Parameter

Keterangan

AprilTag ID

Nomor ID yang akan dibandingkan dengan AprilTag yang terdeteksi.

Contoh

saat dimulai
[Report if AprilTag 3 is detected.]
dapatkan data [AprilTags v] dari [AIVision v]
jika <objek [AIVision v] ada?> maka
jika <objek [AIVision v] adalah AprilTag [3]?> maka
cetak [That is 3!] ▶
lainnya
cetak [That isn't 3!] ▶
selesai
selesai

jumlah objek#

Blok object count mengembalikan jumlah objek yang terdeteksi dalam dataset sebagai bilangan bulat.

Blok tumpukan item objek Set AI Vision.#
(jumlah objek [AIVision])

Parameter

Keterangan

Blok ini tidak memiliki parameter.

Contoh

saat dimulai
[Raise the Arm, drive to the Goal, release the Pin.]
putar [ArmMotor v] [naik v] sejauh (300) [derajat v] ▶
kendarai [maju v] sejauh (10) [inci v] ▶
putar [ClawMotor v] [membuka v] sejauh (180) [derajat v] ▶
belok [kiri v] sejauh (70) derajat ▶
dapatkan data [Klasifikasi AI v] dari [AIVision v]
jika <objek [AIVision v] ada?> maka
cetak (jumlah objek [AIVision v]) ◀ dan atur kursor ke baris berikutnya
selesai

properti objek#

Terdapat enam properti yang disertakan dengan setiap objek (ditunjukkan di bawah) yang disimpan setelah blok get object data digunakan.

Blok pelapor properti objek AI Vision.#
(objek [AIVision v] [lebar v])

Semua nilai properti menjelaskan posisi dan ukuran objek yang terdeteksi dalam tampilan Sensor Visi AI pada saat blok mendapatkan data objek digunakan. Nilai-nilai ini diukur dalam piksel, berdasarkan resolusi sensor 320 x 240 piksel.

Parameter

Keterangan

milik

Properti objek yang terdeteksi mana yang akan digunakan:

lebar#

Properti width melaporkan lebar objek yang terdeteksi dalam piksel sebagai bilangan bulat dari 1 hingga 320.

Blok tumpukan properti objek AI Vision dengan parameter yang diatur ke lebar.#
(objek [AIVision v] [lebar v])

Contoh

saat dimulai
[Raise the Arm, drive to the Goal, release the Pin.]
putar [ArmMotor v] [naik v] sejauh (300) [derajat v] ▶
kendarai [maju v] sejauh (10) [inci v] ▶
putar [ClawMotor v] [membuka v] sejauh (180) [derajat v] ▶
belok [kiri v] sejauh (70) derajat ▶
[Approach the next Cup and Pin.]
atur kecepatan kendarai ke (30) [% v]
selamanya
dapatkan data [Klasifikasi AI v] dari [AIVision v]
jika <objek [AIVision v] ada?> maka
if <([AIVision v] object [width v]) > (140)> then
hentikan mengemudi
hentikan
lainnya
kendarai [maju v]
selesai
selesai
selesai
tinggi#

Properti height melaporkan tinggi objek yang terdeteksi dalam piksel sebagai bilangan bulat dari 1 hingga 240.

Blok tumpukan properti objek AI Vision dengan parameter yang diatur ke tinggi.#
(objek [AIVision v] [tinggi v])

Contoh

saat dimulai
[Raise the Arm, drive to the Goal, release the Pin.]
putar [ArmMotor v] [naik v] sejauh (300) [derajat v] ▶
kendarai [maju v] sejauh (10) [inci v] ▶
putar [ClawMotor v] [membuka v] sejauh (180) [derajat v] ▶
belok [kiri v] sejauh (70) derajat ▶
[Approach the next Cup and Pin.]
atur kecepatan kendarai ke (30) [% v]
selamanya
dapatkan data [Klasifikasi AI v] dari [AIVision v]
jika <objek [AIVision v] ada?> maka
if <([AIVision v] object [height v]) > (200)> then
hentikan mengemudi
hentikan
lainnya
kendarai [maju v]
selesai
selesai
selesai
pusatX#

Properti centerX melaporkan koordinat x dari pusat objek yang terdeteksi dalam piksel sebagai bilangan bulat dari 0 hingga 320.

Blok tumpukan properti objek AI Vision dengan parameter yang diatur ke centerX.#
(objek [AIVision v] [centerX v])

Contoh

saat dimulai
[Raise the Arm, drive to the Goal, release the Pin.]
putar [ArmMotor v] [naik v] sejauh (300) [derajat v] ▶
kendarai [maju v] sejauh (10) [inci v] ▶
putar [ClawMotor v] [membuka v] sejauh (180) [derajat v] ▶
belok [kiri v] sejauh (70) derajat ▶
[Turn and approach the next Cup and Pin.]
atur kecepatan belok ke (30) [% v]
selamanya
dapatkan data [Klasifikasi AI v] dari [AIVision v]
jika <objek [AIVision v] ada?> maka
if <(objek [AIVision v] [centerX v]) < (140)> then
belok [kiri v] sejauh (5) derajat ▶
lainnya
kendarai [maju v] sejauh (25) [inci v] ▶
hentikan
selesai
selesai
selesai
pusatY#

Properti centerY melaporkan koordinat y dari pusat objek yang terdeteksi dalam piksel sebagai bilangan bulat dari 0 hingga 240.

Blok tumpukan properti objek AI Vision dengan parameter yang diatur ke centerY.#
(objek [AIVision v] [centerY v])

Contoh

saat dimulai
[Raise the Arm, drive to the Goal, release the Pin.]
putar [ArmMotor v] [naik v] sejauh (300) [derajat v] ▶
kendarai [maju v] sejauh (10) [inci v] ▶
putar [ClawMotor v] [membuka v] sejauh (180) [derajat v] ▶
belok [kiri v] sejauh (70) derajat ▶
[Approach the next Cup and Pin.]
atur kecepatan kendarai ke (30) [% v]
selamanya
dapatkan data [Klasifikasi AI v] dari [AIVision v]
jika <objek [AIVision v] ada?> maka
if <([AIVision v] object [centerY v]) > (230)> then
hentikan mengemudi
hentikan
lainnya
kendarai [maju v]
selesai
selesai
selesai
asalX#

Properti originX melaporkan koordinat x dari sudut kiri atas kotak pembatas objek yang terdeteksi dalam piksel sebagai bilangan bulat dari 0 hingga 320.

Blok tumpukan properti objek AI Vision dengan parameter yang diatur ke originX.#
(objek [AIVision v] [originX v])

Contoh

saat dimulai
[Raise the Arm, drive to the Goal, release the Pin.]
putar [ArmMotor v] [naik v] sejauh (300) [derajat v] ▶
kendarai [maju v] sejauh (10) [inci v] ▶
putar [ClawMotor v] [membuka v] sejauh (180) [derajat v] ▶
belok [kiri v] sejauh (70) derajat ▶
[Turn and approach the next Cup and Pin.]
atur kecepatan belok ke (30) [% v]
selamanya
dapatkan data [Klasifikasi AI v] dari [AIVision v]
jika <objek [AIVision v] ada?> maka
if <(objek [AIVision v] [originX v]) < (100)> then
belok [kiri v] sejauh (5) derajat ▶
lainnya
kendarai [maju v] sejauh (25) [inci v] ▶
hentikan
selesai
selesai
selesai
asal#

Properti originY melaporkan koordinat y dari sudut kiri atas kotak pembatas objek yang terdeteksi dalam piksel sebagai bilangan bulat dari 0 hingga 240.

Blok tumpukan properti objek AI Vision dengan parameter yang diatur ke originY.#
(objek [AIVision v] [originY v])

Contoh

saat dimulai
[Raise the Arm, drive to the Goal, release the Pin.]
putar [ArmMotor v] [naik v] sejauh (300) [derajat v] ▶
kendarai [maju v] sejauh (10) [inci v] ▶
putar [ClawMotor v] [membuka v] sejauh (180) [derajat v] ▶
belok [kiri v] sejauh (70) derajat ▶
[Approach the next Cup and Pin.]
atur kecepatan kendarai ke (30) [% v]
selamanya
dapatkan data [Klasifikasi AI v] dari [AIVision v]
jika <objek [AIVision v] ada?> maka
if <([AIVision v] object [originY v]) > (140)> then
hentikan mengemudi
hentikan
lainnya
kendarai [maju v]
selesai
selesai
selesai

Penginderaan#

Jarak#

Jarak yang ditempuh suatu objek#

Blok Boolean Jarak menemukan objek melaporkan apakah Sensor Jarak saat ini mendeteksi objek dalam jarak 2000mm.

  • Benar — Sensor Jarak mendeteksi sebuah objek.

  • Salah — Sensor Jarak tidak mendeteksi objek.

<[FrontDistance v] menemukan objek?>

Parameter

Keterangan

sensor jarak

Sensor Jarak yang akan digunakan. Pilih dari Sensor Jarak yang tersedia untuk Flex.

Contoh

saat dimulai :: hat events
[Turn until something is detected, then release the Pin.]
belok [kanan v]
tunggu sampai <[FrontDistance v] menemukan objek?>
hentikan mengemudi
putar [ArmMotor v] [naik v] sejauh (300) [derajat v] ▶
kendarai [maju v] sejauh (10) [inci v] ▶
putar [ClawMotor v] [membuka v] sejauh (180) [derajat v] ▶

jarak objek#

Blok pelapor jarak objek melaporkan jarak antara Sensor Jarak dan objek terdekat yang terdeteksi.

(jarak [FrontDistance v] dalam [mm v])

Parameter

Keterangan

sensor jarak

Sensor Jarak yang akan digunakan. Pilih dari Sensor Jarak yang tersedia untuk Flex.

satuan

Satuan jarak: mm atau inci.

Contoh

saat dimulai :: hat events
[Drive until 200 mm from the Goal, then release the Pin.]
kendarai [maju v]
tunggu sampai <(jarak [FrontDistance v] dalam [mm v]) < (200)>
hentikan mengemudi
putar [ArmMotor v] [naik v] sejauh (300) [derajat v] ▶
kendarai [maju v] sejauh (10) [inci v] ▶
putar [ClawMotor v] [membuka v] sejauh (180) [derajat v] ▶

GPS#

Posisi GPS#

Blok Posisi GPS mengembalikan offset posisi titik referensi putar robot dari tengah lapangan dengan Sensor GPS (Game Positioning System™).

(posisi [GPS v] [X v] dalam [mm v])

Parameter

Keterangan

sumbu

Sumbu mana yang akan dilaporkan:

  • X
  • Y

satuan

Satuan untuk menyatakan posisi: mm atau inci

Contoh

saat dimulai :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
putar [ArmMotor v] [naik v] sejauh (300) [derajat v] ▶
kendarai [maju v]
wait until <([GPS v] position [X v] in [mm v]) > (-1370)>
hentikan mengemudi
putar [ClawMotor v] [membuka v] sejauh (180) [derajat v] ▶

Arah GPS#

Blok Arah GPS mengembalikan arah yang saat ini dihadapi robot berdasarkan pembacaan Sensor GPS (Game Positioning System™) dari Kode Lapangan GPS VEX dari 0,00 hingga 359,99 derajat.

(arah [GPS v] dalam derajat)

Parameter

Keterangan

Blok ini tidak memiliki parameter.

Contoh

saat dimulai :: hat events
[Raise the Arm, drive to the Goal, release the Pin.]
putar [ArmMotor v] [naik v] sejauh (300) [derajat v] ▶
kendarai [maju v] sejauh (10) [inci v] ▶
putar [ClawMotor v] [membuka v] sejauh (180) [derajat v] ▶
[Turn left to face the Neutral Goal.]
atur kecepatan belok ke (30) [% v]
belok [kiri v]
tunggu sampai <(arah [GPS v] dalam derajat) < (18)>
hentikan mengemudi