Python Khusus Robot#

Perkenalan#

Robot Hero, Swish, mencakup satu opsi motor, satu opsi grup motor, dan Sensor Optik.

Semua metode VEXcode VR standar tersedia untuk digunakan di IQ 24-25 Rapid Relay 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 dan kelompok motor robot.

  • Tindakan

    • spin — Memutar motor atau kelompok motor maju atau mundur selamanya.

    • spin_for — Memutar motor atau kelompok motor untuk jarak tertentu.

    • spin_to_position — Memutar motor atau kelompok motor ke posisi tertentu.

    • stop — Menghentikan motor atau kelompok motor dari berputar.

  • Mutator

    • set_position — Mengubah posisi motor atau grup motor saat ini ke nilai baru.

    • set_velocity — Memberi tahu motor atau kelompok motor seberapa cepat harus berputar.

    • set_timeout — Menentukan berapa lama waktu yang dibutuhkan sebuah motor atau kelompok motor untuk mencoba menyelesaikan suatu gerakan.

  • Penangkap

    • is_done — Mengembalikan nilai Boolean apakah motor atau kelompok motor sudah selesai bergerak.

    • is_spinning — Mengembalikan nilai Boolean apakah motor atau kelompok motor sedang berputar.

    • position — Mengembalikan posisi motor atau grup motor saat ini.

    • velocity — Mengembalikan seberapa cepat motor atau kelompok motor berputar.

Konsol – Cetak ke Konsol dan pantau nilai.

Penginderaan - Manfaatkan berbagai sensor robot.

  • Optik

    • is_near_object – Mengembalikan nilai boolean yang menunjukkan apakah Sensor Optik mendeteksi objek dalam jangkauan.

    • color – Mengembalikan warna yang terdeteksi oleh Sensor Optik.

    • brightness – Mengembalikan jumlah cahaya yang dipantulkan dari objek.

    • hue – Mengembalikan hue yang terdeteksi oleh Sensor Optik.

    • object_detected – Mendaftarkan fungsi yang akan dipanggil ketika Sensor Optik mendeteksi suatu objek.

    • object_lost – Mendaftarkan fungsi yang akan dipanggil ketika Sensor Optik kehilangan sebuah objek.

Contoh-contoh pada halaman ini menggunakan posisi awal Playground default.

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

direction

Arah pergerakan robot: FORWARD atau REVERSE.

def main():
    # Drive forward then stop
    drivetrain.drive(FORWARD)
    wait(2, SECONDS)
    drivetrain.stop()

# 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

direction

Arah pergerakan robot: FORWARD atau REVERSE.

distance

Jarak yang ditempuh robot. Ini bisa berupa bilangan integer , atau bilangan desimal (float).

units

Satuan jarak: INCHES atau MM (milimeter).

wait

Opsional. wait=True (default) membuat proyek menunggu hingga robot selesai bergerak sebelum baris kode berikutnya dijalankan. wait=False membuat baris kode berikutnya dijalankan segera.

def main():
    # Drive forward and backward
    drivetrain.drive_for(FORWARD, 200, MM)
    drivetrain.drive_for(REVERSE, 200, MM)

# VR threads — Do not delete
vr_thread(main)

berbelok#

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

Usage:
drivetrain.turn(direction)

Parameter

Keterangan

direction

Arah putaran robot: LEFT atau RIGHT.

def main():
    # Turn right and left, then stop
    drivetrain.turn(RIGHT)
    wait(2, SECONDS)
    drivetrain.turn(LEFT)
    wait(2, SECONDS)
    drivetrain.stop()

# 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

direction

Arah putaran robot: LEFT atau RIGHT.

angle

Jumlah derajat putaran robot. Ini bisa berupa bilangan integer , atau bilangan desimal (float).

units

Satuan rotasi: DEGREES.

wait

Opsional. wait=True (default) membuat proyek menunggu hingga robot selesai berputar sebelum baris kode berikutnya dijalankan. wait=False membuat baris kode berikutnya dijalankan segera.

def main():
    # Turn the robot right and left
    drivetrain.turn_for(RIGHT, 90, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_for(LEFT, 90, 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 pergerakan robot adalah 0 derajat.

Proyek ini akan menunggu hingga robot selesai berputar sebelum menjalankan baris kode berikutnya.

Usage:
drivetrain.turn_to_heading(angle, units, wait)

Parameter

Keterangan

angle

Arah yang harus dihadapi robot, dalam derajat. Ini bisa berupa bilangan integer ), bilangan pecahan (float) dari -359 hingga 359.

units

Satuan rotasi: DEGREES.

wait

Opsional. wait=True (default) membuat proyek menunggu hingga robot selesai berputar sebelum baris kode berikutnya dijalankan. wait=False membuat baris kode berikutnya dijalankan segera.

def main():
    # Turn to face the cardinal directions
    drivetrain.turn_to_heading(90, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_to_heading(180, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_to_heading(270, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_to_heading(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

putar_ke_rotasi#

turn_to_rotation memutar robot ke rotasi tertentu.

Rotasi adalah seberapa banyak robot telah berputar, diukur dalam derajat. Pada awal proyek, nilai rotasi diatur ke 0 derajat. Rotasi juga dapat diatur menggunakan metode set_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 menjalankan baris kode berikutnya.

Usage:
drivetrain.turn_to_rotation(angle, units, wait)

Parameter

Keterangan

angle

Nilai rotasi, dalam derajat, yang akan diputar oleh robot. Ini bisa berupa bilangan integer , atau bilangan desimal (float).

units

Satuan rotasi: DEGREES.

wait

Opsional. wait=True (default) membuat proyek menunggu hingga robot selesai berputar sebelum baris kode berikutnya dijalankan. wait=False membuat baris kode berikutnya dijalankan segera.

def main():
    # Turn left, then spin in a circle
    # clockwise and face right
    drivetrain.turn_to_rotation(-90, DEGREES)
    wait(1, SECONDS)
    drivetrain.turn_to_rotation(450, 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():
    # Drive forward then stop
    drivetrain.drive(FORWARD)
    wait(2, SECONDS)
    drivetrain.stop()

# 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

heading

Nilai haluan, dalam derajat, yang akan diatur untuk robot. Ini bisa berupa bilangan integer ), atau bilangan desimal (float).

units

Satuan arah: DEGREES.

def main():
    # Face the new 0 degrees
    drivetrain.set_heading(90, 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. Pada awal proyek, nilai rotasi diatur ke 0 derajat. Perintah set_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.

Usage:
drivetrain.set_rotation(rotation, units)

Parameter

Keterangan

rotation

Nilai rotasi, dalam derajat, yang akan diatur untuk robot. Ini bisa berupa bilangan integer , atau bilangan desimal (float).

units

Satuan rotasi: DEGREES.

def main():
    # Spin counterclockwise two times
    drivetrain.set_rotation(720, DEGREES)
    drivetrain.turn_to_rotation(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

waktu habis#

set_timeout mengatur berapa lama 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(value, units)

Parameter

Keterangan

value

Jumlah waktu yang dapat digunakan robot untuk mencoba menyelesaikan suatu gerakan. Ini bisa berupa bilangan bulat positif integerfloat).

units

Satuan waktu: SECONDS atau MSEC (milidetik).

def main():
    # Turn right after driving forward
    drivetrain.set_timeout(1, SECONDS)
    drivetrain.drive_for(FORWARD, 25, INCHES)
    drivetrain.turn_for(RIGHT, 90)

# VR threads — Do not delete
vr_thread(main)

set_drive_velocity#

Perintah 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

velocity

Kecepatan untuk mengemudi dari 0% hingga 100%. Ini bisa berupa bilangan integer , atau bilangan desimal (float).

units

Satuan kecepatan: PERCENT.

def main():
    # Drive forward at different velocities
    # Default velocity
    drivetrain.drive_for(FORWARD, 150, MM)
    wait(1, SECONDS)
    # Drive slower
    drivetrain.set_drive_velocity(20, PERCENT)
    drivetrain.drive_for(FORWARD, 150, MM)
    wait(1, SECONDS)
    # Drive faster
    drivetrain.set_drive_velocity(100, PERCENT)
    drivetrain.drive_for(FORWARD, 150, MM)

# 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

velocity

Kecepatan untuk berbelok dari 0% hingga 100%. Ini bisa berupa bilangan integer , atau bilangan desimal (float).

units

Satuan kecepatan: PERCENT.

def main():
    # Turn at different velocities
    # Default velocity
    drivetrain.turn_for(RIGHT, 120, DEGREES)
    wait(1, SECONDS)
    # Turn slower
    drivetrain.set_turn_velocity(20, PERCENT)
    drivetrain.turn_for(RIGHT, 120, DEGREES)
    wait(1, SECONDS)
    # Turn faster
    drivetrain.set_turn_velocity(100, PERCENT)
    drivetrain.turn_for(RIGHT, 120, 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

units

Satuan arah: DEGREES.

def main():
    # Display the heading after turning
    drivetrain.turn_for(RIGHT, 450, 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

units

Satuan rotasi: DEGREES.

def main():
    # Display the rotation after turning
    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.

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.

kecepatan#

velocity mengembalikan kecepatan robot saat bergerak, dalam persentase dari -100% hingga 100%.

Usage:
drivetrain.velocity(units)

Parameter

Keterangan

units

Satuan kecepatan: PERCENT.

Contoh

def main():
    # Display the velocity after driving
    drivetrain.drive_for(FORWARD, 150, MM)
    brain.screen.print("Velocity: ")
    brain.screen.print(drivetrain.velocity(PERCENT))

Gerakan#

Swish menggunakan motor pengisap untuk mengumpulkan Bola dan memindahkannya ke ketapel. Kelompok motor ketapel menurunkan dan melepaskan lengan ketapel untuk meluncurkan Bola.

Setiap motor dan kelompok motor memiliki perilaku arahnya masing-masing. Deskripsi arah menjelaskan bagaimana setiap arah menggerakkan motor atau kelompok motor tersebut pada Swish.

Tindakan#

putaran#

spin memutar motor atau kelompok motor maju atau mundur selamanya. Motor atau kelompok motor akan terus berputar hingga diberi tindakan lain, seperti berputar ke arah yang berbeda atau berhenti.

Cara Penggunaan:
Salah satu dari dua objek motor atau grup motor yang tersedia dapat digunakan dengan metode ini, seperti yang ditunjukkan di bawah ini:

motor

Memerintah

intake_motor

intake_motor.spin(direction) — Motor Intake

catapult_group

catapult_group.spin(direction) — Grup Ketapel

Parameter

Keterangan

direction

Arah putaran motor atau kelompok motor:

  • FORWARD — Memutar Motor Pengisap ke arah pengisapan atau menurunkan Kelompok Katapel.
  • REVERSE — Memutar Motor Pengisap ke arah pengeluaran atau melepaskan Kelompok Katapel.

def main():
    # Spin the Intake Motor to bring a Ball onto the Catapult
    intake_motor.spin(FORWARD)
    wait(2, SECONDS)
    intake_motor.stop()

# VR threads — Do not delete
vr_thread(main)

putar_untuk#

spin_for memutar motor atau kelompok motor sejauh jarak tertentu. Putaran relatif terhadap posisi motor atau kelompok motor saat ini. Proyek akan menunggu hingga motor atau kelompok motor selesai berputar sebelum baris kode berikutnya dijalankan.

Cara Penggunaan:
Salah satu dari dua objek motor atau grup motor yang tersedia dapat digunakan dengan metode ini, seperti yang ditunjukkan di bawah ini:

motor

Memerintah

intake_motor

intake_motor.spin_for(direction, distance, units, wait=True) — Motor Intake

catapult_group

catapult_group.spin_for(direction, distance, units, wait=True) — Grup Ketapel

Parameter

Keterangan

direction

Arah putaran motor atau kelompok motor:

  • FORWARD — Memutar Motor Pengisap ke arah pengisapan atau menurunkan Kelompok Katapel.
  • REVERSE — Memutar Motor Pengisap ke arah pengeluaran atau melepaskan Kelompok Katapel.

distance

Jarak putaran motor atau kelompok motor. DEGREES gunakan bilangan bulat. TURNS dapat menggunakan bilangan bulat atau desimal.

units

Opsional. Satuan jarak: DEGREES (standar) atau TURNS.

wait

Opsional.

  • wait=True (default) — Membuat proyek menunggu hingga motor atau kelompok motor selesai berputar sebelum baris kode berikutnya dijalankan.
  • wait=False — Membuat baris kode berikutnya dijalankan segera.

def main():
    # Release the preloaded Ball
    catapult_group.spin_for(REVERSE, 5, DEGREES)
    # Lower the Catapult to prepare to load another Ball
    catapult_group.spin_for(FORWARD, 1350, DEGREES)

# VR threads — Do not delete
vr_thread(main)

putar_ke_posisi#

spin_to_position memutar motor atau kelompok motor ke posisi tertentu.

Posisi motor atau kelompok motor adalah seberapa jauh motor tersebut telah berputar, diukur dalam DEGREES atau TURNSSatu putaran sama dengan 360 derajat. Pada awal proyek, posisi motor atau kelompok motor diatur ke 0 derajat. Posisi motor atau kelompok motor juga dapat diatur menggunakan metode set_position.

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

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

Cara Penggunaan:
Salah satu dari dua objek motor atau grup motor yang tersedia dapat digunakan dengan metode ini, seperti yang ditunjukkan di bawah ini:

motor

Memerintah

intake_motor

intake_motor.spin_to_position(angle, units, wait=True) — Motor Intake

catapult_group

catapult_group.spin_to_position(angle, units, wait=True) — Grup Ketapel

Parameter

Keterangan

angle

Nilai posisi putaran motor atau kelompok motor. DEGREES gunakan bilangan bulat. TURNS dapat menggunakan bilangan bulat atau desimal.

units

Opsional. Satuan posisi: DEGREES (standar) atau TURNS.

wait

Opsional.

  • wait=True (default) — Membuat proyek menunggu hingga motor atau kelompok motor selesai berputar sebelum baris kode berikutnya dijalankan.
  • wait=False — Membuat baris kode berikutnya dijalankan segera.

def main():
    # Release the preloaded Ball
    catapult_group.spin_to_position(-90, DEGREES)
    # Lower the Catapult to prepare to load another Ball
    catapult_group.spin_to_position(1260, DEGREES)

# VR threads — Do not delete
vr_thread(main)

motor berhenti#

stop menghentikan motor atau kelompok motor agar tidak berputar.

Cara Penggunaan:
Salah satu dari dua objek motor atau grup motor yang tersedia dapat digunakan dengan metode ini, seperti yang ditunjukkan di bawah ini:

motor

Memerintah

intake_motor

intake_motor.stop() — Motor Intake

catapult_group

catapult_group.stop() — Grup Ketapel

Parameter

Keterangan

Metode ini tidak memiliki parameter.

def main():
    # Spin the Intake Motor to bring a Ball onto the Catapult
    intake_motor.spin(FORWARD)
    wait(2, SECONDS)
    intake_motor.stop()

# VR threads — Do not delete
vr_thread(main)

Mutator#

posisi_tetap#

Posisi motor atau kelompok motor adalah seberapa jauh motor tersebut telah berputar, diukur dalam DEGREES atau TURNSSatu putaran sama dengan 360 derajat. set_position mengubah posisi motor atau kelompok motor saat ini ke nilai baru.

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

Cara Penggunaan:
Salah satu dari dua objek motor atau grup motor yang tersedia dapat digunakan dengan metode ini, seperti yang ditunjukkan di bawah ini:

motor

Memerintah

intake_motor

intake_motor.set_position(position, units) — Motor Intake

catapult_group

catapult_group.set_position(position, units) — Grup Ketapel

Parameter

Keterangan

position

Nilai posisi yang akan diatur untuk motor atau kelompok motor. DEGREES gunakan bilangan bulat. TURNS dapat menggunakan bilangan bulat atau desimal.

units

Opsional. Satuan posisi: DEGREES (standar) atau TURNS.

def main():
    # Lower the Catapult to prepare to load another Ball
    catapult_group.spin_to_position(1260, DEGREES)
    # Set the new Catapult position to be 0 degrees
    catapult_group.set_position(0, DEGREES)

# VR threads — Do not delete
vr_thread(main)

atur_kecepatan#

set_velocity memberi tahu motor atau kelompok motor seberapa cepat harus berputar. Persentase yang lebih tinggi membuat motor atau kelompok motor berputar lebih cepat dan persentase yang lebih rendah membuat motor atau kelompok motor berputar lebih lambat.

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

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

Cara Penggunaan:
Salah satu dari dua objek motor atau grup motor yang tersedia dapat digunakan dengan metode ini, seperti yang ditunjukkan di bawah ini:

motor

Memerintah

intake_motor

intake_motor.set_velocity(velocity, units) — Motor Intake

catapult_group

catapult_group.set_velocity(velocity, units) — Grup Ketapel

Parameter

Keterangan

velocity

Kecepatan putaran dari -100% hingga 100%. Ini bisa berupa bilangan integer , atau bilangan desimal (float).

units

Satuan kecepatan: PERCENT.

def main():
    # Start spinning the Intake Motor to prepare for picking up a Ball
    intake_motor.set_velocity(100, PERCENT)
    intake_motor.spin(FORWARD)

# VR threads — Do not delete
vr_thread(main)

waktu habis#

set_timeout mengatur berapa lama waktu yang dibutuhkan motor atau kelompok motor untuk mencoba menyelesaikan suatu gerakan. Jika motor atau kelompok motor tidak dapat menyelesaikannya dalam waktu tersebut, ia akan berhenti mencoba dan melanjutkan ke baris kode berikutnya. Ini mencegah motor atau kelompok motor terjebak pada suatu gerakan.

Cara Penggunaan:
Salah satu dari dua objek motor atau grup motor yang tersedia dapat digunakan dengan metode ini, seperti yang ditunjukkan di bawah ini:

motor

Memerintah

intake_motor

intake_motor.set_timeout(value, units) — Motor Intake

catapult_group

catapult_group.set_timeout(value, units) — Grup Ketapel

Parameter

Keterangan

value

Jumlah waktu yang dapat dihabiskan oleh motor atau kelompok motor untuk mencoba menyelesaikan suatu gerakan. Ini bisa berupa bilangan bulat positif (0), bilangan bulat negatif integer , atau bilangan desimal (float).

units

Satuan waktu: SECONDS atau MSEC (milidetik).

def main():
    # Limit how long the Catapult waits to reach its target
    catapult_group.set_timeout(2, SECONDS)
    catapult_group.spin_for(FORWARD, 2160, DEGREES)

# VR threads — Do not delete
vr_thread(main)

Pencari#

selesai#

is_done mengembalikan nilai Boolean yang menunjukkan apakah motor atau kelompok motor telah selesai bergerak. Ini dapat digunakan untuk mengontrol pengaturan waktu perilaku lain berdasarkan pergerakan motor atau kelompok motor.

  • True — Motor atau kelompok motor telah selesai bergerak.

  • False — Motor atau kelompok 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 atau grup motor yang tersedia dapat digunakan dengan metode ini, seperti yang ditunjukkan di bawah ini:

motor

Memerintah

intake_motor

intake_motor.is_done() — Motor Intake

catapult_group

catapult_group.is_done() — Grup Ketapel

Parameter

Keterangan

Metode ini tidak memiliki parameter.

sedang berputar#

is_spinning mengembalikan nilai Boolean yang menunjukkan apakah motor atau kelompok motor sedang berputar. Ini dapat digunakan untuk mengontrol pengaturan waktu perilaku lain berdasarkan pergerakan motor atau kelompok motor.

  • True — Motor atau kelompok motor sedang berputar.

  • False — Motor atau kelompok 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 atau grup motor yang tersedia dapat digunakan dengan metode ini, seperti yang ditunjukkan di bawah ini:

motor

Memerintah

intake_motor

intake_motor.is_spinning() — Motor Intake

catapult_group

catapult_group.is_spinning() — Grup Ketapel

Parameter

Keterangan

Metode ini tidak memiliki parameter.

posisi#

Posisi motor atau kelompok motor adalah seberapa jauh motor tersebut telah berputar, diukur dalam DEGREES atau TURNS. position mengembalikan posisi motor atau kelompok motor saat ini.

Pada awal proyek, posisi motor atau kelompok motor diatur ke 0 derajat. Jika motor atau kelompok motor berputar satu putaran penuh ke depan, posisinya akan menjadi 360 derajat atau 1 putaran. Jika motor atau kelompok motor berputar ke arah lain, posisinya akan negatif.

Cara Penggunaan:
Salah satu dari dua objek motor atau grup motor yang tersedia dapat digunakan dengan metode ini, seperti yang ditunjukkan di bawah ini:

motor

Memerintah

intake_motor

intake_motor.position(units) — Motor Intake

catapult_group

catapult_group.position(units) — Grup Ketapel

Parameter

Keterangan

units

Unit untuk mengembalikan posisi motor atau kelompok motor ke: DEGREES atau TURNS.

def main():
    # Lower the Catapult to prepare to load another Ball
    while not catapult_group.position(DEGREES) == 1260:
        catapult_group.spin(FORWARD)

# VR threads — Do not delete
vr_thread(main)

kecepatan#

velocity mengembalikan seberapa cepat motor atau kelompok motor berputar.

Nilai positif berarti motor atau kelompok motor berputar ke depan. Nilai negatif berarti motor atau kelompok motor berputar ke belakang.

Cara Penggunaan:
Salah satu dari dua objek motor atau grup motor yang tersedia dapat digunakan dengan metode ini, seperti yang ditunjukkan di bawah ini:

motor

Memerintah

intake_motor

intake_motor.velocity(units) — Motor Intake

catapult_group

catapult_group.velocity(units) — Grup Ketapel

Parameter

Keterangan

units

Satuan kecepatan yang akan dikembalikan: PERCENT.

def main():
    # Print the current Catapult velocity
    brain.screen.print(catapult_group.velocity(PERCENT))

# 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. Perilakunya mirip dengan print pada halaman API Konsol.

Gunakan brain.screen.next_row ketika Anda ingin nilai yang dicetak berikutnya dimulai pada baris baru.

Usage:
brain.screen.print(value)

Parameter

Keterangan

value

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)

Konsol VEXcode, menampilkan Konsol dan teks "Halo, robot!" ditampilkan.

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)

Konsol VEXcode, menampilkan Konsol dan teks "Baris 1" yang ditampilkan pada baris pertama dan "Baris 2" pada baris kedua.

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

variable

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 amount of loops
    global loops
    monitor_variable("loops")

    # Drive in a square 3 times
    for loops in range(12):
        drivetrain.turn_for(RIGHT, 90, DEGREES)
        drivetrain.drive_for(FORWARD, 150, MM)

# 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

sensor

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:

  • Otak
    • brain.timer.time
  • Sistem Penggerak
    • drivetrain.is_done
    • drivetrain.is_moving
    • drivetrain.heading
    • drivetrain.rotation
    • drivetrain.velocity_rpm
    • drivetrain.velocity_percent
  • Motor Lengan
    • arm_motor.is_done
    • arm_motor.is_spinning
    • arm_motor.position_degrees
    • arm_motor.position_turns
    • arm_motor.velocity_rpm
    • arm_motor.velocity_percent
  • Grup Motor
    • arm_motor_group.is_done
    • arm_motor_group.is_spinning
    • arm_motor_group.position_degrees
    • arm_motor_group.position_turns
    • arm_motor_group.velocity_rpm
    • arm_motor_group.velocity_percent
  • Motor Intake
    • intake_motor.is_done
    • intake_motor.is_spinning
    • intake_motor.position_degrees
    • intake_motor.position_turns
    • intake_motor.velocity_rpm
    • intake_motor.velocity_percent
  • Intake Motor Group
    • intake_motor_group.is_done
    • intake_motor_group.is_spinning
    • intake_motor_group.position_degrees
    • intake_motor_group.position_turns
    • intake_motor_group.velocity_rpm
    • intake_motor_group.velocity_percent
  • Catapult Motor
    • catapult_motor.is_done
    • catapult_motor.is_spinning
    • catapult_motor.position_degrees
    • catapult_motor.position_turns
    • catapult_motor.velocity_rpm
    • catapult_motor.velocity_percent
  • Motor Penegang Katapel
    • catapult_tension_motor.is_done
    • catapult_tension_motor.is_spinning
    • catapult_tension_motor.position_degrees
    • catapult_tension_motor.position_turns
    • catapult_tension_motor.velocity_rpm
    • catapult_tension_motor.velocity_percent
  • Bumper
    • intake_bumper.pressing
    • bumper.pressing
  • Sensor Jarak
    • front_distance.is_object_detected
    • front_distance.object_distance_mm
    • front_distance.object_distance_inches
  • Sensor Optik Depan
    • front_optical.is_near_object
    • front_optical.color
    • front_optical.brightness
    • front_optical.hue
  • Sensor Warna
    • color.is_near_object
    • color.color
    • color.brightness
    • color.hue

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#

Optik#

dekat_objek#

is_near_object mengembalikan nilai Boolean yang menunjukkan apakah Sensor Optik mendeteksi objek dalam jangkauan atau tidak.

  • True – Sensor Optik mendeteksi suatu objek.

  • False – Sensor Optik tidak mendeteksi objek.

Usage:
intake_optical.is_near_object()

Parameter

Keterangan

Metode ini tidak memiliki parameter.

def main():
    # Launch a loaded Ball once the Intake Optical Sensor detects a Ball
    if intake_optical.is_near_object():
        catapult_group.spin_for(REVERSE, 5, DEGREES)

# VR threads — Do not delete
vr_thread(main)

warna#

color mengembalikan sebuah instance dari kelas Color , berdasarkan nilai hue yang terdeteksi. Ini dapat dibandingkan dengan objek Color yang telah ditentukan sebelumnya untuk membuat pernyataan kondisional.

Warna yang mungkin adalah:

  • NONE

  • RED - Nilai rona antara 340° - 20°

  • GREEN - Nilai rona antara 80° - 140°

  • BLUE - Nilai rona antara 200° - 240°

  • YELLOW - Nilai rona antara 40° - 60°

  • ORANGE - Nilai rona antara 20° - 40°

  • PURPLE - Nilai rona antara 240° - 280°

  • CYAN - Nilai rona antara 140° - 200°

Catatan: Sensor Optik mencari rentang warna yang sesuai dengan warna yang ditentukan. Untuk mendeteksi rentang warna tertentu, lihat hue.

Usage:
intake_optical.color()

Parameter

Keterangan

Metode ini tidak memiliki parameter.

def main():
    # Launch a loaded Ball once yellow is detected in the Intake
    if intake_optical.color() == YELLOW:
        catapult_group.spin_for(REVERSE, 5, DEGREES)

# VR threads — Do not delete
vr_thread(main)

kecerahan#

brightness mengembalikan jumlah cahaya yang dipantulkan dari objek sebagai desimal (float) yang mewakili persentase.

Persentase yang lebih tinggi berarti lebih banyak cahaya yang dipantulkan kembali ke Sensor Optik. Persentase yang lebih rendah berarti lebih sedikit cahaya yang dipantulkan kembali.

Usage:
intake_optical.brightness()

Parameter

Keterangan

Metode ini tidak memiliki parameter.

def main():
    # Launch a loaded Ball once the Intake Optical Sensor sees a Ball
    if intake_optical.brightness() > 0:
        catapult_group.spin_for(REVERSE, 5, DEGREES)

# VR threads — Do not delete
vr_thread(main)

warna#

hue mengembalikan nilai hue dari warna yang terdeteksi sebagai desimal (float) dari 0 hingga 359.

Hue adalah cara untuk mendeskripsikan warna menggunakan angka-angka di sekitar roda warna.

Roda warna melingkar yang menampilkan spektrum warna lengkap yang diberi label dengan nilai derajat di sekelilingnya, meningkat dalam kelipatan 30 derajat dari 0 derajat di atas hingga 360 derajat.

Usage:
intake_optical.hue()

Parameter

Keterangan

Metode ini tidak memiliki parameter.

def main():
    # Launch a loaded Ball once the Intake Optical Sensor reports a hue value
    if intake_optical.hue() > 100:
        catapult_group.spin_for(REVERSE, 5, DEGREES)

# VR threads — Do not delete
vr_thread(main)

objek_terdeteksi#

object_detected mendaftarkan sebuah fungsi yang akan dipanggil setiap kali Sensor Optik mendeteksi objek baru.

Usage:
intake_optical.object_detected(callback, arg)

Parameter

Keterangan

callback

Sebuah fungsi yang telah didefinisikan sebelumnya yang akan dieksekusi ketika Sensor Optik mendeteksi objek baru.

arg

Opsional. Sebuah tuple yang berisi argumen untuk diteruskan ke fungsi callback. Lihat Menggunakan Fungsi dengan Parameter untuk informasi lebih lanjut.

def launch_ball():
    catapult_group.spin_for(REVERSE, 5, DEGREES)

def main():
    # Launch the Ball when the Intake Optical Sensor detects an object
    intake_optical.object_detected(launch_ball)

# VR threads — Do not delete
vr_thread(main)

objek_hilang#

object_lost mendaftarkan sebuah fungsi yang akan dipanggil setiap kali Sensor Optik kehilangan objek yang terdeteksi.

Usage:
intake_optical.object_lost(callback, arg)

Parameter

Keterangan

callback

Sebuah fungsi yang telah didefinisikan sebelumnya yang akan dieksekusi ketika Sensor Optik kehilangan objek yang terdeteksi.

arg

Opsional. Sebuah tuple yang berisi argumen untuk diteruskan ke fungsi callback. Lihat Menggunakan Fungsi dengan Parameter untuk informasi lebih lanjut.

def lower_catapult():
    catapult_group.spin_to_position(1260, DEGREES)

def main():
    # Lower the Catapult when the Intake Optical Sensor no longer detects an object
    intake_optical.object_lost(lower_catapult)

# VR threads — Do not delete
vr_thread(main)