Langsung ke konten utama

Pelajaran 3: Menambahkan Sensor Mata Bawah

Pada pelajaran sebelumnya, Sensor Jarak digunakan untuk menentukan apakah Robot VR mendeteksi suatu objek atau tidak, dan jika ya, maka robot akan bergerak maju menuju objek tersebut. Namun, tidak ada nilai sensor yang digunakan untuk menentukan apakah Robot VR sudah dekat dengan tepi Taman Bermain sehingga dapat dihentikan. Menghentikan Robot VR saat berada dekat tepi Taman Bermain akan mencegahnya melaju keluar dari sisi taman bermain.Kode proyek berada di sisi kiri, sedangkan area bermain (playground) ditampilkan di sisi kanan. Robot VR tersebut berada di atas garis merah taman bermain dan telah berhenti bergerak agar tidak jatuh dari tepi taman bermain.

 

Dengan kondisi seperti sekarang, proyek ini mengulangi perilaku maju dan berbelok, selamanya. Namun, tidak ada kondisi untuk memeriksa batas merah di sekitar Taman Bermain. Dengan demikian, Robot VR dapat jatuh dari area bermain saat bergerak maju.

Tampilan miring dari Dynamic Castle Crasher Playground yang menunjukkan Robot VR mendorong balok kastil. Robot VR telah berhenti sebelum balok kastil terdorong keluar dari tepi taman bermain.

Menambahkan Sensor Mata Bawah

Sensor lain diperlukan agar Robot VR dapat menentukan apakah ia sudah dekat dengan tepi Area Bermain atau belum. Sensor Down Eye dapat digunakan untuk menentukan apakah Robot VR berada dekat dengan tepi Area Bermain dengan mendeteksi batas merah di sekitar Area Bermain.Tampilan bagian bawah Robot VR, dengan Sensor Mata Bawah Robot VR yang disorot.

Perilaku mengemudi maju dan berbelok hanya perlu diulang hingga Sensor Mata Bawah melaporkan bahwa batas merah telah terdeteksi. Dengan demikian, perulangan tak terbatas while dapat digantikan dengan perulangan whiledengan kondisi not , untuk mengulangi perilaku mengemudi maju dan berbelok hingga kondisi pendeteksian batas merah terpenuhi.

  • Muat proyek Unit9Lesson2 dari Pelajaran sebelumnya.

    def main():
    	while True:
    		# Apakah Sensor Jarak mendeteksi kastil?
    		
    		Jika front_distance.found_object():
    			# Tabrakan kastil terdeteksi oleh Sensor Jarak
    			drivetrain.drive(FORWARD)
    		
    		else:
    			# Berbelok untuk mencari kastil menggunakan Sensor Jarak
    			drivetrain.turn(RIGHT)
    			
    		wait(5, MSEC)
  • Ganti nama proyek Unit9Lesson3.
    Toolbar VEXcode VR menampilkan nama-nama proyek yang disorot dengan kotak merah. Nama proyek tersebut adalah Unit 9 Pelajaran 3.
  • Tambahkan komentar untuk mencatat bagaimana loop whileakan digunakan dengan Down Eye Sensor. Proyek Anda sekarang akan terlihat seperti ini:

    def main():
    	# Cari bangunan selama batas merah tidak terdeteksi
    	while True:
    		# Apakah Sensor Jarak mendeteksi kastil?
    		
    		Jika front_distance.found_object():
    			# Tabrakan kastil terdeteksi oleh Sensor Jarak
    			drivetrain.drive(FORWARD)
    		
    		else:
    			# Berbelok untuk mencari kastil menggunakan Sensor Jarak
    			drivetrain.turn(RIGHT)
    			
    		wait(5, MSEC)
  • Diperlukan perintah untuk terus memeriksa Sensor Mata Bawah (Down Eye Sensor). Robotperlu mengulangi perilaku ini sementara Sensor Matatidak mendeteksi warna merah. Ubah kondisi perulangan while dengan menambahkan kata kunci notdi depan kondisi tersebut. Proyek Anda sekarang akan terlihat seperti ini:

    def main():
    	# Cari bangunan selama batas merah tidak terdeteksi
    	while not True:
    		# Apakah Sensor Jarak mendeteksi kastil?
    		
    		Jika front_distance.found_object():
    			# Tabrakan kastil terdeteksi oleh Sensor Jarak
    			drivetrain.drive(FORWARD)
    		
    		else:
    			# Berbelok untuk mencari kastil menggunakan Sensor Jarak
    			drivetrain.turn(RIGHT)
    			
    		wait(5, MSEC)
  • Kemudian, ubah kondisi dari True menjadi perintah down_eye.detect. Atur parameter ke 'MERAH'. Proyek Anda sekarang akan terlihat seperti ini:

    def main():
    	# Cari bangunan selama batas merah belum terdeteksi
    	while not down_eye.detect(RED):
    		# Apakah Sensor Jarak mendeteksi kastil?
    		
    		Jika front_distance.found_object():
    			# Tabrakan kastil terdeteksi oleh Sensor Jarak
    			drivetrain.drive(FORWARD)
    		
    		else:
    			# Berbelok untuk mencari kastil menggunakan Sensor Jarak
    			drivetrain.turn(RIGHT)
    			
    		wait(5, MSEC)
  • Buka Dynamic Castle Crasher Playground jika belum terbuka, lalu jalankan proyek tersebut. Apakah robot VR tersebut berperilaku sesuai dengan yang Anda inginkan? 
  • Saat proyek ini dijalankan, Robot VR akan bergerak menuju objek yang terdeteksi, dan berbelok ke kanan jika tidak terdeteksi. Namun, meskipun Sensor Mata Bawah mencari batas merah, Robot VR tidak diberi tahu apa yang harus dilakukan setelah mendeteksi warna merah, sehingga terus bergerak dan akhirnya jatuh dari Area Bermain.

    Tampilan dari atas taman bermain Dynamic Castle Crasher yang menunjukkan Robot VR mendorong kastil dari tepi taman bermain tetapi tidak ikut jatuh dari taman bermain.

Setelah kondisi loop whileterpenuhi, alur proyek akan dieksekusi di luar loop while.

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