การใช้เซ็นเซอร์วัดระยะทางใน VEXcode VR

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


เซ็นเซอร์วัดระยะบนหุ่นยนต์ VR

ตาด้านหน้าลง

Distance Sensor คือเซ็นเซอร์ที่รายงานระยะห่างระหว่าง VR Robot และวัตถุทึบที่ใกล้ที่สุด

VR จากบนลงล่าง

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

Screen_Shot_2021-12-10_at_2.45.39_PM.png

ความกว้างของระยะการมองเห็นของเซ็นเซอร์วัดระยะจะเปลี่ยนไปเมื่อมองไกลจากด้านหน้าของหุ่นยนต์ VR:

  • เซ็นเซอร์สามารถตรวจจับวัตถุภายในขอบเขตการมองเห็น 10 องศา เมื่อค้นหาวัตถุที่อยู่ห่างออกไปน้อยกว่า 1,000 มิลลิเมตร (~ 39 นิ้ว)
  • เซ็นเซอร์สามารถตรวจจับวัตถุภายในขอบเขตการมองเห็น 5 องศา เมื่อค้นหาวัตถุที่อยู่ห่างออกไประหว่าง 1,000 มิลลิเมตร (~ 39 นิ้ว) ถึง 2,000 มิลลิเมตร (~ 78 นิ้ว)
  • เซ็นเซอร์สามารถตรวจจับวัตถุภายในขอบเขตการมองเห็น 2 องศา เมื่อค้นหาวัตถุที่อยู่ห่างออกไปมากกว่า 2,000 มิลลิเมตร (~ 78 นิ้ว)

การใช้งานทั่วไปของเซ็นเซอร์วัดระยะ

VR จากบนลงล่าง

Distance Sensor สามารถตรวจจับได้ว่ามีวัตถุอยู่ด้านหน้า VR Robot หรือไม่ สามารถใช้เพื่อหลีกเลี่ยงสิ่งกีดขวางได้

บล็อก VEXcode VR สนามเด็กเล่น Wall Maze
ตัวอย่างระยะหน้า.png ระยะทางสนามเด็กเล่น 1.jpeg
VEXcode VR หลาม
def main():
ในขณะที่ไม่ใช่ front_distance.get_distance(MM) < 50:
drivetrain.drive(FORWARD)
รอ (20, MSEC)
drivetrain.stop()

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

บล็อก VEXcode VR สนามเด็กเล่น Castle Crasher แบบไดนามิก
ระยะทางตลอดไป example.png

ระยะทางสนามเด็กเล่น 2.jpeg

VEXcode VR หลาม
def main ():
ในขณะที่ True:
ถ้า front_distance.found_object ():
drivetrain.drive (FORWARD)
อื่น ๆ :
drivetrain.turn (ขวา)
รอ (20, MSEC)

ในตัวอย่างนี้ หุ่นยนต์ VR จะขับเคลื่อนไปข้างหน้าหาก Distance Sensor พบวัตถุ หากตรวจไม่พบวัตถุ หุ่นยนต์ VR จะเลี้ยวขวาและตรวจหาวัตถุต่อไป

หมายเหตุ: ตัวอย่างนี้จะค้นหาสิ่งปลูกสร้างแรก แต่จำเป็นต้องปรับปรุงเพื่อหลีกเลี่ยงการตกจากโต๊ะ


การใช้เซ็นเซอร์วัดระยะกับบล็อก VEXcode VR

เซ็นเซอร์วัดระยะ.png

บล็อกที่ใช้กับเซ็นเซอร์วัดระยะสามารถพบได้ในหมวดการตรวจจับ

<ระยะทางที่พบวัตถุ> บล็อก

ระยะทางที่พบวัตถุ block.png

เซ็นเซอร์วัดระยะตรวจจับว่ามีวัตถุอยู่ด้านหน้าหรือไม่โดยใช้บล็อก <ระยะทางที่พบวัตถุ> Distance Sensor สามารถตรวจจับวัตถุหรือพื้นผิวภายในระยะ 3000 มม. (~ 118 นิ้ว) จากเซ็นเซอร์

รอจนกระทั่งพบระยะทาง object.png

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

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับบล็อกบูลีน ดูบทความนี้

ระยะทางที่พบ object.png

ค่าของบล็อก <Distance found object> คือบล็อกบูลีนที่รายงานเป็นจริงเมื่อเซ็นเซอร์วัดระยะอยู่ใกล้กับวัตถุ และรายงานเท็จเมื่อไม่ได้อยู่ใกล้วัตถุเพียงพอ

จริง หรือ เท็จ จะถูกรายงานและปรากฏใน Monitor Console 

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ Monitor Console ดูบทความนี้

(ระยะห่างจาก) บล็อก

ระยะทางแบบเลื่อนลง.png

การใช้บล็อก (ระยะห่างจาก) เซ็นเซอร์วัดระยะสามารถรายงานระยะห่างของวัตถุที่ใกล้ที่สุดในหน่วยมิลลิเมตร (มม.) หรือนิ้ว

ระยะทางมากกว่า.png

บล็อก (ระยะทางจาก) จะรายงานค่าตัวเลขและพอดีกับบล็อกใดๆ ที่มีช่องว่างวงรี

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับการบล็อกผู้รายงาน ดูบทความนี้ 

ระยะห่างด้านหน้าเป็น มม. หรือเป็น.png

ค่าของบล็อก (ระยะทางจาก) ในหน่วยมิลลิเมตร (มม.) หรือนิ้วสามารถแสดงบน Monitor Console ใน VEXcode VR 

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ Monitor Console ดูบทความนี้


การใช้เซ็นเซอร์วัดระยะทางใน VEXcode VR Python

Screen_Shot_2021-11-11_at_9.49.14_AM.png

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

Screen_Shot_2021-12-10_at_2.26.12_PM.png

จากนั้น ค้นหาหมวดหมู่การตรวจจับในกล่องเครื่องมือและค้นหาคำสั่ง found_object และ get_distance เหล่านี้เป็นฟังก์ชันที่รายงานค่าบูลีนหรือค่าตัวเลขเกี่ยวกับเซ็นเซอร์

Screen_Shot_2021-12-10_at_2.38.31_PM.png

หากต้องการเพิ่มคำสั่งลงในโปรเจ็กต์ของคุณ คุณสามารถลากคำสั่งเข้ามาจากกล่องเครื่องมือ หรือพิมพ์คำสั่งในพื้นที่ทำงานโดยใช้ฟังก์ชันเติมข้อความอัตโนมัติ

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการเติมข้อความอัตโนมัติใน VEXcode VR ด้วย Python ดูบทความนี้

def main(): 
ในขณะที่ไม่ใช่ front_distance.get_distance(MM) < 50:
drivetrain.drive(FORWARD)
รอ (20, MSEC)
drivetrain.stop()

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

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

def หลัก ():
monitor_sensor ("front_distance.get_distance", "front_distance.found_object")

ค่าของคำสั่งget_distance และfound_object สามารถแสดงบน Monitor Console ใน VEXcode VR หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการใช้ Monitor Console ใน VEXcode VR Python ดูบทความนี้

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: