บทที่ 3: การเพิ่มเซ็นเซอร์ดวงตาลง
ในบทเรียนก่อนหน้านี้เซ็นเซอร์ระยะทางถูกใช้เพื่อตรวจสอบว่าหุ่นยนต์ 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

-
เพิ่มความคิดเห็นเพื่อสังเกตว่าลูป ในขณะที่ จะถูกใช้กับเซ็นเซอร์ 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 จะไม่ได้รับแจ้งว่าจะทำอย่างไรเมื่อตรวจพบสีแดงดังนั้นจึงยังคงขับรถต่อไปและในที่สุดก็ตกลงมาจากสนามเด็กเล่น

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