Lompat ke isi utama

Pelajaran 2: Berkendara ke Nomor '5'

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

Gambar atas-bawah dari taman bermain Peta Kotak Angka. Robot VR dapat dilihat di sudut kiri bawah pada angka 1. Keterangan dapat dilihat di bagian tengah baris bawah pada angka 5.

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

Peta kotak angka di taman bermain dengan sumbu x yang dihamparkan di bagian tengah taman bermain. Pusat setiap kotak ditandai dengan nilai sumbu X, dimulai dengan -900 di sisi kiri dan meningkat 200 setiap kotak hingga 900 di sisi kanan. Robot VR dapat dilihat pada angka 1 di sudut kiri bawah dengan panah menunjuk ke angka 5.

Robot VR akan melaju ke lokasi angka '5' pada Peta Kotak Angka Playground. Akan tetapi, sebelum Robot VR dapat menavigasi ke nomor tersebut, Robot VR harus diberi tahu di mana lokasi nomor tersebut. Dimulai dari pusat Taman Bermain, koordinat angka '5' adalah (-100, -900).

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

  • Untuk memulai, Robot VR perlu menghadap angka '5'. Tarik atau ketik perintah turn_for.
# Tambahkan kode proyek di "utama"
def main():
    drivetrain.turn_for(KANAN, 90, DERAJAT)
  • Seret loop while di bawah perintah turn_for. Proyek Anda akan terlihat seperti ini:
# Tambahkan kode proyek di "utama"
def main():
    drivetrain.turn_for(KANAN, 90, DERAJAT)

    while kondisi:
        tunggu(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 sementara ke perintah posisi pada sumbu X kurang dari -100 dalam milimeter (mm). Proyek Anda akan terlihat seperti ini:
# Tambahkan kode proyek di "utama"
def main():
    drivetrain.turn_for(KANAN, 90, DERAJAT)

    while location.position(X, MM) < -100:
        wait(5, MSEC)
  • Seret atau ketik perintah drive yang tidak menunggu di dalam loop while. Proyek Anda akan terlihat seperti ini:
# Tambahkan kode proyek di "utama"
def main():
    drivetrain.turn_for(KANAN, 90, DERAJAT)

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

Sudut kiri bawah peta kotak angka taman bermain dari sebelumnya dengan sumbu x dan y yang dilapisi. Sebuah panah ditunjukkan dari negatif 100 pada sumbu x ke angka 5 dan negatif 900 pada sumbu y ke angka 5. Robot VR masih berada di angka 1 dengan koordinat negatif 900, negatif 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 sepanjang sumbu X atau Y. Bila Robot VR bergerak menuju nilai yang lebih besar, operator kurang dari (<) akan digunakan dengan perulanganwhile ; dan bila Robot VR bergerak menuju nilai yang lebih kecil, operator lebih dari (>) akan digunakan dengan perulanganwhile .

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

Dua tampilan atas-bawah dari taman bermain peta kisi Angka. Pada gambar pertama, robot VR ditunjukkan pada angka 51 dengan tanda panah yang menunjukkan robot akan bergerak ke kanan menuju angka 60. Teks di atas berbunyi 'berkendara saat posisi kurang dari'. Pada gambar kedua, robot VR ditunjukkan pada angka 6 dengan tanda panah yang menunjukkan robot akan bergerak naik hingga angka 96. Teks di atas berbunyi 'berkendara saat posisi kurang dari'.

Jika Robot VR bergerak dari kanan ke kiri atau atas ke bawah (nilai lebih kecil), operator lebih besar dari digunakan untuk menggerakkan sementara posisinya lebih besar dari nilai target.

Dua tampilan atas-bawah dari taman bermain peta kisi Angka. Pada gambar pertama, robot VR ditunjukkan pada angka 60 dengan tanda panah yang menunjukkan robot akan bergerak ke kiri menuju angka 51. Teks di atas berbunyi 'berkendara saat posisi lebih besar dari'. Pada gambar kedua, robot VR ditunjukkan pada angka 96 dengan tanda panah yang menunjukkan robot akan bergerak turun ke angka 6. Teks di atas berbunyi 'berkendara saat posisi lebih besar dari'.

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

# Tambahkan kode proyek di "utama"
def main():
    monitor_sensor(lokasi.posisi)
    drivetrain.putar_untuk(KANAN, 90, DERAJAT)

    sementara lokasi.posisi(X, MM) < 500:
        drivetrain.berkendara(MAJU)
        tunggu(5, MSEC)
    drivetrain.berhenti()

Perhatikan bahwa nilai yang dilaporkan oleh Sensor Lokasi tidaktepatnya milimeter (mm). 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 akan terlihat seperti ini:
# Tambahkan kode proyek di "utama"
def main():
    drivetrain.turn_for(KANAN, 90, DERAJAT)

    while location.position(X, MM) < -100:
        drivetrain.drive(MAJU)
        wait(5, MSEC)
    drivetrain.stop()
  • Buka Jendela Taman Bermainjika belum terbuka. PastikanNumber Grid Map Playgroundterbuka, lalu jalankan proyek.
  • Saksikan Robot VR melaju ke angka '5' pada Peta Kotak Angka Playground.

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

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

Alur proyek python yang baru saja dijalankan. Tanda panah mengindikasikan bahwa robot bergerak ke loop while setelah putaran kanan 90 derajat selesai. Panah siklik berada di samping loop while dengan teks yang berbunyi 'nilai x kurang dari negatif 100 mengembalikan True, VR Robot melaju maju.' Di bawahnya ada panah merah dengan teks bertuliskan 'nilai x lebih besar dari negatif 100, mengembalikan Salah. 'Robot VR berhenti mengemudi.'

Untuk Informasi Anda

Perhatikan bahwa nilai yang dilaporkan oleh Sensor Lokasi mungkin tidaktepatnya-100 milimeter (mm). 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 dari sensor Lokasi adalah negatif 90 milimeter.

Dalam 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 "utama"
def main():
    drivetrain.turn_for(KANAN, 90, DERAJAT)

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

Bergantung pada kecepatan Robot VR, dan seberapa cepat proyek berulang melalui putaran, Anda mungkin melihat bahwa Robot VR mampu berhenti mendekati nilai ambang batas ketika atau sama dengan (<= atau >=) ditambahkan ke operator.

Pilih tombol Berikutnya untuk melanjutkan sisa Pelajaran ini.