Langsung ke konten utama

Pelajaran 2: Berkendara ke Nomor '5'

Dalam Pelajaran ini, Robot VR akan mengemudi ke angka '5' dan kembali ke angka '1' pada Peta Kisi Angka Playground!

Gambar tampak atas dari taman bermain Peta Kisi Angka. Robot VR dapat dilihat di pojok kiri bawah pada angka 1. Keterangan tambahan dapat dilihat di tengah baris bawah pada angka 5.

Perhatikan bahwa Robot VR akan bergerak sepanjang sumbu X dengan nilai X yang meningkat untuk berpindah ke angka '5' pada Peta Grid Angka Playground.

Peta grid angka berbentuk taman bermain dengan sumbu x yang tumpang tindih di tengah taman bermain. Bagian tengah setiap kotak ditandai dengan nilai sumbu X, dimulai dari -900 di sisi kiri dan meningkat sebesar 200 di setiap kotak hingga mencapai 900 di sisi kanan. Robot VR dapat dilihat pada angka 1 di pojok kiri bawah dengan panah yang menunjuk ke angka 5.

Robot VR akan bergerak ke lokasi angka '5' pada Peta Grid Angka Playground. Namun, sebelum Robot VR dapat menuju ke angka tersebut, Robot VR harus diberi tahu di mana lokasi angka tersebut berada. Dimulai dari tengah Taman Bermain, koordinat angka '5' adalah (-100, -900).

Sudut kiri bawah peta grid angka di area bermain sebelumnya dengan sumbu x dan y yang ditumpangkan. Sebuah panah ditunjukkan dari -100 pada sumbu x ke angka 5 dan dari -900 pada sumbu y ke angka 5. Robot VR masih berada di angka 1 dengan koordinat -900, -900 di bawah robot.

  • Sebagai permulaan, Robot VR harus menghadap angka '5'. Seret atau ketik perintah turn_for.
# Tambahkan kode proyek di "main"
def main():
    drivetrain.turn_for(RIGHT, 90, DEGREES)
  • Seret dalam loop while di bawah perintah turn_for. Proyek Anda seharusnya terlihat seperti ini:
# Tambahkan kode proyek di "main"
def main():
    drivetrain.turn_for(RIGHT, 90, DEGREES)

    while condition:
        wait(5, MSEC)
  • Sama seperti Unit Sensor Jarak, proyek ini akan menggunakan kondisi posisi Sensor Lokasi dengan operator perbandingan untuk menavigasi Number Grid Map Playground. Tetapkan kondisi untuk loop while ke perintah posisi pada sumbu X kurang dari -100 dalam milimeter (mm). Proyek Anda seharusnya terlihat seperti ini:
# Tambahkan kode proyek di "main"
def main():
    drivetrain.turn_for(RIGHT, 90, DEGREES)

    while location.position(X, MM) < -100:
        wait(5, MSEC)
  • Seret atau ketik perintah non-waiting drive di dalam loop while. Proyek Anda seharusnya terlihat seperti ini:
# Tambahkan kode proyek di "main"
def main():
    drivetrain.turn_for(RIGHT, 90, DEGREES)

    while location.position(X, MM) < -100:
        drivetrain.drive(FORWARD)
        wait(5, MSEC)
  • Perhatikan bahwa operator kurang dari digunakan sebagai pengganti operator lebih besar dari karena Robot VR mengemudi ke kanan dari sisi kiri Taman Bermain. Robot VR dimulai pada nilai X sebesar -900 milimeter (mm). Saat robot VR bergerak maju, nilai X meningkat, dan dengan demikian robot akan terus bergerak maju selama nilai X kurang dari -100.

Sudut kiri bawah dari peta grid angka di area bermain sebelumnya dengan sumbu x dan y yang ditumpangkan. Sebuah panah ditunjukkan dari -100 pada sumbu x ke angka 5 dan dari -900 pada sumbu y ke angka 5. Robot VR masih berada di angka 1 dengan koordinat -900, -900 di bawah robot.

Untuk Informasi Anda

Anda perlu memilih operator perbandingan mana yang akan digunakan dalam proyek Anda, tergantung pada arah yang Anda inginkan agar Robot VR bergerak di sepanjang sumbu X atau Y. Ketika Robot VR bergerak menuju nilai yang lebih besar, operator kurang dari (<) akan digunakan dengan loop while ; dan ketika Robot VR bergerak menuju nilai yang lebih kecil, operator lebih besar dari (>) akan digunakan dengan loop while .

Hal ini selaras dengan gerakan ke kiri dan ke kanan saat melihat Taman Bermain. Jika Robot VR bergerak dari kiri ke kanan atau dari bawah ke atas (nilai yang lebih besar), operator kurang dari digunakan untuk menggerakkan robot saat posisinya kurang dari dari nilai target. 

Dua tampilan dari atas ke bawah dari taman bermain peta grid angka. Pada gambar pertama, robot VR ditampilkan pada nomor 51 dengan panah yang menunjukkan bahwa robot akan bergerak ke kanan menuju nomor 60. Teks di atas berbunyi 'berkendara selagi posisi kurang dari'. Pada gambar kedua, robot VR ditampilkan pada angka 6 dengan panah yang menunjukkan bahwa robot akan bergerak ke atas menuju angka 96. Teks di atas berbunyi 'berkendara selagi posisi kurang dari'.

Jika Robot VR bergerak dari kanan ke kiri atau dari atas ke bawah (nilai yang lebih kecil), operator "lebih besar dari" digunakan untuk mengendalikan saat posisi lebih besar dari dari nilai target.

Dua tampilan dari atas ke bawah dari taman bermain peta grid angka. Pada gambar pertama, robot VR ditampilkan pada nomor 60 dengan panah yang menunjukkan bahwa robot akan bergerak ke kiri menuju nomor 51. Teks di atas berbunyi 'berkendara selagi posisi lebih besar dari'. Pada gambar kedua, robot VR ditampilkan pada angka 96 dengan panah yang menunjukkan bahwa robot akan bergerak ke bawah menuju angka 6. Teks di atas berbunyi 'berkendara selagi posisi lebih besar dari'.

Dengan menggunakan operator perbandingan, Robot VR akan bergerak ketika nilai yang dilaporkan oleh Sensor Lokasi lebih besar dari (>) atau kurang dari (<) nilai ambang batas. Dalam contoh ini, Robot VR akan bergerak ke arah positif 500 milimeter (mm) pada sumbu X. Robot VR akan bergerak ketika posisi pada sumbu X berada di mana saja antara 0 hingga positif 499. Ketika Sensor Lokasi melaporkan bahwa posisi adalah 501 atau lebih tinggi, Robot VR akan berhenti bergerak. 

# Tambahkan kode proyek di "main"
def main():
    monitor_sensor(location.position)
    drivetrain.turn_for(RIGHT, 90, DEGREES)

    while location.position(X, MM) < 500:
        drivetrain.drive(FORWARD)
        wait(5, MSEC)
    drivetrain.stop()

Perhatikan bahwa nilai yang dilaporkan oleh Sensor Lokasi bukanlah, melainkan tepat milimeter (mm). Sama seperti Sensor Jarak, operator perbandingan digunakan karena waktu yang dibutuhkan Robot VR untuk mengulangi proyek dan melaporkan nilai.

  • Seret atau ketik perintah stop di luar loop while. Proyek Anda seharusnya terlihat seperti ini:
# Tambahkan kode proyek di "main"
def main():
    drivetrain.turn_for(RIGHT, 90, DEGREES)

    while location.position(X, MM) < -100:
        drivetrain.drive(FORWARD)
        wait(5, MSEC)
    drivetrain.stop()
  • Buka Jendela Taman Bermainjika belum terbuka. PastikanNumber Grid Map Playgroundterbuka, lalu jalankan proyeknya.
  • Saksikan Robot VR mengemudi ke angka '5' di Taman Bermain Peta Kisi Angka .

Gambar tampak atas dari taman bermain Peta Kisi Angka. Robot VR dapat dilihat di bagian bawah pada angka 5.

  • Dalam proyek ini, Robot VR bergerak menuju angka '5' pada Peta Grid Angka Playground. Perulangan while digunakan agar Robot VR terus bergerak maju selama nilai X adalah kurang dari nilai X koordinat tempat angka yang ditunjukkan berada.
  • Setelah nilai X lebih besar dari -100, proyek beralih ke perintah berikutnya di luar loop, yaitu perintah stop. Karena nilai X dari angka '5' adalah -100, Robot VR akan berhenti bergerak begitu nilai X lebih besar dari -100.

Diagram alur proyek Python yang baru saja dijalankan. Panah menunjukkan bahwa robot berpindah ke loop while setelah belokan kanan 90 derajat selesai. Tanda panah siklik berada di sebelah perulangan while dengan teks yang berbunyi 'nilai x kurang dari negatif 100 mengembalikan True, Robot VR bergerak maju.' Di bawahnya terdapat panah merah dengan teks yang berbunyi 'nilai x lebih besar dari negatif 100, mengembalikan False'. Robot VR berhenti mengemudi.

Untuk Informasi Anda

Perhatikan bahwa nilai yang dilaporkan oleh Sensor Lokasi mungkin tidak tepat, melainkan antaramilimeter (mm). Sama seperti Sensor Jarak, operator perbandingan digunakan karena waktu yang dibutuhkan Robot VR untuk mengulangi proyek dan melaporkan nilai.

Dasbor di jendela Playground diperbesar untuk menunjukkan nilai x yang dilaporkan oleh sensor Lokasi adalah negatif 90 milimeter.

Di VEXcode VR Python, Anda dapat menggunakan operator perbandingan lebih besar dariatau sama dengan(>=) atau kurang dari atau sama dengan(<=) dalam proyek Anda untuk mendapatkan presisi tambahan dalam pergerakan Anda.

# Tambahkan kode proyek di "main"
def main():
    drivetrain.turn_for(RIGHT, 90, DEGREES)

    while location.position(X, MM) <= -100:
        drivetrain.drive(FORWARD)
        wait(5, MSEC)
    drivetrain.stop()

Tergantung pada kecepatan Robot VR, dan seberapa cepat proyek berulang melalui loop, Anda mungkin melihat bahwa Robot VR dapat berhenti lebih dekat ke nilai ambang batas ketika operator "atau sama dengan" (<= atau >=) ditambahkan.

Pilih tombol Berikutnya untuk melanjutkan ke bagian selanjutnya dari Pelajaran ini.