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.

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. 
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.

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

-
Dengan menggunakan pengukuran tersebut, pusat gawang dapat ditentukan sekitar 200 milimeter (mm) dari dinding Taman Bermain.

-
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.

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.