Lompat ke isi utama

Pelajaran 3: Saat Warna Merah Terdeteksi

Tidak ada perintah untuk memberi tahu Robot VR apa yang harus dilakukan setelah mendeteksi warna merah. Untuk menghindari batas merah, Robot VR harus berbalik dan berputar setelah mendeteksi warna merah, seperti yang dilakukannya dalam video ini.

Berkas video
  • Tambahkan komentar di akhir loopwhileuntuk menunjukkan apa yang seharusnya terjadi saat Sensor Mata Bawah mendeteksi batas merah. Proyek Anda sekarang akan terlihat seperti ini:

    def main():
    	# Cari bangunan saat batas merah tidak terdeteksi
    	while not down_eye.detect(RED):
    		# Apakah Sensor Jarak mendeteksi kastil?
    		
    		jika front_distance.found_object():
    			# Kastil tabrakan terdeteksi oleh Sensor Jarak
    			drivetrain.drive(MAJU)
    		
    		yang lain:
    			# Belok untuk menemukan kastil menggunakan Sensor Jarak
    			drivetrain.turn(KANAN)
    			
    		tunggu(5, MSEC)
    		
    	# Mundur dan belok saat batas merah terdeteksi
  • Tambahkan perintah drive_fordan turn_for di bawah komentar untuk memungkinkan Robot VR mundur dan berputar setelah Sensor Mata Bawah mendeteksi warna merah.

    def main():
    	# Cari bangunan saat batas merah tidak terdeteksi
    	while not down_eye.detect(RED):
    		# Apakah Sensor Jarak mendeteksi kastil?
    		
    		if front_distance.found_object():
    			# Kastil tabrakan terdeteksi oleh Sensor Jarak
    			drivetrain.drive(MAJU)
    		
    		else:
    			# Belok untuk menemukan kastil menggunakan Sensor Jarak
    			drivetrain.turn(KANAN)
    			
    		wait(5, MSEC)
    		
    	# Mundur dan belok saat batas merah terdeteksi
    	drivetrain.drive_for(BALIK, 300, MM)
    	drivetrain.turn_for(KANAN, 90, DERAJAT)
  • Buka Dynamic Castle Crasher Playgroundjika belum terbuka, dan jalankan proyeknya. Apakah Robot VR berperilaku seperti yang Anda inginkan?
  • Saat proyek ini dijalankan, ada dua kondisi yang diperiksa. Yang pertama adalah kondisi Sensor Mata Bawah mendeteksi warna merah di dalam loop sedangkan. Perhatikan bahwa alur proyek berpindah ke kondisi berikutnya dari suatu objek yang terdeteksi HANYA jika Sensor Mata Bawah tidak melihat warna merah. Jika Sensor Mata Bawah mendeteksi warna merah, alur proyek akan melewati pernyataan jika tidak dan langsung beralih ke gerakan mundur dan berbelok.
    Kode proyek Python pelajaran ini dengan diagram yang menunjukkan alur proyek di sampingnya. Bunyinya Kondisi pertama diperiksa: Sensor Mata Bawah mendeteksi warna merah dalam oranye, yang menunjukkan awal putaran. Ada putaran panah Merah saat Sensor Mata Bawah mendeteksi warna merah, yang akan melaporkan Benar dan Proyek akan keluar dari tampilan berulang. Jika melaporkan salah, kode akan berpindah ke pernyataan if then dan terus berulang hingga Sensor Mata Bawah mendeteksi warna merah.
 
  • Kondisi kedua yang diperiksa adalah pernyataanif else. Sementara Sensor Mata Bawah tidak mendeteksi warna merah, proyek akan berlanjut dalam loopsementarauntuk memeriksa kondisi Sensor Jarak. Robot VR akan menggunakan data dari Sensor Jarak untuk membuat keputusan untuk melaju maju atau berbelok kanan. Kode proyek Python pelajaran ini dengan diagram yang menunjukkan alur proyek di sampingnya. Bunyinya Kondisi kedua diperiksa: Sensor Jarak mendeteksi objek. Ini menunjukkan apa yang terjadi jika kondisi kedua dicentang, dan jika hasilnya benar, Robot VR akan melaju ke depan, dan jika kondisi kedua hasilnya salah, Robot VR akan berbelok ke kanan.
  • Namun, setelah Sensor Mata Bawah mendeteksi warna merah, Robot VR akan mundur, berbelok, lalu berhenti karena itulah akhir alur proyek. Tidak ada loop yang digunakan untuk mengulang perilaku tersebut lagi.

    Tampilan atas ke bawah dari taman bermain Dynamic Castle Crashed yang menunjukkan beberapa kastil roboh, dengan robot VR berbalik arah setelah melewati batas merah, sehingga menghadap ke tengah taman bermain lagi.

Menambahkan loop tak terhingga while

  • Perulangan tak terhingga whilediperlukan agar perilaku dapat berulang pada suatu perulangan. Tarik atau ketik loop while di bagian atas proyek, dan atur kondisi ke True untuk membuat loop tak terbatas. Lalu, salin dan tempel kode sebelumnya di dalam loop tak terhingga while. Pastikan perintah-perintah diindentasi dengan benar di bawah header yang benar, jika tidak, proyek mungkin tidak berjalan seperti yang diharapkan. Proyek Anda sekarang akan terlihat seperti ini:

    def main():
    
    	while True:
    		# Cari bangunan saat batas merah tidak terdeteksi
    		while not down_eye.detect(RED):
    			# Apakah Sensor Jarak mendeteksi kastil?
    		
    			if front_distance.found_object():
    				# Kastil tabrakan terdeteksi oleh Sensor Jarak
    				drivetrain.drive(MAJU)
    		
    			else:
    				# Belok untuk menemukan kastil menggunakan Sensor Jarak
    				drivetrain.turn(KANAN)
    			
    			wait(5, MSEC)
    		
    		# Mundur dan belok saat batas merah terdeteksi
    		drivetrain.drive_for(BALIK, 300, MM)
    		drivetrain.turn_for(KANAN, 90, DERAJAT)
    
  • Buka Dynamic Castle Crasher Playgroundjika belum terbuka, dan jalankan proyeknya. Apakah Robot VR berfungsi seperti yang Anda inginkan? 
  • Saat proyek ini dijalankan, Robot VR akan melaju menuju kastil yang terdeteksi dan berbelok kanan jika tidak ada kastil yang dilaporkan. Setelah Sensor Mata Bawah mendeteksi warna merah, Robot VR melaju mundur, berbelok, dan terus melaju menuju kastil lain.

    Tampilan atas ke bawah dari taman bermain Dynamic Castle Crasher yang menunjukkan bahwa Robot VR telah menjatuhkan beberapa kastil di taman bermain dan sekarang bergerak menuju kastil terakhir yang masih berdiri.

Pertanyaan

Silakan pilih tautan di bawah untuk mengakses kuis pelajaran.

Google Doc / .docx / .pdf