Lompat ke isi utama

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

Menambahkan Sensor Jarak ke Proyek

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

Dalam Pelajaran ini, Sensor Jarak akan digunakan untuk menentukan di mana Robot VR harus berhenti melaju saat kembali ke tujuan. Sensor ini melaporkan jarak dari depan Robot VR ke objek terdekat menggunakan perintahget_distance. Untuk menggunakan Sensor Jarak guna menggerakkan Robot VR kembali ke tujuan, hal berikut perlu terjadi: 

  • Robot VR perlu berputar 180 derajat sehingga Sensor Jarak menghadap 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 Taman Bermain untuk menentukan di mana akan menjatuhkan cakram. 
  • Robot VR akan melaju ke tujuan. 
Tampilan perspektif Robot VR di Disk Mover Playground di lokasi cakram biru pertama, dengan cakram terpasang pada elektromagnet. Gawang berwarna biru berada di belakang robot.

Untuk Informasi Anda

Perintah turn_to_heading mengubah Robot VR ke arah tertentu menggunakan Sensor Gyro. Arah Robot VR akan berputar (kiri atau kanan) ditentukan berdasarkan arah Sensor Gyro saat ini. Beralih ke judul perintah VEXcode VR Python, baca drivetrain dot turn garis bawah ke garis bawah judul, dengan 90, dan Derajat dalam tanda kurung.

Perintah turn_to_headingdigunakan untuk mengarahkan Robot VR ke arah tertentu tanpa mempedulikan 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 atas-bawah Robot VR di tengah lingkaran yang mengilustrasikan judul robot. Pada posisi jam 12, sejajar dengan bagian depan robot, adalah 0 derajat. Arahnya berputar searah jarum jam mengelilingi lingkaran, dengan 90 derajat pada posisi jam 3, 180 derajat pada posisi jam 6, dan 270 derajat pada posisi jam 9.

Lanjutkan membangun proyek 

  • Teruskan mengerjakan proyekUnit8Pelajaran3.
  • Tambahkan perintah turn_to_heading setelah komentar ketiga. Atur parameter ke 180 derajat, sehingga proyek sekarang terlihat seperti ini: 

    def utama():
        #1. Berkendara ke disk pertama
        saat tidak down_eye.near_object():
            drivetrain.drive(FORWARD)
            wait(5, MSEC)
        drivetrain.stop()
    
        # 2. Ambil cakram pertama
        magnet.energize(BOOST)
    
        # 3. Berkendara ke tujuan
        drivetrain.turn_to_heading(180, DEGREES)
    
        # 4. Jatuhkan cakram ke gawang
  • Sekarang setelah Robot VR berorientasi ke sasaran, Robot VR perlu melaju kembali ke sasaran. Tambahkan loopwhile di bawah perintah turn_to_heading , sehingga bagian ketiga proyek tampak seperti ini: 

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

    Tampilan dekat sudut kiri bawah Disk Mover Playground. Robot VR memiliki cakram biru yang melekat pada elektromagnet dan menghadap sasaran biru. Pengukuran dari dinding belakang taman bermain ke tengah gawang biru diberi label 200 milimeter.
  • Robot VR harus menggerakkan saat Sensormelaporkan bahwa Robot VR berada lebih dari 200 milimeter (mm) dari dinding Taman Bermain. Tetapkan kondisi loop while ke perintah get_distance dengan parameter milimeter (mm). Kemudian tambahkan operator perbandingan ke lebih besar dari (>) 200. Bagian ketiga proyek sekarang akan terlihat seperti ini: 

    	Nomor 3 Berkendara ke 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 proyek tampak seperti ini. Ini akan menginstruksikan Robot VR untuk melaju ke depan sementara Sensor Jarak melaporkan jarak lebih dari 200 milimeter (mm).

    	Nomor 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 sasaran (200 mm dari dinding), Robot VR perlu berhenti melaju. Tambahkan perintah stopdi luar loop while , sehingga bagian ketiga proyek terlihat seperti ini:

    	Nomor 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 sasaran, ia dapat menjatuhkan cakram tersebut. Tambahkan perintah energize di bawah komentar keempat dan atur parameter ke 'DROP.' Bagian keempat proyek sekarang akan terlihat seperti ini:

    	Nomor 4. Jatuhkan cakram ke magnet tujuan
        energi(DROP)
  • Robot VR perlu bergerak mundur dalam jarak pendek untuk menghindari terguling atau bertabrakan dengan cakram apa pun. Bertabrakan dengan cakram berpotensi membuat Robot VR keluar jalur. Robot VR kemudian perlu berputar sehingga menghadap cakram sekali lagi. Tambahkan perintah berikut setelah perintah terakhir energize seperti yang ditunjukkan, untuk menginstruksikan Robot VR untuk bergerak mundur sejauh 100 milimeter (mm) dan berputar kembali ke arah 0 derajat. Pastikan perintah-perintah diindentasi dengan benar dalam proyek Anda.

    	Nomor 4. Jatuhkan cakram pada sasaran
        magnet.energize(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 melaju ke depan, mengambil cakram pertama, lalu berputar ke arah 180 derajat untuk menghadap sasaran. Robot VR kemudian menggunakan nilai dari Sensor Jarak untuk menentukan kapan harus berhenti mengemudi dan menjatuhkan cakram.

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

Alur Proyek untuk Meletakkan Disk Pertama di Sasaran

Perhatikan bagaimana loop sementara berfungsi dengan Sensor Jarak di bagian proyek ini.

  • Robot VR akan bergerak maju sementaraSensor Jarak lebih besar dari 200 milimeter dari dinding.
  • Ketika Sensor Jarak mendeteksi bahwa dinding Taman Bermain berjarak kurang dari 200 milimeter (mm), proyek akan berpindah ke perintah berikutnya di luar loop while, dan Robot VR akan berhenti melaju.
  • Proyek akan dilanjutkan, untuk memberi energipada Elektromagnet untuk menjatuhkan cakram ke sasaran.
  • Kemudian Robot VR akan berbalik dan berputar 180 derajat untuk bersiap menghadapi cakram berikutnya.

Pilih tombol Berikutnya untuk melanjutkan sisa Pelajaran ini.