Gerakan#
Perkenalan#
Robot Pemrograman VEX AIM menggunakan sistem penggerak holonomik untuk bergerak maju, mundur, kiri, kanan, atau miring, serta mampu berbelok secara independen. Metode gerak mengontrol bagaimana robot bergerak dan berbelok, seberapa cepat ia bergerak, dan bagaimana posisi x dan y-nya dilacak.

Berikut adalah daftar metode yang tersedia:
Aksi — Gerakkan dan putar robot.
move_at— Menggerakkan robot pada sudut tertentu selamanya.move_for— Menggerakkan robot pada sudut tertentu untuk jarak tertentu.move_with_vectors— Menggerakkan robot menggunakan nilai x, y, dan rotasi berbasis vektor.turn— Memutar robot ke kiri atau ke kanan selamanya.turn_for— Memutar robot ke kiri atau ke kanan dengan jumlah derajat tertentu.turn_to— Memutar robot untuk menghadap arah tertentu.stop_all_movement— Menghentikan semua pergerakan robot.
Mutator — Mengatur nilai pergerakan robot.
set_move_velocity— Memberi tahu robot seberapa cepat harus bergerak.set_turn_velocity— Memberi tahu robot seberapa cepat harus berbelok.set_xy_position— Mengubah posisi x dan y robot saat ini ke nilai baru.
Getter — Mengembalikan status dan posisi robot.
get_x_position— Mengembalikan koordinat x robot saat ini.get_y_position— Mengembalikan koordinat y robot saat ini.is_move_active— Mengembalikan apakah robot sedang bergerak.is_turn_active— Mengembalikan apakah robot sedang berbelok.is_stopped— Mengembalikan apakah robot tidak bergerak maupun berbelok.
Tindakan#
move_at#
move_at menggerakkan robot selamanya pada sudut tertentu. Sudut tersebut relatif terhadap posisi robot saat ini. Robot akan terus bergerak hingga diberi tindakan lain, seperti bergerak pada sudut yang berbeda, berbelok, atau berhenti.
Penggunaan:
robot.move_at(angle, velocity, units)
Parameter |
Keterangan |
|---|---|
|
Sudut, dalam derajat, yang ditempuh robot. Ini bisa berupa bilangan bulat atau desimal dari -360 hingga 360. |
|
Opsional. Kecepatan gerak dari 0% hingga 100% saat menggunakan |
|
Opsional. Satuan kecepatan: |
# Move right, then move forward and stop.
robot.move_at(90)
wait(1,SECONDS)
robot.move_at(0)
wait(1,SECONDS)
robot.stop_all_movement()
# Move right slowly, move in reverse quickly and stop.
robot.move_at(90, 25)
wait(2, SECONDS)
robot.move_at(180, 100, PERCENT)
wait(1, SECONDS)
robot.stop_all_movement()
# Move diagonally to the right and stop.
robot.move_at(45.33)
wait(1,SECONDS)
robot.stop_all_movement()
move_for#
move_for menggerakkan robot pada sudut tertentu untuk jarak tertentu. Sudut tersebut relatif terhadap posisi robot saat ini. Proyek akan menunggu hingga robot selesai bergerak sebelum baris kode berikutnya dijalankan.
Penggunaan:
robot.move_for(distance, angle, velocity, units, wait)
Parameter |
Keterangan |
|---|---|
|
Jarak yang ditempuh robot, dalam milimeter (mm). Ini bisa berupa bilangan bulat atau desimal (float). |
|
Sudut, dalam derajat, yang ditempuh robot. Ini bisa berupa bilangan bulat atau desimal dari -360 hingga 360. |
|
Opsional. Kecepatan gerak dari 0% hingga 100% saat menggunakan |
|
Opsional. Satuan kecepatan: |
|
Opsional. |
# Move right, then move forward.
robot.move_for(50, 90)
robot.move_for(100, 0)
# Move in reverse slowly, then move forward quickly.
robot.move_for(100, 180, 25)
robot.move_for(100, 0, 100, PERCENT)
# Drive forward and blink all LEDs red.
robot.move_for(100, 0, wait=False)
robot.led.on(ALL_LEDS, RED)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, BLACK)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, RED)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, BLACK)
move_with_vectors#
Vektor adalah cara untuk menggambarkan seberapa cepat sesuatu bergerak, dan ke arah mana ia bergerak. move_with_vectors menggerakkan robot menggunakan gerakan berbasis vektor. Robot menggabungkan nilai kecepatan maju, ke kanan, dan rotasi untuk menciptakan gerakan yang mulus. Robot akan terus bergerak menggunakan vektor ini sampai diberi tindakan lain, seperti bergerak pada sudut yang berbeda, berbelok, atau berhenti.
Catatan: Metode ini mengatur nilai kecepatan gerak dan putar secara langsung, sehingga tidak menggunakan set_move_velocity atau set_turn_velocity.
Penggunaan:
robot.move_with_vectors(forward, rightward, rotation)
Parameter |
Keterangan |
|---|---|
|
Kecepatan robot sepanjang sumbu y, dari -100% hingga 100%. Nilai negatif menggerakkan robot ke belakang dan nilai positif menggerakkannya ke depan. |
|
Kecepatan robot sepanjang sumbu x, dari -100% hingga 100%. Nilai negatif menggerakkan robot ke kiri dan nilai positif menggerakkannya ke kanan. |
|
Kecepatan putar robot, dari -100% hingga 100%. Nilai negatif memutar robot berlawanan arah jarum jam dan nilai positif memutarnya searah jarum jam. |
# Move at 15°
robot.move_with_vectors(48.3, 12.95, 0)
wait(2, SECONDS)
robot.stop_all_movement()
# Move at 45° while turning counterclockwise.
robot.move_with_vectors(50, 50, -30)
wait(2, SECONDS)
robot.stop_all_movement()
# Scaling movement using the controller joystick
while True:
# Move forward (and backwards) slower than axis1 input
forward = controller.axis1.position() * 0.7
# Move right (and left) faster than axis2 input
rightward = controller.axis2.position() * 1.5
robot.move_with_vectors(forward, rightward, 0)
wait(5, MSEC)
turn#
Perintah turn akan memutar robot ke kiri atau ke kanan selamanya. Robot akan terus berputar hingga diberi perintah lain, seperti bergerak atau berhenti.
Penggunaan:
robot.turn(direction, velocity, units)
Parameter |
Keterangan |
|---|---|
|
Arah putaran robot: |
|
Opsional. Kecepatan putar dari 0% hingga 100% saat menggunakan |
|
Opsional. Satuan kecepatan: |
# Turn left, then stop.
robot.turn(LEFT)
wait(1, SECONDS)
robot.stop_all_movement()
# Turn left quickly, turn right slowly, then stop.
robot.turn(LEFT, 80)
wait(2, SECONDS)
robot.turn(RIGHT, 20, PERCENT)
wait(3, SECONDS)
robot.stop_all_movement()
turn_for#
Perintah turn_for memutar robot ke kiri atau ke kanan sejumlah derajat tertentu. Putaran tersebut relatif terhadap arah yang sedang dihadapi robot. Proyek akan menunggu hingga robot selesai berputar sebelum menjalankan baris kode berikutnya.
Penggunaan:
robot.turn_for(direction, angle, velocity, units, wait)
Parameter |
Keterangan |
|---|---|
|
Arah putaran robot: |
|
Jumlah derajat putaran robot, berkisar dari -360 hingga 360 derajat. Ini bisa berupa bilangan bulat atau desimal (float). |
|
Opsional. Kecepatan putar dari 0% hingga 100% saat menggunakan |
|
Opsional. Satuan kecepatan: |
|
Opsional. |
# Turn left, then turn around to the right.
robot.turn_for(LEFT, 90)
robot.turn_for(RIGHT, 180)
# Turn left quickly, then turn right slowly.
robot.turn_for(LEFT, 90, 100)
robot.turn_for(RIGHT, 180, 15, PERCENT)
# Turn right and blink all LEDs blue.
robot.turn_for(RIGHT, 180, wait=False)
robot.led.on(ALL_LEDS, BLUE)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, BLUE)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
turn_to#
Heading adalah arah yang dihadapi robot, diukur dalam derajat. Perintah turn_to memutar robot untuk menghadap heading tertentu. Robot akan berbelok melalui jalur terpendek untuk mencapai heading target.
Arah awal pergerakan robot adalah 0 derajat.
Proyek ini akan menunggu hingga robot selesai berputar sebelum menjalankan baris kode berikutnya.
Penggunaan:
robot.turn_to(heading, velocity, units, wait)
Parameter |
Keterangan |
|---|---|
|
Arah haluan yang harus dihadapi robot, dari -360 hingga 360 derajat. |
|
Opsional. Kecepatan putar dari 0% hingga 100% saat menggunakan |
|
Opsional. Satuan kecepatan: |
|
Opsional. |
# Turn to face each cardinal directions.
robot.turn_to(90)
wait(2, SECONDS)
robot.turn_to(180)
wait(2, SECONDS)
robot.turn_to(270)
wait(2, SECONDS)
robot.turn_to(0)
# Turn to face backward slowly, then face forward quickly.
robot.turn_to(180, 25)
wait(1, SECONDS)
robot.turn_to(0, 90, PERCENT)
# Turn around quickly and blink all LEDs green.
robot.turn_to(180, 100, wait=False)
robot.led.on(ALL_LEDS, GREEN)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, GREEN)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
stop_all_movement#
stop_all_movement menghentikan semua pergerakan robot.
Penggunaan:
robot.stop_all_movement()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
# Turn right, then stop moving
robot.turn(RIGHT)
wait(1, SECONDS)
robot.stop_all_movement()
Mutator#
set_move_velocity#
set_move_velocity memberi tahu robot seberapa cepat 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.
Kecepatan gerak 100% setara dengan 200 milimeter per detik.
Penggunaan:
robot.set_move_velocity(velocity, units)
Parameter |
Keterangan |
|---|---|
|
Kecepatan untuk bergerak dari 0% hingga 100% saat menggunakan |
|
Opsional. Satuan kecepatan: |
# Move forward at the default velocity,
robot.set_move_velocity(50)
robot.move_for(100, 0)
wait(1, SECONDS)
# Move slower than the default velocity
robot.set_move_velocity(20)
robot.move_for(100, 0)
wait(1, SECONDS)
# Move faster than the default velocity
robot.set_move_velocity(100)
robot.move_for(100, 0)
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 berputar pada kecepatan 50% (75 derajat per detik) secara default.
Penggunaan:
robot.set_turn_velocity(velocity, units)
Parameter |
Keterangan |
|---|---|
|
Kecepatan untuk berbelok dari 0% hingga 100% saat menggunakan |
|
Opsional. Satuan kecepatan: |
# Turn around at default velocity
robot.set_turn_velocity(50)
robot.turn_for(RIGHT, 180)
wait(1, SECONDS)
# Turn around slower than the default velocity
robot.set_turn_velocity(20)
robot.turn_for(RIGHT, 180)
wait(1, SECONDS)
# Turn around faster than the default velocity
robot.set_turn_velocity(100)
robot.turn_for(RIGHT, 180)
set_xy_position#
set_xy_position mengubah posisi x dan y robot saat ini ke nilai baru.
Sebagai contoh, jika robot telah menjauh dari titik awalnya, mengatur x menjadi 0 dan y menjadi 0 akan menjadikan lokasi robot saat ini sebagai posisi 0, 0 yang baru. Kemudian robot dapat melacak posisi selanjutnya berdasarkan nilai baru tersebut.
Penggunaan:
robot.set_xy_position(x, y)
Parameter |
Keterangan |
|---|---|
|
Nilai posisi x yang akan diatur untuk robot, dalam mm. Nilai ini dapat berupa bilangan bulat atau desimal (float). |
|
Nilai posisi y yang akan diatur untuk robot, dalam mm. Nilai ini dapat berupa bilangan bulat atau desimal (float). |
# Set the robot's current position
# Move forward and print the new coordinate
robot.set_xy_position(100, 50)
robot.move_for(150, 0)
robot.screen.print("X:", robot.get_x_position())
robot.screen.next_row()
robot.screen.print("Y:", robot.get_y_position())
Pencari#
get_x_position#
get_x_position mengembalikan koordinat x robot saat ini dalam milimeter.
Pada awal proyek, posisi x robot diatur ke 0. Posisi x berubah saat robot bergerak ke kiri atau ke kanan dan dapat diatur menggunakan metode set_xy_position.
Penggunaan:
robot.get_x_position()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
# Print the start and end x-value
# of the robot's position after moving
robot.screen.print("Start X:", robot.get_x_position())
robot.move_for(200, 90)
robot.screen.next_row()
robot.screen.print("End X:", robot.get_x_position())
get_y_position#
get_y_position mengembalikan koordinat y robot saat ini dalam milimeter.
Pada awal proyek, posisi y robot diatur ke 0. Posisi y berubah saat robot bergerak maju atau mundur dan dapat diatur menggunakan metode set_xy_position.
Penggunaan:
robot.get_y_position()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
# Print the start and end y-value
# of the robot's position after moving
robot.screen.print("Start Y:", robot.get_y_position())
robot.move_for(200, 0)
robot.screen.next_row()
robot.screen.print("End Y:", robot.get_y_position())
is_move_active#
is_move_active mengembalikan nilai Boolean yang menunjukkan apakah robot sedang bergerak. Ini dapat digunakan untuk mengontrol waktu perilaku lain berdasarkan pergerakan robot.
True— Robot itu bergerak.False— Robot tidak bergerak.
Metode ini bekerja bersama dengan metode Motion yang memiliki parameter wait , seperti move_for.
Penggunaan:
robot.is_move_active()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
# Blink all the LEDs when the robot is moving.
robot.move_for(200, 0, wait=False)
while robot.is_move_active():
robot.led.on(ALL_LEDS, ORANGE)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, CYAN)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
is_turn_active#
is_turn_active mengembalikan nilai Boolean yang menunjukkan apakah robot sedang berbelok. Ini dapat digunakan untuk mengontrol pengaturan waktu perilaku lain berdasarkan pergerakan robot.
True— Robot itu sedang berputar.False— Robot tidak berbelok.
Metode ini bekerja bersama dengan metode Motion yang memiliki parameter wait , seperti turn_for dan turn_to.
Penggunaan:
robot.is_turn_active()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
# Blink all the LEDs while the robot is turning
robot.turn_for(RIGHT, 180, wait=False)
while robot.is_turn_active():
robot.led.on(ALL_LEDS, GREEN)
wait(0.5, SECONDS)
robot.led.on(ALL_LEDS, CYAN)
wait(0.5, SECONDS)
robot.led.off(ALL_LEDS)
is_stopped#
is_stopped mengembalikan nilai Boolean yang menunjukkan apakah robot tidak bergerak maupun berbelok. Ini dapat digunakan untuk mengontrol waktu perilaku lain berdasarkan pergerakan robot.
True— Robot tidak bergerak atau berbelok.False— Robot sedang bergerak atau berbelok.
Penggunaan:
robot.is_stopped()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
# Blink all the LEDs while the robot is moving or turning
def light_show():
# Flash LEDs while the robot is moving or turning
while not robot.is_stopped():
robot.led.on(ALL_LEDS, GREEN)
wait(.5, SECONDS)
robot.led.on(ALL_LEDS, PURPLE)
wait(.5, SECONDS)
robot.led.off(ALL_LEDS)
robot.move_for(200, 0, wait=False)
light_show()
robot.turn_for(RIGHT, 180, wait=False)
light_show()