Skip to main content

บทเรียนที่ 1: เซ็นเซอร์ระยะทางคืออะไร?

ในบทเรียนนี้คุณจะได้เรียนรู้ว่าเซ็นเซอร์ระยะทางคืออะไรและทำไมคุณถึงใช้เซ็นเซอร์ระยะทางกับหุ่นยนต์ VR นอกจากนี้คุณยังจะได้เรียนรู้วิธีการทำงานของเซ็นเซอร์ระยะทาง และวิธีการใช้เซ็นเซอร์ระยะทางในโครงการ VEXcode VR Python

ผลการเรียนรู้

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

เซ็นเซอร์ระยะทาง

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

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

มุมมองด้านหน้าของหุ่นยนต์ VR พร้อมเซ็นเซอร์ระยะทางที่กึ่งกลางด้านหน้าของหุ่นยนต์ที่เน้นด้วยกล่องสีแดง

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

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

คำสั่งวัตถุที่พบในระยะทาง

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

ใช้คำสั่ง found_object ในโครงการ Python เพื่อตรวจสอบสภาพของเซ็นเซอร์ระยะทาง คำสั่ง found_object จะส่งคืนค่าบูลีนของ True หรือ False ขึ้นอยู่กับว่าเซ็นเซอร์ตรวจพบวัตถุหรือไม่

คำสั่ง VEXcode VR Python Distance found object อ่านค่า distance dot found underscore object ()

  • 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" หรือ "นิ้ว"

VEXcode VR Python รับคำสั่งระยะทางที่เขียนสองครั้ง - บรรทัดแรกแสดงคำสั่งที่มีการตั้งค่าพารามิเตอร์เป็นมิลลิเมตรบรรทัดที่สองแสดงคำสั่งที่มีการตั้งค่าพารามิเตอร์เป็นนิ้ว

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

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

ในตัวอย่างนี้ คำสั่ง get_distance  จะถูกใช้ร่วมกับตัวดำเนินการเปรียบเทียบเพื่อส่งคืนค่าบูลีน ในลูป คุณจะได้เรียนรู้เพิ่มเติมเกี่ยว กับตัวดำเนินการมากกว่า>>() และน้อยกว่า () ในหน่วยนี้

คำถาม

โปรดเลือกลิงก์ด้านล่างเพื่อเข้าถึงแบบทดสอบบทเรียน

Google Doc /.docx /.pdf