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

direction

Arah pergerakan robot: FORWARD atau REVERSE.

# 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

direction

Arah pergerakan robot: FORWARD atau REVERSE.

distance

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

unit

Satuan jarak: MM (milimeter) atau STEPS (satu kotak pada bidang 123).

# 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

direction

Arah pergerakan robot: FORWARD atau REVERSE.

# 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

direction

Arah putaran robot: LEFT atau RIGHT.

# 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

direction

Arah putaran robot: LEFT atau RIGHT.

degrees

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

heading

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

time

Jumlah waktu yang diberikan untuk suatu pergerakan. Ini bisa berupa bilangan bulat atau desimal.

unit

Satuan waktu: MSEC atau SECONDS.

# 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

heading

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())