บทเรียนที่ 1: เซ็นเซอร์ระยะทางคืออะไร?
ในบทเรียนนี้คุณจะได้เรียนรู้ว่าเซ็นเซอร์ระยะทางคืออะไรและทำไมคุณถึงใช้เซ็นเซอร์ระยะทางกับหุ่นยนต์ VR นอกจากนี้คุณยังจะได้เรียนรู้วิธีการทำงานของเซ็นเซอร์ระยะทาง และวิธีการใช้เซ็นเซอร์ระยะทางในโครงการ VEXcode VR Python
ผลการเรียนรู้
- ระบุว่าเซ็นเซอร์ระยะทางรายงานระยะห่างระหว่างตัวเซ็น เซอร์และวัตถุที่ใกล้ที่สุด
- ระบุว่าเซ็นเซอร์ระยะทางกำหนดระยะทางโดยใช้เวลาที่ชีพจรของแสงเลเซอร์จะสะท้อนออกจาก วัตถุและกลับไปที่เซ็นเซอร์
- ระบุว่าคำ found_object รายงานค่าบูลีน หากเซ็นเซอร์ระยะห่างพบวัตถุหรือไม่
- ระบุว่าคำสั่ง get_distance รายงานระยะห่างของวัตถุที่ใกล้ที่สุดจากเซ็นเซอร์เป็นมิลลิเมตร (มม.) หรือนิ้ว
- อธิบายว่าเหตุใดจึงต้องใช้เซ็นเซอร์ระยะทางในโครงการ
เซ็นเซอร์ระยะทาง
เซ็นเซอร์ระยะทางสามารถตรวจจับได้ว่ามีวัตถุอยู่ด้านหน้าของ VR Robot หรือไม่และถ้าเป็นเช่นนั้นวัตถุนั้นอยู่ห่างจากเซ็นเซอร์ระยะทางเท่าใด สิ่งนี้จะเป็นประโยชน์ในการนำทางเขาวงกตโดยไม่ต้องชนกำแพงอย่างต่อเนื่องเพื่อหลีกเลี่ยงวัตถุหรือขับรถไปยังวัตถุหรือกำแพงในสนามเด็กเล่น
ในหน่วยนี้คุณจะใช้เซ็นเซอร์วัดระยะทางซึ่งเป็นเซ็นเซอร์ที่ใช้พัลส์ของแสงเลเซอร์เพื่อตรวจจับวัตถุ เซ็นเซอร์ระยะทางรายงานระยะห่างระหว่างด้านหน้าของเซ็นเซอร์ระยะทางบนหุ่นยนต์ VR และวัตถุที่ใกล้ที่สุด เซ็นเซอร์ระยะห่างอยู่ในดวงตาด้านหน้าบนหุ่นยนต์ VR เช่นเดียวกับเซ็นเซอร์กันชนหุ่นยนต์ VR สามารถใช้ข้อมูลจากเซ็นเซอร์ระยะทางเพื่อตัดสินใจได้

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

คำสั่งวัตถุที่พบในระยะทาง
เซ็นเซอร์ระยะทางสามารถใช้เพื่อตรวจจับว่ามีวัตถุ (เช่นผนัง) อยู่ด้านหน้าหรือไม่ จากนั้นข้อมูลนี้สามารถนำไปใช้ในโครงการเพื่อให้หุ่นยนต์ VR สามารถตัดสินใจได้เมื่อเซ็นเซอร์ระยะทางตรวจพบวัตถุ
ใช้คำสั่ง found_object ในโครงการ Python เพื่อตรวจสอบสภาพของเซ็นเซอร์ระยะทาง คำสั่ง found_object จะส่งคืนค่าบูลีนของ True หรือ False ขึ้นอยู่กับว่าเซ็นเซอร์ตรวจพบวัตถุหรือไม่
- found_object ส่งกลับค่า True เมื่อเซ็นเซอร์ระยะทางตรวจพบวัตถุหรือพื้นผิวภายในขอบเขตการมองเห็นและภายใน 3000 มม. ของเซ็นเซอร์
- found_object ส่งกลับค่า False เมื่อเซ็นเซอร์ระยะทางไม่ตรวจจับวัตถุหรือพื้นผิวภายใน 3000 มม.
คำสั่ง found_object มักใช้กับโครงสร้างการควบคุม เช่น ลูป while เพื่อให้หุ่นยนต์ VR สามารถใช้ข้อมูลจากเซ็นเซอร์ระยะห่างในการตัดสินใจได้
เมื่อใช้คำสั่ง found_object ในโปรเจ็กต์ ควรระบุเซ็นเซอร์ระยะทางที่กำลังใช้ ใน Wall Maze Playgroundจะมีเพียงเซ็นเซอร์วัดระยะด้านหน้าเท่านั้นที่ใช้งานได้บน VR Robot เมื่อลากคำสั่ง found_object จาก Toolbox ไปยังโปรเจ็กต์ คำสั่ง found_object จะระบุเซ็นเซอร์วัดระยะที่ใช้งานอยู่โดยอัตโนมัติ ดังที่แสดงที่นี่ ในคลิปวิดีโอด้านล่าง คำสั่ง found_object จะถูกเลือกในกล่องเครื่องมือ แล้วลากเข้าไปในพื้นที่ทำงาน เมื่อปรากฏในโครงการคำสั่งจะปรากฏขึ้นพร้อมกับอุปกรณ์ที่เขียนเป็น "FRONT_DISTANCE" โดยอัตโนมัติ
รับคำสั่งระยะทาง
เซ็นเซอร์ระยะทางยังสามารถรายงานระยะห่างของวัตถุและใช้ค่านั้นเพื่อตัดสินใจได้ คำสั่ง get_distance คืนระยะทางตัวเลข ของวัตถุที่ใกล้ที่สุดจากด้านหน้าของหุ่นยนต์ VR
เลือกว่าจะรายงานระยะทาง เป็นมิลลิเมตร (มม.) หรือนิ้ว โดยตั้งค่าพารามิเตอร์เป็น "MM" หรือ "นิ้ว"
คำสั่ง get_distance สามารถใช้ร่วมกับคำสั่งอื่นๆ ได้ เช่น ลูป while ในโปรเจ็กต์เพื่อสั่งให้หุ่นยนต์ VR ขับออกไป (หรือเข้าหา) วัตถุในระยะทางที่กำหนด หรือให้ดำเนินการบางอย่างเมื่อรายงานระยะทางที่กำหนด
เมื่อใช้คำสั่ง get_distance ในโปรเจ็กต์ ควรระบุเซ็นเซอร์ระยะทางที่ใช้ ใน Wall Maze Playgroundจะมีเพียงเซ็นเซอร์วัดระยะด้านหน้าเท่านั้นที่ใช้งานได้บน VR Robot เมื่อลากคำสั่ง get_distance จาก Toolbox ไปยังโปรเจ็กต์ คำสั่ง get_distance จะระบุเซ็นเซอร์วัดระยะที่ใช้งานอยู่โดยอัตโนมัติ ดังที่แสดงที่นี่ ในคลิปวิดีโอด้านล่าง เลือกคำสั่ง get_distance ในกล่องเครื่องมือ แล้วลากเข้าไปในพื้นที่ทำงาน เมื่อปรากฏในโครงการคำสั่งจะปรากฏขึ้นพร้อมกับอุปกรณ์ที่เขียนเป็น "FRONT_DISTANCE" โดยอัตโนมัติ
เซ็นเซอร์ระยะทางและปัญหาเขาวงกตติดผนัง
เมื่อนึกถึงปัญหากำแพงเขาวงกตเป้าหมายคือการให้หุ่นยนต์ VR ขับเคลื่อนในขณะที่มันอยู่ไกลจากกำแพง เมื่อหุ่นยนต์ VR เข้าใกล้กำแพงหุ่นยนต์จะต้องหยุดหรือหมุนโดยไม่แตะกำแพงเพื่อผ่านเขาวงกตต่อไป การใช้เซ็นเซอร์ระยะทางจะช่วยให้หุ่นยนต์ VR สามารถขับเคลื่อนไปยังวัตถุได้โดยไม่ต้องสัมผัส
ในตัวอย่างวิดีโอคลิปต่อไปนี้หุ่นยนต์ VR จะขับเคลื่อนไปข้างหน้าในขณะที่เซ็นเซอร์ระยะทางรายงานว่ามันอยู่ ห่างจากวัตถุมากกว่า 50 มิลลิเมตร เมื่ออยู่ ห่างออกไปไม่ถึง 50 มิลลิเมตรหุ่นยนต์ VR จะหยุดขับ สังเกตว่าหุ่นยนต์ VR ไม่ได้สัมผัสกับผนัง
คุณจะสังเกตเห็นว่าแดชบอร์ดจะแสดงค่าของเซ็นเซอร์ระยะทางที่กำลังรายงานแบบเรียลไทม์ในขณะที่โครงการกำลังดำเนินการอยู่ เมื่อค่า มากกว่า 50 มิลลิเมตรหุ่นยนต์ VR จะยังคงขับเคลื่อนไปข้างหน้า
เมื่อเซ็นเซอร์ระยะทางรายงานค่า น้อยกว่า 50 มิลลิเมตรหุ่นยนต์ VR จะอยู่ใกล้ผนังโดยไม่ต้องสัมผัสและหยุดการขับขี่
ในตัวอย่างนี้ คำสั่ง get_distance จะถูกใช้ร่วมกับตัวดำเนินการเปรียบเทียบเพื่อส่งคืนค่าบูลีน ในลูป คุณจะได้เรียนรู้เพิ่มเติมเกี่ยว กับตัวดำเนินการมากกว่า>>() และน้อยกว่า () ในหน่วยนี้