Python Khusus Robot#
Perkenalan#
Robot Hero, Flex, dilengkapi dengan Motor Cakar, Motor Lengan, Sensor Penglihatan AI, Sensor Jarak, dan Sensor Sistem Penentuan Posisi Game (GPS).
Semua metode VEXcode VR standar tersedia untuk digunakan di V5 26-27 Override Playground.
Berikut adalah daftar semua metode khusus robot yang tersedia:
Sistem Penggerak – Menggerakkan dan membelokkan robot.
Tindakan
drive— Menggerakkan robot maju atau mundur selamanya.drive_for— Menggerakkan robot maju atau mundur sejauh jarak tertentu.turn— Memutar robot ke kiri atau ke kanan selamanya.turn_for— Memutar robot ke kiri atau ke kanan dengan jumlah derajat tertentu.turn_to_heading— Memutar robot untuk menghadap arah tertentu dari -359 hingga 359 derajat.turn_to_rotation— Memutar robot ke rotasi tertentu.stop— Menghentikan pergerakan robot.
Mutator
set_heading— Mengubah arah robot saat ini ke arah yang baru.set_rotation— Mengubah rotasi robot saat ini ke rotasi baru.set_timeout— Menentukan berapa lama robot akan mencoba menyelesaikan suatu gerakan.set_drive_velocity— Memberi tahu robot seberapa cepat harus bergerak.set_turn_velocity— Memberi tahu robot seberapa cepat harus berbelok.
Penangkap
heading— Mengembalikan arah haluan robot saat ini dari 0 hingga 359,99 derajat.rotation— Mengembalikan rotasi robot saat ini.is_done— Mengembalikan nilai Boolean apakah robot sudah selesai bergerak.is_moving— Mengembalikan nilai Boolean apakah robot sedang bergerak atau tidak.velocity— Mengembalikan seberapa cepat robot bergerak.
Gerakan – Gerakkan dan lacak motor robot.
Tindakan
spin— Memutar motor maju atau mundur selamanya.spin_for— Memutar motor sejauh jarak tertentu.spin_to_position— Memutar motor ke posisi tertentu.stop— Menghentikan putaran motor.
Mutator
set_position— Mengubah posisi motor saat ini ke nilai baru.set_velocity— Memberi tahu motor seberapa cepat harus berputar.set_timeout— Menentukan berapa lama waktu yang dibutuhkan motor untuk mencoba menyelesaikan suatu gerakan.
Penangkap
is_done— Mengembalikan nilai Boolean apakah motor sudah selesai bergerak.is_spinning— Mengembalikan apakah motor berputar, sebagai nilai Boolean.position— Mengembalikan posisi motor saat ini.velocity— Mengembalikan seberapa cepat motor berputar.
AI Vision – Tangkap dan analisis objek menggunakan Sensor AI Vision.
Penangkap
take_snapshot– Mengembalikan tuple objek yang terdeteksi untuk tanda tangan tertentu.
Properti
.width– Lebar objek yang terdeteksi dalam piksel..height– Tinggi objek yang terdeteksi dalam piksel..centerX– Posisi X dari pusat objek dalam piksel..centerY– Posisi Y dari pusat objek dalam piksel..originX– Posisi X dari sudut kiri atas objek dalam piksel..originY– Posisi Y dari sudut kiri atas objek dalam piksel..id– ID klasifikasi objek yang terdeteksi.
Konsol – Cetak ke Konsol dan pantau nilai.
Mencetak
brain.screen.print— Menampilkan teks, angka, atau nilai variabel di Konsol.brain.screen.next_row— Memindahkan kursor Konsol ke awal baris berikutnya.brain.screen.clear_screen— Menghapus semua baris dari Konsol.
Monitor
monitor_variable— Menambahkan satu atau lebih variabel yang telah ditentukan sebelumnya ke tab Monitor.monitor_sensor— Menambahkan satu atau lebih nilai sensor ke tab Monitor.
Penginderaan – Manfaatkan berbagai sensor robot.
Jarak
found_object– Mengembalikan apakah Sensor Jarak mendeteksi objek dalam jangkauan.object_distance– Mengembalikan jarak antara Sensor Jarak dan objek terdekat yang terdeteksi.
GPS
x_position– Mengembalikan koordinat x saat ini dari Sensor GPS di lapangan.y_position– Mengembalikan koordinat y saat ini dari Sensor GPS di lapangan.heading– Mengembalikan arah yang sedang dihadapi robot berdasarkan Sensor GPS.
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#
Perintah drive menggerakkan robot maju atau mundur tanpa henti. Robot akan terus bergerak hingga diberi perintah lain, seperti berbelok atau berhenti.
Usage:
drivetrain.drive(direction)
Parameter |
Keterangan |
|---|---|
|
Arah pergerakan robot: |
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive(FORWARD)
wait(0.5, SECONDS)
drivetrain.stop()
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
dorongan untuk#
Perintah drive_for menggerakkan robot maju atau mundur sejauh jarak tertentu. Proyek akan menunggu hingga robot selesai bergerak sebelum menjalankan baris kode berikutnya.
Usage:
drivetrain.drive_for(direction, distance, units, wait)
Parameter |
Keterangan |
|---|---|
|
Arah pergerakan robot: |
|
Jarak yang ditempuh robot. Ini bisa berupa bilangan |
|
Opsional. Satuan jarak: |
|
Opsional. |
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
berbelok#
Perintah turn akan membuat robot berbelok ke kiri atau kanan selamanya. Robot akan terus berbelok hingga diberi perintah lain, seperti bergerak atau berhenti.
Usage:
drivetrain.turn(direction)
Parameter |
Keterangan |
|---|---|
|
Arah putaran robot: |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn(LEFT)
wait(0.78, SECONDS)
drivetrain.stop()
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
putar untuk#
Perintah turn_for memutar robot ke kiri atau ke kanan sejumlah derajat tertentu. Putaran tersebut relatif terhadap posisi robot saat ini. Proyek akan menunggu hingga robot selesai berputar sebelum baris kode berikutnya dijalankan.
Usage:
drivetrain.turn_for(direction, angle, units, wait)
Parameter |
Keterangan |
|---|---|
|
Arah putaran robot: |
|
Jumlah derajat putaran robot. Ini bisa berupa bilangan |
|
Opsional. Satuan sudut: |
|
Opsional. |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
belok_ke_arah#
Arah haluan adalah arah yang dihadapi robot, diukur dalam derajat. 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.
Usage:
drivetrain.turn_to_heading(heading, units, wait)
Parameter |
Keterangan |
|---|---|
|
Arah haluan yang harus dihadapi robot, dari -359 hingga 359 derajat. |
|
Opsional. Satuan sudut: |
|
Opsional. |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_to_heading(-110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
putar_ke_rotasi#
turn_to_rotation memutar robot ke rotasi tertentu.
Rotasi adalah seberapa jauh robot telah berputar, diukur dalam derajat. Pada awal proyek, nilai rotasi diatur ke 0 derajat. Berputar ke kanan meningkatkan rotasi, dan berputar ke kiri mengurangi rotasi.
Sebagai contoh, jika robot mulai dari sudut 0 derajat dan berputar hingga mencapai 720 derajat, maka robot akan berbelok ke kanan dua kali. Jika kemudian berputar hingga mencapai 360 derajat, maka robot akan berbelok ke kiri sekali, karena 360 kurang dari 720.
Usage:
drivetrain.turn_to_rotation(rotation, units, wait)
Parameter |
Keterangan |
|---|---|
|
Nilai rotasi, dalam derajat, yang akan diputar oleh robot. Ini bisa berupa bilangan |
|
Opsional. Satuan sudut: |
|
Opsional. |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_to_rotation(-110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
berhenti#
stop menghentikan pergerakan robot.
Usage:
drivetrain.stop()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn(LEFT)
wait(0.78, SECONDS)
drivetrain.stop()
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
Mutator#
atur_judul#
Heading adalah arah yang dihadapi robot, diukur dalam derajat. set_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.
Usage:
drivetrain.set_heading(heading, units)
Parameter |
Keterangan |
|---|---|
|
Nilai haluan, dalam derajat, yang akan diatur untuk robot. |
|
Opsional. Satuan sudut: |
def main():
# Make facing the Neutral Goal the new heading
drivetrain.set_heading(110, DEGREES)
drivetrain.turn_to_heading(0, DEGREES)
# VR threads — Do not delete
vr_thread(main)
set_rotation#
Rotasi adalah seberapa banyak robot telah berputar, diukur dalam derajat. set_rotation mengubah rotasi robot saat ini ke nilai baru.
Usage:
drivetrain.set_rotation(rotation, units)
Parameter |
Keterangan |
|---|---|
|
Nilai rotasi, dalam derajat, yang akan diatur untuk robot. Ini bisa berupa bilangan |
|
Opsional. Satuan sudut: |
def main():
# Make facing the Neutral Goal the new rotation
drivetrain.set_rotation(110, DEGREES)
drivetrain.turn_to_rotation(0, DEGREES)
# VR threads — Do not delete
vr_thread(main)
waktu habis#
set_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 baris kode berikutnya. Ini mencegah robot terjebak pada suatu gerakan.
Usage:
drivetrain.set_timeout(time, units)
Parameter |
Keterangan |
|---|---|
|
Jumlah detik yang dapat dicoba robot untuk menyelesaikan suatu gerakan. Ini bisa berupa bilangan bulat positif |
|
Opsional. Satuan waktu: |
def main():
# Turn to face the Neutral Goal
drivetrain.set_timeout(0.8, SECONDS)
drivetrain.turn_for(LEFT, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
set_drive_velocity#
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.
Usage:
drivetrain.set_drive_velocity(velocity, units)
Parameter |
Keterangan |
|---|---|
|
Kecepatan untuk mengemudi dari 0% hingga 100%. Ini bisa berupa bilangan |
|
Opsional. Satuan kecepatan: |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.set_drive_velocity(100, PERCENT)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
set_turn_velocity#
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.
Usage:
drivetrain.set_turn_velocity(velocity, units)
Parameter |
Keterangan |
|---|---|
|
Kecepatan untuk berbelok dari 0% hingga 100%. Ini bisa berupa bilangan |
|
Opsional. Satuan kecepatan: |
def main():
# Turn to face the Neutral Goal faster
drivetrain.set_turn_velocity(100, PERCENT)
drivetrain.turn_for(LEFT, 110, DEGREES)
# VR threads — Do not delete
vr_thread(main)
Pencari#
menuju#
Heading adalah arah yang dihadapi robot, diukur dalam derajat. Perintah heading mengembalikan heading robot saat ini dari 0 hingga 359,99 derajat.
Arah awal pergerakan robot adalah 0 derajat.
Usage:
drivetrain.heading(units)
Parameter |
Keterangan |
|---|---|
|
Opsional. Satuan arah: |
def main():
# Turn to the Goal, then show heading
drivetrain.turn_for(LEFT, 110, DEGREES)
brain.screen.print("Heading: ")
brain.screen.print(drivetrain.heading(DEGREES))
# VR threads — Do not delete
vr_thread(main)
rotasi#
Rotasi adalah seberapa banyak robot telah berputar, diukur dalam derajat. Pada awal proyek, nilai rotasi diatur ke 0 derajat. Perintah rotation mengembalikan rotasi robot saat ini.
Memutar ke kanan akan meningkatkan putaran, dan memutar ke kiri akan mengurangi putaran. Misalnya, melakukan dua putaran penuh ke kanan akan menghasilkan putaran sebesar 720 derajat.
Usage:
drivetrain.rotation(units)
Parameter |
Keterangan |
|---|---|
|
Opsional. Satuan rotasi: |
def main():
# Spin to find a Pin, then show rotation
drivetrain.turn_for(RIGHT, 450, DEGREES)
brain.screen.print("Rotation: ")
brain.screen.print(drivetrain.rotation(DEGREES))
# VR threads — Do not delete
vr_thread(main)
selesai#
is_done mengembalikan nilai Boolean yang menunjukkan apakah robot telah selesai bergerak. Ini dapat digunakan untuk mengontrol waktu perilaku lain berdasarkan pergerakan robot.
True— Robot telah selesai bergerak.False— Robot masih bergerak.
Metode ini bekerja bersama dengan metode Drivetrain berikut yang memiliki parameter wait : drive_for, turn_for, turn_to_heading, dan turn_to_rotation.
Usage:
drivetrain.is_done()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
arm_motor.spin_for(FORWARD, 800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES, wait=False)
wait(0.5, SECONDS)
while not drivetrain.is_done():
wait(5, MSEC)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
sedang bergerak#
is_moving mengembalikan nilai Boolean yang menunjukkan apakah robot sedang bergerak. Ini dapat digunakan untuk mengontrol pengaturan waktu perilaku lain berdasarkan pergerakan robot.
True— Robot itu bergerak.False— Robot tidak bergerak.
Usage:
drivetrain.is_moving()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
def main():
# Raise the Arm once stopped near the Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES, wait=False)
wait (0.5, SEC)
while drivetrain.is_moving():
wait(5, MSEC)
arm_motor.spin_for(FORWARD, 800, DEGREES)
# VR threads — Do not delete
vr_thread(main)
kecepatan#
velocity mengembalikan kecepatan robot saat bergerak, dalam persentase dari -100% hingga 100%.
Usage:
drivetrain.velocity(units)
Parameter |
Keterangan |
|---|---|
|
Opsional. Satuan kecepatan: |
def main():
# Show speed while driving to the Goal
drivetrain.drive_for(FORWARD, 150, MM)
brain.screen.print("Velocity: ")
brain.screen.print(drivetrain.velocity(PERCENT))
# VR threads — Do not delete
vr_thread(main)
Gerakan#
Flex menggunakan Arm Motor untuk mengangkat dan menurunkan lengan, dan Claw Motor untuk membuka dan menutup cakar.
Setiap motor memiliki perilaku arahnya sendiri. Deskripsi arah menjelaskan bagaimana setiap arah menggerakkan motor tersebut pada Flex.
Tindakan#
putaran#
spin 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.
Cara Penggunaan:
Salah satu dari dua objek motor yang tersedia dapat digunakan dengan metode ini, seperti yang ditunjukkan di bawah ini:
motor |
Memerintah |
|---|---|
|
|
|
|
Parameter |
Keterangan |
|---|---|
|
Arah putaran motor:
|
def main():
# Raise the Arm before driving toward a Pin
arm_motor.spin(FORWARD)
wait(1, SECONDS)
arm_motor.stop()
# VR threads — Do not delete
vr_thread(main)
putar_untuk#
spin_for memutar motor sejauh jarak tertentu. Putaran relatif terhadap posisi motor saat ini. Proyek akan menunggu hingga motor selesai berputar sebelum baris kode berikutnya dijalankan.
Cara Penggunaan:
Salah satu dari dua objek motor yang tersedia dapat digunakan dengan metode ini, seperti yang ditunjukkan di bawah ini:
motor |
Memerintah |
|---|---|
|
|
|
|
Parameter |
Keterangan |
|---|---|
|
Arah putaran motor:
|
|
Jarak putaran motor. |
|
Opsional. Satuan jarak: |
|
Opsional.
|
def main():
# Raise the Arm to carry the Pin to the Goal
arm_motor.spin_for(FORWARD, 800, DEGREES)
# VR threads — Do not delete
vr_thread(main)
putar_ke_posisi#
spin_to_position memutar motor ke posisi tertentu.
Posisi motor adalah seberapa jauh motor tersebut telah berputar, diukur dalam DEGREES atau TURNSSatu putaran sama dengan 360 derajat. Pada awal proyek, posisi Motor Lengan diatur ke 0 derajat. Motor Cakar adalah pengecualian — motor ini dimulai pada 467 derajat (tertutup sepenuhnya). Posisi motor juga dapat diatur menggunakan metode set_position.
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.
Cara Penggunaan:
Salah satu dari dua objek motor yang tersedia dapat digunakan dengan metode ini, seperti yang ditunjukkan di bawah ini:
motor |
Memerintah |
|---|---|
|
|
|
|
Parameter |
Keterangan |
|---|---|
|
Nilai posisi putaran motor. |
|
Opsional. Satuan posisi: |
|
Opsional.
|
def main():
# Raise the Arm, then release the Pin
arm_motor.spin_to_position(800, DEGREES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
berhenti#
stop menghentikan motor agar tidak berputar.
Cara Penggunaan:
Salah satu dari dua objek motor yang tersedia dapat digunakan dengan metode ini, seperti yang ditunjukkan di bawah ini:
motor |
Memerintah |
|---|---|
|
|
|
|
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
def main():
# Raise the Arm partway to hold the Pin
arm_motor.spin(FORWARD)
wait(1, SECONDS)
arm_motor.stop()
# VR threads — Do not delete
vr_thread(main)
Mutator#
posisi_tetap#
Posisi motor adalah seberapa jauh motor telah berputar, diukur dalam DEGREES atau TURNSSatu putaran sama dengan 360 derajat. set_position 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.
Cara Penggunaan:
Salah satu dari dua objek motor yang tersedia dapat digunakan dengan metode ini, seperti yang ditunjukkan di bawah ini:
motor |
Memerintah |
|---|---|
|
|
|
|
Parameter |
Keterangan |
|---|---|
|
Nilai posisi yang akan diatur untuk motor. |
|
Opsional. Satuan posisi: |
def main():
# Reset encoder, raise Arm, place Pin
arm_motor.set_position(0, DEGREES)
arm_motor.spin_to_position(800, DEGREES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
atur_kecepatan#
set_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.
Cara Penggunaan:
Salah satu dari dua objek motor yang tersedia dapat digunakan dengan metode ini, seperti yang ditunjukkan di bawah ini:
motor |
Memerintah |
|---|---|
|
|
|
|
Parameter |
Keterangan |
|---|---|
|
Kecepatan putaran dari 0% hingga 100%. Ini bisa berupa bilangan |
|
Satuan kecepatan: |
def main():
# Raise the Arm fast to release the Pin
arm_motor.set_velocity(100, PERCENT)
arm_motor.spin_for(FORWARD, 800, DEGREES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
waktu habis#
set_timeout mengatur berapa lama motor akan mencoba menyelesaikan suatu gerakan. Jika motor tidak dapat menyelesaikannya dalam waktu tersebut, motor akan berhenti mencoba dan melanjutkan ke baris kode berikutnya. Ini mencegah motor macet pada suatu gerakan.
Cara Penggunaan:
Salah satu dari dua objek motor yang tersedia dapat digunakan dengan metode ini, seperti yang ditunjukkan di bawah ini:
motor |
Memerintah |
|---|---|
|
|
|
|
Parameter |
Keterangan |
|---|---|
|
Jumlah waktu yang dapat dihabiskan motor untuk mencoba menyelesaikan suatu gerakan. Ini bisa berupa bilangan bulat positif |
|
Satuan waktu: |
def main():
# Score a Pin in a Neutral Goal
drivetrain.turn_for(LEFT, 110, DEGREES)
arm_motor.set_timeout(1, SECONDS)
arm_motor.spin_for(FORWARD, 1800, DEGREES)
drivetrain.drive_for(FORWARD, 25, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
Pencari#
selesai#
is_done mengembalikan nilai Boolean yang menunjukkan apakah motor telah selesai bergerak. Ini dapat digunakan untuk mengontrol pengaturan waktu perilaku lain berdasarkan pergerakan motor.
True— Motor sudah selesai bergerak.False— Motor masih bergerak.
Metode ini bekerja bersama dengan metode Gerak berikut yang memiliki parameter wait : spin_for dan spin_to_position.
Cara Penggunaan:
Salah satu dari dua objek motor yang tersedia dapat digunakan dengan metode ini, seperti yang ditunjukkan di bawah ini:
motor |
Memerintah |
|---|---|
|
|
|
|
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
def main():
# Raise the Arm while driving to the Goal
arm_motor.spin_to_position(800, DEGREES, wait=False)
wait(0.1, SECONDS)
while not arm_motor.is_done():
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.stop()
# VR threads — Do not delete
vr_thread(main)
sedang berputar#
is_spinning mengembalikan nilai Boolean yang menunjukkan apakah motor berputar atau tidak. Ini dapat digunakan untuk mengontrol pengaturan waktu perilaku lain berdasarkan pergerakan motor.
True— Motor sedang berputar.False— Motor tidak berputar.
Metode ini bekerja bersama dengan metode Gerak berikut yang memiliki parameter wait : spin_for dan spin_to_position.
Cara Penggunaan:
Salah satu dari dua objek motor yang tersedia dapat digunakan dengan metode ini, seperti yang ditunjukkan di bawah ini:
motor |
Memerintah |
|---|---|
|
|
|
|
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
def main():
# Raise the Arm while driving to the Goal, then release the Pin
arm_motor.spin_to_position(800, DEGREES, wait=False)
wait(0.1, SECONDS)
while arm_motor.is_spinning():
drivetrain.drive_for(FORWARD, 25, MM)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
posisi#
Posisi motor adalah seberapa jauh motor telah berputar, diukur dalam DEGREES atau TURNS. Satu putaran sama dengan 360 derajat. position posisi motor saat ini.
Pada awal proyek, posisi Motor Lengan diatur ke 0 derajat. Motor Cakar merupakan pengecualian — motor ini 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.
Cara Penggunaan:
Salah satu dari dua objek motor yang tersedia dapat digunakan dengan metode ini, seperti yang ditunjukkan di bawah ini:
motor |
Memerintah |
|---|---|
|
|
|
|
Parameter |
Keterangan |
|---|---|
|
Unit untuk mengembalikan posisi motor ke: |
def main():
# Raise the Arm, then release the Pin
while arm_motor.position(DEGREES) < 800:
arm_motor.spin(FORWARD)
wait(2, MSEC)
arm_motor.stop()
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
kecepatan#
velocity mengembalikan seberapa cepat motor berputar.
Nilai positif berarti motor berputar maju. Nilai negatif berarti motor berputar mundur.
Cara Penggunaan:
Salah satu dari dua objek motor yang tersedia dapat digunakan dengan metode ini, seperti yang ditunjukkan di bawah ini:
motor |
Memerintah |
|---|---|
|
|
|
|
Parameter |
Keterangan |
|---|---|
|
Satuan kecepatan yang akan dikembalikan: |
def main():
# Show Arm Motor velocity while raising
arm_motor.set_velocity(100, PERCENT)
arm_motor.spin_to_position(800, DEGREES, wait=False)
wait(0.2, SECONDS)
brain.screen.print(arm_motor.velocity(PERCENT))
# VR threads — Do not delete
vr_thread(main)
Visi AI#
Pencari#
ambil_foto#
take_snapshot menyaring data dari frame AI Vision Sensor ke satu tanda tangan tunggal — deskripsi tersimpan tentang sesuatu yang dapat dikenali sensor, seperti elemen permainan di lapangan — dan mengembalikan tuple.
Tuple menyimpan objek yang diurutkan dari lebar terbesar ke terkecil, dimulai dari indeks 0. Properti setiap objek dapat diakses menggunakan indeksnya. Tuple kosong akan dikembalikan jika tidak ada objek yang cocok yang terdeteksi.
Usage:
ai_vision.take_snapshot(signature)
Parameter |
Keterangan |
|---|---|
|
Memfilter dataset agar hanya menyertakan data dengan tanda tangan yang diberikan. Tanda tangan yang tersedia adalah:
|
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Turn to face the Pin
drivetrain.set_turn_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].centerX < 140:
drivetrain.turn(LEFT)
elif ai_objects[0].centerX > 180:
drivetrain.turn(RIGHT)
else:
drivetrain.stop()
break
# VR threads — Do not delete
vr_thread(main)
Properti#
Ada tujuh properti yang disertakan dengan setiap objek yang disimpan dalam tuple setelah take_snapshot digunakan.
Semua nilai properti kecuali .id menjelaskan posisi dan ukuran objek yang terdeteksi dalam tampilan Sensor Visi AI pada saat take_snapshot digunakan. Nilai-nilai ini diukur dalam piksel, berdasarkan resolusi sensor 320 x 240 piksel.
.lebar#
.width mengembalikan lebar objek yang terdeteksi dalam piksel, yang merupakan bilangan bulat antara 1 dan 320.
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Approach the next Cup and Pin
drivetrain.set_drive_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].width > 140:
drivetrain.stop()
break
else:
drivetrain.drive(FORWARD)
# VR threads — Do not delete
vr_thread(main)
.tinggi#
.height mengembalikan tinggi objek yang terdeteksi dalam piksel, yang merupakan bilangan bulat antara 1 dan 240.
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Approach the next Cup and Pin
drivetrain.set_drive_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].height > 200:
drivetrain.stop()
break
else:
drivetrain.drive(FORWARD)
# VR threads — Do not delete
vr_thread(main)
.centerX#
.centerX mengembalikan koordinat x dari pusat objek yang terdeteksi dalam piksel, yang merupakan bilangan bulat antara 0 dan 320.
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Turn and approach the next Cup and Pin
drivetrain.set_turn_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].centerX < 140:
drivetrain.turn_for(LEFT, 5, DEGREES)
else:
drivetrain.drive_for(FORWARD, 25, INCHES)
break
# VR threads — Do not delete
vr_thread(main)
.centerY#
.centerY mengembalikan koordinat y dari pusat objek yang terdeteksi dalam piksel, yang merupakan bilangan bulat antara 0 dan 240.
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Approach the next Cup and Pin
drivetrain.set_drive_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].centerY > 230:
drivetrain.stop()
break
else:
drivetrain.drive(FORWARD)
# VR threads — Do not delete
vr_thread(main)
.originX#
.originX mengembalikan koordinat x dari sudut kiri atas kotak pembatas objek yang terdeteksi dalam piksel, yang merupakan bilangan bulat antara 0 dan 320.
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Turn and approach the next Cup and Pin
drivetrain.set_turn_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].originX < 100:
drivetrain.turn_for(LEFT, 5, DEGREES)
else:
drivetrain.drive_for(FORWARD, 25, INCHES)
break
# VR threads — Do not delete
vr_thread(main)
.asalY#
.originY mengembalikan koordinat y dari sudut kiri atas kotak pembatas objek yang terdeteksi dalam piksel, yang merupakan bilangan bulat antara 0 dan 240.
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Approach the next Cup and Pin
drivetrain.set_drive_velocity(30, PERCENT)
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
if ai_objects[0].originY > 140:
drivetrain.stop()
break
else:
drivetrain.drive(FORWARD)
# VR threads — Do not delete
vr_thread(main)
.pengenal#
.id mengembalikan ID Klasifikasi AI yang terdeteksi sebagai bilangan bulat.
Klasifikasi AI |
pengenal |
Tanda tangan |
|---|---|---|
Pin MerahBiru |
0 |
|
Pin BiruKuning |
1 |
|
Pin MerahKuning |
2 |
|
Pin Kuning |
3 |
|
Cangkir |
4 |
|
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
drivetrain.turn_for(LEFT, 70, DEGREES)
# Display the ID of the next closest object
while True:
ai_objects = ai_vision.take_snapshot(AiVision.ALL_AIOBJS)
if ai_objects:
brain.screen.print(ai_objects[0].id)
break
# VR threads — Do not delete
vr_thread(main)
Menghibur#
Konsol menampilkan teks, angka, dan nilai variabel saat proyek sedang berjalan. Metode konsol juga dapat memindahkan kursor ke baris baru, membersihkan konsol, dan menambahkan variabel atau nilai sensor ke tab Monitor.
Mencetak#
otak.layar.cetak#
brain.screen.print menampilkan teks, angka, atau nilai variabel di Konsol menggunakan posisi kursor saat ini.
Gunakan brain.screen.next_row ketika Anda ingin nilai yang dicetak berikutnya dimulai pada baris baru.
Usage:
brain.screen.print(value)
Parameter |
Keterangan |
|---|---|
|
Teks, angka, atau nilai variabel yang akan ditampilkan di Konsol. |
def main():
# Display a message in the Console
brain.screen.print("Hello, robot!")
# VR threads — Do not delete
vr_thread(main)
otak.layar.baris_berikutnya#
brain.screen.next_row memindahkan kursor ke kolom 1 pada baris berikutnya di Konsol. Nilai berikutnya yang dicetak akan muncul pada baris tersebut.
Usage:
brain.screen.next_row()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
def main():
# Print on two rows
brain.screen.print("Row 1")
brain.screen.next_row()
brain.screen.print("Row 2")
# VR threads — Do not delete
vr_thread(main)
otak.layar.bersihkan_layar#
brain.screen.clear_screen menghapus semua baris dari Konsol dan memindahkan kursor kembali ke Baris 1.
Usage:
brain.screen.clear_screen()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
def main():
# Display text, then clear it after two seconds
brain.screen.print("This will disappear...")
wait(2, SECONDS)
brain.screen.clear_screen()
# VR threads — Do not delete
vr_thread(main)
Monitor#
variabel_monitor#
monitor_variable menambahkan satu atau lebih variabel yang telah ditentukan sebelumnya ke tab Monitor di VEXcode. Ini memungkinkan Anda untuk mengamati perubahan nilai variabel saat proyek sedang berjalan.
Variabel harus bersifat global agar monitor_variable dapat memantaunya dengan sukses. Berikan setiap nama variabel sebagai string.
Usage:
monitor_variable(“variable”)
monitor_variable(“variable1”, “variable2”)
Parameter |
Keterangan |
|---|---|
|
Nama variabel global yang telah ditentukan sebelumnya untuk dipantau, diberikan sebagai string. Untuk memantau lebih dari satu variabel, pisahkan setiap nama variabel dengan koma. |
def main():
# Monitor the number of loops
global loops
monitor_variable("loops")
# Turn in a full circle 3 times
for loops in range(12):
drivetrain.turn_for(RIGHT, 90, DEGREES)
# VR threads — Do not delete
vr_thread(main)
monitor_sensor#
monitor_sensor menambahkan satu atau lebih nilai sensor ke tab Monitor di VEXcode. Ini memungkinkan Anda untuk mengamati perubahan nilai sensor saat proyek sedang berjalan.
Berikan setiap nilai sensor sebagai string.
Usage:
monitor_sensor(“sensor”)
monitor_sensor(“sensor1”, “sensor2”)
Parameter |
Keterangan |
|---|---|
|
Nilai sensor yang akan dipantau, diberikan sebagai string. Untuk memantau lebih dari satu nilai sensor, pisahkan setiap nilai sensor dengan koma. Pengidentifikasi sensor yang didukung meliputi:
|
def main():
# Monitor the robot's heading
monitor_sensor("drivetrain.heading")
drivetrain.turn_for(RIGHT, 450, DEGREES)
# VR threads — Do not delete
vr_thread(main)
Penginderaan#
Jarak#
objek ditemukan#
found_object mengembalikan nilai boolean yang menunjukkan apakah Sensor Jarak saat ini mendeteksi objek dalam jarak 2000mm.
True— Sensor Jarak mendeteksi sebuah objek.False— Sensor Jarak tidak mendeteksi objek.
Usage:
distance.found_object()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
def main():
# Turn until something is detected, then release the Pin
drivetrain.turn(RIGHT)
while True:
wait(5, MSEC)
if distance.found_object():
drivetrain.stop()
break
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
jarak_objek#
object_distance mengembalikan jarak antara Sensor Jarak dan objek terdekat yang terdeteksi.
Usage:
distance.object_distance(units)
Parameter |
Keterangan |
|---|---|
|
Satuan jarak: |
def main():
# Drive until 200 mm from the Goal, then release the Pin
while distance.object_distance(MM) > 200:
wait(5, MSEC)
drivetrain.drive(FORWARD)
drivetrain.stop()
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
GPS#
posisi x#
x_position mengembalikan koordinat x saat ini dari Sensor GPS (Game Positioning System™) di lapangan.
Usage:
gps.x_position(units)
Parameter |
Keterangan |
|---|---|
satuan |
Satuan nilai offset: |
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive(FORWARD)
while not gps.x_position(MM) > -1370:
wait(2, MSEC)
drivetrain.stop()
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
posisi_y#
y_position mengembalikan koordinat y saat ini dari Sensor GPS (Game Positioning System™) di lapangan.
Usage:
gps.y_position(units)
Parameter |
Keterangan |
|---|---|
satuan |
Satuan nilai offset: |
def main():
# Raise the Arm, drive to the Goal, release the Pin
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive(FORWARD)
while not gps.y_position(MM) < -450:
wait(2, MSEC)
drivetrain.stop()
claw_motor.spin_for(REVERSE, 180, DEGREES)
# VR threads — Do not delete
vr_thread(main)
menuju#
heading mengembalikan arah yang sedang dihadapi robot berdasarkan pembacaan Sensor GPS (Game Positioning System™) dari 0 hingga 359 derajat.
Usage:
gps.heading()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
def main():
# Raise the Arm, drive to the Goal, release the Pin
monitor_sensor("gps.heading")
arm_motor.spin_for(FORWARD, 300, DEGREES)
drivetrain.drive_for(FORWARD, 10, INCHES)
claw_motor.spin_for(REVERSE, 180, DEGREES)
# Turn left to face the Neutral Goal
drivetrain.set_turn_velocity(30, PERCENT)
drivetrain.turn(LEFT)
while not gps.heading() < 18:
wait(2, MSEC)
drivetrain.stop()
# VR threads — Do not delete
vr_thread(main)