บทเรียนที่ 3: เมื่อตรวจพบสีแดง
ไม่มีคำสั่งที่จะบอกหุ่นยนต์ VR ว่าจะทำอย่างไรเมื่อตรวจพบสีแดง เพื่อหลีกเลี่ยงขอบสีแดงหุ่นยนต์ VR ควรย้อนกลับและหมุนเมื่อตรวจพบสีแดงเช่นเดียวกับในวิดีโอนี้
-
เพิ่มความคิดเห็นในตอนท้ายของลูปขณะ ที่ เพื่อระบุสิ่งที่ควรเกิดขึ้นเมื่อเซ็นเซอร์ดวงตาลงตรวจพบขอบสีแดง ตอนนี้โปรเจกต์ของคุณควรมีลักษณะดังนี้:
def main (): # มองหาอาคารในขณะที่ตรวจไม่พบขอบสีแดง ในขณะที่ไม่ได้ down_eye.detect (สีแดง): # เซ็นเซอร์ระยะทางตรวจพบปราสาทหรือไม่? หาก front_distance.found_object (): # Crash castle detected by Distance Sensor drivetrain.drive (FORWARD) else: # Turn to find a castle using the Distance Sensor drivetrain.turn (RIGHT) wait (5, MSEC) # Reverse and turn when red border detected -
เพิ่ม drive_for และ turn_for คำสั่งใต้ความคิดเห็นเพื่อให้ VR Robot สามารถย้อนกลับและหมุนได้เมื่อ Down Eye Sensor ตรวจพบสีแดง
def main (): # มองหาอาคารในขณะที่ตรวจไม่พบขอบสีแดง ในขณะที่ไม่ได้ down_eye.detect (สีแดง): # เซ็นเซอร์ระยะทางตรวจพบปราสาทหรือไม่? หาก front_distance.found_object (): # Crash castle detected by Distance Sensor drivetrain.drive ( forward) else: # Turn to find a castle using the Distance Sensor drivetrain.turn (RIGHT) wait (5, msec) # Reverse and turn when red border detected drivetrain.drive_for (REVERSE, 300, MM) drivetrain.turn_for (RIGHT, 90, DEGREES) - เปิด Dynamic Castle Crasher Playground หากยังไม่เปิดและดำเนินโครงการ หุ่นยนต์ VR ทำงานตามที่คุณตั้งใจหรือไม่?
- เมื่อโครงการนี้ดำเนินการมีสองเงื่อนไขที่ตรวจสอบแล้ว ประการแรกคือสภาวะที่เซนเซอร์ตรวจจับตาลงตรวจจับสีแดงภายในลูป ขณะที่ โปรดสังเกตว่ากระแสข้อมูลของโครงการจะเคลื่อนไปยังสภาวะถัดไปของวัตถุที่ถูกตรวจจับ เท่านั้น หากเซนเซอร์ตรวจจับตาลงไม่เห็นสีแดง หากเซนเซอร์ตรวจจับแสงสีแดง โปรเจ็กต์จะข้ามคำสั่ง if else และข้ามไปที่การขับรถถอยหลังและการเลี้ยว

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

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

การเพิ่มอนันต์ ขณะ วนซ้ำ
-
ไม่มีที่สิ้นสุดใน ขณะที่ ลูปเป็นสิ่งจำเป็นเพื่อให้พฤติกรรมทำซ้ำบนลูป ลากหรือพิมพ์ ลูปขณะ ที่ ด้านบนของโครงการและตั้งเงื่อนไขเป็น True เพื่อสร้างลูปที่ไม่มีที่สิ้นสุด จากนั้นคัดลอกและวางรหัสก่อนหน้าภายในอนันต์ใน ขณะที่ วนซ้ำ ตรวจสอบให้แน่ใจว่าคำสั่งถูกเยื้องอย่างถูกต้องภายใต้ส่วนหัวที่ถูกต้องมิฉะนั้นโครงการอาจไม่ทำงานตามที่คาดไว้ ตอนนี้โปรเจกต์ของคุณควรมีลักษณะดังนี้:
def main (): while True: # มองหาอาคารในขณะที่ตรวจไม่พบขอบสีแดง ในขณะที่ไม่ได้ down_eye.detect (สีแดง): # เซ็นเซอร์ระยะทางตรวจพบปราสาทหรือไม่? หาก front_distance.found_object (): # Crash castle detected by Distance Sensor drivetrain.drive ( forward) else: # Turn to find a castle using the Distance Sensor drivetrain.turn (RIGHT) wait (5, msec) # Reverse and turn when red border detected drivetrain.drive_for (REVERSE, 300, MM) drivetrain.turn_for (RIGHT, 90, DEGREES) - เปิด Dynamic Castle Crasher Playground หากยังไม่เปิดและดำเนินโครงการ หุ่นยนต์ VR ทำงานตามที่คุณตั้งใจหรือไม่?
-
เมื่อโครงการนี้ทำงานหุ่นยนต์ VR จะขับไปยังปราสาทที่ตรวจพบและเลี้ยวขวาหากไม่มีการรายงานปราสาท เมื่อ Down Eye Sensor ตรวจพบสีแดงหุ่นยนต์ VR จะขับในทิศทางย้อนกลับเลี้ยวและขับต่อไปยังปราสาทอื่น
