Skip to main content

บทที่ 3: การเพิ่มเซ็นเซอร์ดวงตาลง

ในบทเรียนก่อนหน้านี้เซ็นเซอร์ระยะทางถูกใช้เพื่อตรวจสอบว่าหุ่นยนต์ VR ตรวจพบวัตถุหรือไม่และถ้าเป็นเช่นนั้นให้ขับไปข้างหน้าไปยังวัตถุ อย่างไรก็ตามไม่มีการใช้ค่าเซ็นเซอร์เพื่อตรวจสอบว่าหุ่นยนต์ VR อยู่ใกล้กับขอบของสนามเด็กเล่นเพื่อหยุดมันหรือไม่ การหยุดหุ่นยนต์ VR เมื่อมันอยู่ใกล้กับขอบสนามเด็กเล่นจะป้องกันไม่ให้มันขับรถออกจากด้านข้างรหัสของโครงการอยู่ทางด้านซ้ายโดยสนามเด็กเล่นจะแสดงอยู่ทางด้านขวา หุ่นยนต์ VR อยู่เหนือขอบสีแดงของสนามเด็กเล่นและหยุดเคลื่อนไหวเพื่อไม่ให้ตกจากขอบสนามเด็กเล่น

 

เช่นเดียวกับโครงการที่ทำซ้ำพฤติกรรมของการขับเคลื่อนไปข้างหน้าและการเลี้ยวตลอดไป อย่างไรก็ตามไม่มีเงื่อนไขที่จะตรวจสอบขอบสีแดงรอบๆสนามเด็กเล่น ดังนั้นหุ่นยนต์ VR สามารถตกจากสนามเด็กเล่นเมื่อขับไปข้างหน้า

มุมมองที่ทำมุมของสนามเด็กเล่น Crasher Castle แบบไดนามิกที่แสดงให้เห็นว่าหุ่นยนต์ VR กำลังผลักดันบล็อกของปราสาท หุ่นยนต์ VR หยุดทำงานก่อนที่บล็อกปราสาทจะถูกผลักออกจากขอบสนามเด็กเล่น

การเพิ่มเซ็นเซอร์ดวงตาลง

จำเป็นต้องมีเซ็นเซอร์อีกตัวเพื่อให้หุ่นยนต์ VR สามารถตรวจสอบได้ว่าอยู่ใกล้กับขอบสนามเด็กเล่นหรือไม่ เซ็นเซอร์ตรวจจับดวงตาลงสามารถใช้เพื่อตรวจสอบว่าหุ่นยนต์ VR อยู่ใกล้กับขอบสนามเด็กเล่นหรือไม่โดยการตรวจจับขอบสีแดงรอบสนามเด็กเล่นมุมมองด้านล่างของหุ่นยนต์ VR โดยเน้นเซ็นเซอร์ดวงตาลงของหุ่นยนต์ VR

พฤติกรรมของการขับไปข้างหน้าและการเลี้ยวจะต้องทำซ้ำจนกว่า Down Eye Sensor จะรายงานว่าตรวจพบขอบสีแดง ด้วยเหตุนี้ลูปอินฟินิตี้ ขณะที่ จึงสามารถแทนที่ด้วยลู ขณะที่ ที่มีเงื่อนไข ไม่ใช่ เพื่อที่จะทำซ้ำพฤติกรรมของการขับไปข้างหน้าและเลี้ยวจนกว่าจะตรงตามเงื่อนไขของการตรวจจับขอบสีแดง

  • โหลด โป รเจกต์ Unit9Lesson2 จากบทเรียนก่อนหน้า

    def main ():
    	ในขณะที่ True:
    		# เซ็นเซอร์ระยะทางตรวจจับปราสาทได้หรือไม่?
    		
    		หาก front_distance.found_object ():
    			# Crash castle detected by Distance Sensor 			drivetrain.drive
    			(FORWARD):
    		
    
    			# Turn to find a castle using the Distance Sensor 			drivetrain.turn
    			(RIGHT)
    			
    		wait (5, MSEC)
  • เปลี่ยนชื่อ โครงการUnit9Lesson3
    แถบเครื่องมือ VEXcode VR ที่แสดงชื่อโครงการที่เน้นด้วยกล่องสีแดง ชื่อโครงการอ่านหน่วยที่ 9 บทเรียนที่ 3
  • เพิ่มความคิดเห็นเพื่อสังเกตว่าลูป ในขณะที่ จะถูกใช้กับเซ็นเซอร์ Down Eye อย่างไร ตอนนี้โปรเจกต์ของคุณควรมีลักษณะดังนี้:

    def main ():
    	# มองหาอาคารในขณะที่ไม่พบขอบสีแดง
    	ในขณะที่ True:
    		# เซ็นเซอร์ระยะทางตรวจจับปราสาทหรือไม่?
    		
    		หาก front_distance.found_object ():
    			# Crash castle detected by Distance Sensor 			drivetrain.drive
    			(FORWARD):
    		
    
    			# Turn to find a castle using the Distance Sensor 			drivetrain.turn
    			(RIGHT)
    			
    		wait (5, MSEC)
  • จำเป็นต้อง ใช้คำสั่งในการตรวจสอบเซ็นเซอร์ดวงตาลงอย่างต่อเนื่อง หุ่นยนต์ VR จะต้องทำซ้ำพฤติกรรมเหล่านี้ ในขณะที่ เซ็นเซอร์ตรวจจับดวงตาด้านล่างจะ ไม่ ตรวจจับสีแดงได้  เปลี่ยนเงื่อนไขลูป while โดยใส่คำสำคัญ ไม่ใช่ ไว้ข้างหน้าเงื่อนไข ตอนนี้โปรเจกต์ของคุณควรมีลักษณะดังนี้:

    def main ():
    	# มองหาอาคารในขณะที่ไม่พบขอบสีแดง
    	ในขณะที่ไม่ใช่ True:
    		# เซ็นเซอร์ระยะทางตรวจจับปราสาทหรือไม่?
    		
    		หาก front_distance.found_object ():
    			# Crash castle detected by Distance Sensor 			drivetrain.drive
    			(FORWARD):
    		
    
    			# Turn to find a castle using the Distance Sensor 			drivetrain.turn
    			(RIGHT)
    			
    		wait (5, MSEC)
  • จากนั้น เปลี่ยนเงื่อนไขจาก True เป็น คำสั่ง down_eye.detect ตั้งค่าพารามิเตอร์เป็น 'สีแดง' ตอนนี้โปรเจกต์ของคุณควรมีลักษณะดังนี้:

    def main ():
    	# มองหาอาคารในขณะที่ตรวจไม่พบขอบสีแดง
    	ในขณะที่ไม่ได้ down_eye.detect (สีแดง):
    		# เซ็นเซอร์ระยะทางตรวจพบปราสาทหรือไม่?
    		
    		หาก front_distance.found_object ():
    			# Crash castle detected by Distance Sensor 			drivetrain.drive
    			(FORWARD):
    		
    
    			# Turn to find a castle using the Distance Sensor 			drivetrain.turn
    			(RIGHT)
    			
    		wait (5, MSEC)
  • เปิด Dynamic Castle Crasher Playground หากยังไม่เปิด และดำเนินโครงการ หุ่นยนต์ VR ทำงานตามที่คุณตั้งใจหรือไม่? 
  • เมื่อโครงการนี้ทำงานหุ่นยนต์ VR จะขับเคลื่อนไปยังวัตถุที่ตรวจพบและเลี้ยวขวาเป็นอย่างอื่น อย่างไรก็ตามแม้ว่า Down Eye Sensor กำลังมองหาขอบสีแดงแต่หุ่นยนต์ VR จะไม่ได้รับแจ้งว่าจะทำอย่างไรเมื่อตรวจพบสีแดงดังนั้นจึงยังคงขับรถต่อไปและในที่สุดก็ตกลงมาจากสนามเด็กเล่น

    มุมมองด้านบนของสนามเด็กเล่น Dynamic Castle Crasher ที่แสดงให้เห็นว่าหุ่นยนต์ VR กำลังผลักปราสาทออกจากขอบสนามเด็กเล่นแต่ก็ไม่ตกจากสนามเด็กเล่นเช่นกัน

เมื่อตรงตามเงื่อนไขของลู ขณะที่ แล้ว โฟลว์ของโปรเจ็กต์จะดำเนินการภายนอก ขณะที่ ขณะที่

เลือกปุ่ม ถัดไป เพื่อดำเนินการกับบทเรียนส่วนที่เหลือนี้ต่อไป