Sistem penggerak#
Perkenalan#
Robot 123 memiliki sistem penggerak dua roda yang memungkinkannya untuk bergerak dan berbelok. Metode penggerak mengontrol bagaimana robot bergerak.
Sistem penggerak dapat mengukur jarak dengan dua cara: langkah dan mm (milimeter). Satu langkah sama dengan satu kotak pada 123 Field.
Ada banyak cara untuk memprogram sistem penggerak (drivetrain). Berikut adalah daftar semua metode pemrograman sistem penggerak:
Aksi — Gerakkan dan putar robot.
drive— Menggerakkan robot maju atau mundur selamanya.drive_for— Menggerakkan robot maju atau mundur sejauh jarak tertentu.drive_until— Menggerakkan robot maju atau mundur hingga mendeteksi objek, tabrakan, atau garis.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.stop— Menghentikan pergerakan robot.
Mutator — Sesuaikan pengaturan sistem penggerak.
set_timeout— Menentukan berapa lama robot akan mencoba menyelesaikan suatu gerakan.set_heading— Mengubah arah robot saat ini ke arah yang baru.
Pengambil — Periksa status pergerakan.
is_stopped— Mengembalikan nilai Boolean apakah robot telah berhenti bergerak.get_heading— Mengembalikan arah haluan robot saat ini dari 0 hingga 359 derajat.
Tindakan#
drive#
Perintah drive menggerakkan robot maju atau mundur tanpa henti. Robot akan terus bergerak hingga diberi perintah lain, seperti berbelok atau berhenti.
Usage:
robot.drive(direction)
Parameter |
Keterangan |
|---|---|
|
Arah pergerakan robot: |
# Drive for 2 seconds.
robot.drive(FORWARD)
wait(2, SECONDS)
robot.stop()
drive_for#
Perintah drive_for menggerakkan robot maju atau mundur sejauh jarak tertentu. Proyek akan menunggu hingga robot selesai bergerak sebelum menjalankan baris kode berikutnya.
Usage:
robot.drive_for(direction, distance, unit)
Parameter |
Keterangan |
|---|---|
|
Arah pergerakan robot: |
|
Jarak yang ditempuh robot. Ini bisa berupa bilangan bulat atau desimal. |
|
Satuan jarak: |
# Drive back and forth.
robot.drive_for(FORWARD, 3, STEPS)
robot.drive_for(REVERSE, 3, STEPS)
drive_until#
drive_until menggerakkan robot maju atau mundur hingga mendeteksi suatu objek, tabrakan, atau garis.
Usage:
robot.drive_until(direction)
Parameter |
Keterangan |
|---|---|
|
Arah pergerakan robot: |
# Reverse after a crash.
robot.drive_until(FORWARD)
robot.drive_for(REVERSE, 1, STEPS)
turn#
Perintah turn akan membuat robot berbelok ke kiri atau kanan selamanya. Robot akan terus berbelok hingga diberi perintah lain, seperti bergerak atau berhenti.
Usage:
robot.turn(direction)
Parameter |
Keterangan |
|---|---|
|
Arah putaran robot: |
# Turn for 2 seconds.
robot.turn(RIGHT)
wait(2, SECONDS)
robot.stop()
turn_for#
Perintah turn_for membelokkan robot ke kiri atau ke kanan sejumlah derajat tertentu. Proyek akan menunggu hingga robot selesai berbelok sebelum menjalankan baris kode berikutnya.
Usage:
robot.turn_for(direction, degrees)
Parameter |
Keterangan |
|---|---|
|
Arah putaran robot: |
|
Jumlah derajat putaran. Ini bisa berupa bilangan bulat atau desimal. |
# Turn left, then turn around to the right.
robot.turn_for(LEFT, 90)
robot.turn_for(RIGHT, 180)
turn_to_heading#
turn_to_heading memutar robot untuk menghadap arah tertentu dari -359 hingga 359 derajat. Robot akan berbelok melalui arah terpendek untuk mencapai arah target.
Arah awal adalah 0 derajat.
Proyek ini akan menunggu hingga robot selesai berputar sebelum menjalankan baris kode berikutnya.
Usage:
robot.turn_to_heading(heading)
Parameter |
Keterangan |
|---|---|
|
Arah haluan yang harus dihadapi robot, dari -359 hingga 359 derajat. |
# Turn to face the cardinal directions.
robot.turn_to_heading(90)
wait(2, SECONDS)
robot.turn_to_heading(180)
wait(2, SECONDS)
robot.turn_to_heading(270)
wait(2, SECONDS)
robot.turn_to_heading(0)
wait(2, SECONDS)
stop#
stop menghentikan pergerakan robot.
Usage:
robot.stop()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
# Stop driving after 4 seconds.
robot.drive(FORWARD)
wait(4, SECONDS)
robot.stop()
Mutator#
set_timeout#
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:
robot.set_timeout(time, unit)
Parameter |
Keterangan |
|---|---|
|
Jumlah waktu yang diberikan untuk suatu pergerakan. Ini bisa berupa bilangan bulat atau desimal. |
|
Satuan waktu: |
# Turn right after driving for 1 second.
robot.set_timeout(1, SECONDS)
robot.drive_for(FORWARD, 1000, MM)
robot.turn_for(RIGHT, 90)
set_heading#
Perintah set_heading mengubah arah haluan robot saat ini ke nilai haluan baru.
Sebagai contoh, jika robot telah berputar menghadap ke kanan, mengatur arah ke 0 derajat akan menjadikan posisi menghadap ke kanan tersebut sebagai 0 derajat yang baru.
Usage:
robot.set_heading(heading)
Parameter |
Keterangan |
|---|---|
|
Nilai haluan, dalam derajat, yang akan diatur untuk robot. |
# Face the new 0 degree heading.
robot.set_heading(90)
robot.turn_to_heading(0)
Pencari#
is_stopped#
is_stopped mengembalikan Boolean yang melaporkan apakah robot telah berhenti bergerak.
True— Robot telah berhenti.False— Robot masih bergerak.
Usage:
robot.is_stopped()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
# Glow blue after a crash.
robot.drive_until(FORWARD)
while True:
if robot.is_stopped():
robot.led.glow(BLUE)
else:
robot.led.glow(GREEN)
wait(0.05, SECONDS)
get_heading#
get_heading mengembalikan arah yang sedang dihadapi robot sebagai bilangan bulat dari 0 hingga 359 derajat.
Arah awal pergerakan robot adalah 0 derajat.
Usage:
robot.get_heading()
Parameter |
Keterangan |
|---|---|
Metode ini tidak memiliki parameter. |
# Display the heading after turning.
robot.turn_for(RIGHT, 450)
console.print(robot.get_heading())