Langsung ke konten utama

Pelajaran 3: Menggunakan Sensor dan Elektromagnet untuk Menempatkan Cakram di Gawang

Menambahkan Sensor Jarak ke Proyek

Pada Pelajaran 2, Robot VR bergerak mundur kembali ke titik awal untuk menurunkan cakram. Hal ini mengharuskan pengguna untuk menghitung jarak pasti yang harus ditempuh oleh Robot VR. Hal ini mungkin tidak selalu memungkinkan. Sebaliknya, Robot VR dapat menggunakan nilai sensor yang dilaporkan untuk mengambil dan menjatuhkan cakram dengan presisi yang konsisten. 

Dalam pelajaran ini, Sensor Jarak akan digunakan untuk menentukan di mana Robot VR harus berhenti bergerak saat kembali ke tujuan. Sensor ini melaporkan jarak dari bagian depan Robot VR ke objek terdekat menggunakan perintahget_distance. Untuk menggunakan Sensor Jarak guna mengarahkan Robot VR kembali ke tujuan, hal-hal berikut perlu dilakukan: 

  • Robot VR perlu berputar 180 derajat agar Sensor Jarak menghadap ke sasaran. Perintah turn_to_heading dapat digunakan untuk memastikan Robot VR berbelok ke arah yang benar.
  • Robot VR akan menggunakan Sensor Jarak dengan dinding belakang Area Bermain untuk menentukan di mana cakram akan dijatuhkan. 
  • Robot VR akan melaju menuju garis finish. 
Tampilan perspektif Robot VR di Arena Bermain Penggerak Cakram pada lokasi cakram biru pertama, dengan cakram terpasang pada elektromagnet. Gawang berwarna biru berada di belakang robot.

Untuk Informasi Anda

Perintah turn_to_heading memutar Robot VR ke arah tertentu menggunakan Sensor Gyro. Arah putaran Robot VR (kiri atau kanan) ditentukan berdasarkan arah pergerakan Sensor Giroskop saat ini. Beralih ke perintah Python VEXcode VR, membaca drivetrain dot turn underscore to underscore heading, dengan 90, dan Derajat dalam tanda kurung.

Perintah turn_to_headingdigunakan untuk mengarahkan Robot VR ke arah tertentu tanpa memperhatikan posisi Robot VR. Saat Anda mengambil atau menjatuhkan cakram, Robot VR mungkin akan terlempar dari jalurnya. Menggunakan perintah turn_to_heading memastikan bahwa Robot VR akan berbelok ke posisi absolut, bukan posisi relatif terhadap arah sebelumnya.

Tampilan dari atas robot VR di tengah lingkaran yang menggambarkan arah pergerakan robot. Pada posisi pukul 12, sejajar dengan bagian depan robot, adalah 0 derajat. Arah putarannya searah jarum jam mengelilingi lingkaran, dengan sudut 90 derajat pada posisi jam 3, 180 derajat pada posisi jam 6, dan 270 derajat pada posisi jam 9.

Lanjutkan pengembangan proyek 

  • Lanjutkan mengerjakan proyekUnit8Lesson3.
  • Tambahkan perintah turn_to_heading setelah komentar ketiga. Atur parameter menjadi 180 derajat, sehingga proyek sekarang terlihat seperti ini: 

    def main():
        #1. Drive to the first disk
        while not down_eye.near_object():
            drivetrain.drive(FORWARD)
            wait(5, MSEC)
        drivetrain.stop()
    
        # 2. Ambil disk pertama
        magnet.energize(BOOST)
    
        # 3. Berkendara menuju tujuan
        drivetrain.turn_to_heading(180, DEGREES)
    
        # 4. Masukkan cakram ke dalam gawang.
  • Setelah robot VR diarahkan ke tujuan, robot VR perlu kembali ke tujuan tersebut. Tambahkan perulanganwhile di bawah perintah turn_to_heading , sehingga bagian ketiga proyek terlihat seperti ini: 

    	# 3. Berkendara menuju tujuan
        drivetrain.turn_to_heading(180, DEGREES)
        while condition:
            wait(5, MSEC)
  • Untuk kembali ke gawang, Robot VR akan menggunakan data dari Sensor Jarak untuk menentukan kapan Robot VR berada di dalam gawang. Seperti yang dibahas pada pelajaran sebelumnya, setiap kotak grid pada Disk Mover Playground berukuran 200 milimeter (mm) x 200 milimeter (mm).Tampilan jarak dekat dari sudut kiri bawah taman bermain, menunjukkan bahwa setiap kotak dari grid 10 x 10 di lantai taman bermain berukuran 200 mm x 200 mm.
  • Dengan menggunakan pengukuran tersebut, pusat gawang dapat ditentukan berada sekitar 200 milimeter (mm) dari dinding Taman Bermain.

    Tampilan jarak dekat dari sudut kiri bawah Area Bermain Disk Mover. Robot VR tersebut memiliki cakram biru yang terpasang pada elektromagnet dan menghadap ke arah sasaran berwarna biru. Pengukuran dari dinding belakang lapangan bermain ke tengah gawang berwarna biru diberi label 200 milimeter.
  • Robot VR harus bergerak ke arah sementaraadalah nilai sensor jarak yang melaporkan bahwa Robot VR berada lebih dari 200 milimeter (mm) dari dinding area bermain. Tetapkan kondisi loop while ke perintah get_distance dengan parameter milimeter (mm). Kemudian tambahkan operator perbandingan ke lebih besar dari (>) 200. Bagian ketiga dari proyek ini sekarang seharusnya terlihat seperti ini: 

    	# 3. Berkendara menuju tujuan
        drivetrain.turn_to_heading(180, DEGREES)
        while front_distance.get_distance(MM) > 200:
            wait(5, MSEC)
  • Tambahkan perintah driveke dalam loop while ini, sehingga bagian ketiga dari proyek ini terlihat seperti ini. Ini akan menginstruksikan Robot VR untuk bergerak maju sementara Sensor Jarak melaporkan jarak lebih dari 200 milimeter (mm).

    	# 3. Berkendara menuju tujuan
        drivetrain.turn_to_heading(180, DEGREES)
        while front_distance.get_distance(MM) > 200:
            drivetrain.drive(FORWARD)
            wait(5, MSEC)
  • Setelah Robot VR mencapai tujuan (200 mm dari dinding), Robot VR perlu berhenti bergerak. Tambahkan perintah stopdi luar loop while , sehingga bagian ketiga proyek terlihat seperti ini:

    	# 3. Berkendara menuju tujuan
        drivetrain.turn_to_heading(180, DEGREES)
        while front_distance.get_distance(MM) > 200:
            drivetrain.drive(FORWARD)
            wait(5, MSEC)
        drivetrain.stop()
  • Sekarang setelah Robot VR berhenti di garis gawang, ia dapat menjatuhkan cakram. Tambahkan perintah energize di bawah komentar keempat dan atur parameternya menjadi 'DROP.' Bagian keempat dari proyek ini sekarang seharusnya terlihat seperti ini:

    	# 4. Jatuhkan cakram ke magnet tujuan
        (DROP)
  • Robot VR perlu bergerak mundur dalam jarak pendek untuk menghindari menabrak atau melukai cakram apa pun. Bertabrakan dengan cakram berpotensi membuat Robot VR keluar jalur. Robot VR tersebut kemudian perlu berputar sehingga menghadap cakram sekali lagi. Tambahkan perintah berikut setelah perintah akhir energize seperti yang ditunjukkan, untuk menginstruksikan Robot VR untuk bergerak mundur sejauh 100 milimeter (mm) dan berbalik ke arah 0 derajat. Pastikan perintah-perintah tersebut diberi indentasi dengan benar di dalam proyek Anda.

    	# 4. Jatuhkan cakram ke magnet tujuan
        (DROP)
    
    	drivetrain.drive_for(REVERSE, 100, MM)
        drivetrain.turn_to_heading(0, DEGREES)
  • Buka Disk Mover Playground jika belum terbuka dan jalankan proyeknya.
  • Robot VR bergerak maju, mengambil cakram pertama, lalu berputar 180 derajat untuk menghadap ke sasaran. Robot VR kemudian menggunakan nilai dari Sensor Jarak untuk menentukan kapan harus berhenti bergerak dan menjatuhkan cakram.

    Tampilan samping gawang biru dari Disk Mover Playground, dengan cakram biru pertama dijatuhkan ke gawang, dan Robot VR diputar dan diposisikan di depan gawang, siap untuk mengambil cakram berikutnya.

Alur Proyek untuk Menempatkan Disk Pertama di Tujuan

Perhatikan bagaimana fungsi loop while bekerja dengan Sensor Jarak di bagian proyek ini.

  • Robot VR akan bergerak maju saatSensor Jarak berada lebih dari 200 milimeter dari dinding.
  • Ketika Sensor Jarak mendeteksi bahwa dinding Taman Bermain berjarak kurang dari 200 milimeter (mm), proyek akan beralih ke perintah berikutnya di luar loop while, dan Robot VR akan berhenti bergerak.
  • Proyek ini akan berlanjut, untuk mengaktifkanElektromagnet untuk menjatuhkan cakram ke sasaran.
  • Kemudian Robot VR akan berbalik dan berputar 180 derajat untuk bersiap menghadapi cakram berikutnya.

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