Skip to main content

บทเรียนที่ 1: เซ็นเซอร์กันชนคืออะไร?

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

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

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

นำไปใช้

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

แผนภาพที่แสดงวัฏจักรต่อเนื่องที่มีสามขั้นตอนที่เชื่อมต่อด้วยลูกศร ขั้นตอนแรกที่มีป้ายกำกับ Sense รวมถึงข้อความ Sense the Environment ซึ่งบ่งบอกถึงกระบวนการเริ่มต้นด้วยการรวบรวมข้อมูลจากสภาพแวดล้อมรอบข้าง การย้ายไปยังขั้นตอนต่อไปที่มีป้ายกำกับว่าคิดข้อความจะอ่านทำให้การตัดสินใจขึ้นอยู่กับข้อมูลเซ็นเซอร์จากสิ่งแวดล้อมที่แนะนำขั้นตอนนี้เกี่ยวข้องกับการประมวลผลข้อมูลที่สัมผัสได้เพื่อทำการตัดสินใจ ขั้นตอนสุดท้ายที่มีป้ายกำกับ ACT รวมถึงข้อความดำเนินการตัดสินใจแสดงให้เห็นว่าการดำเนินการจะขึ้นอยู่กับการตัดสินใจ ลูกศรสร้างลูปคืนกระบวนการกลับสู่ขั้นตอนความรู้สึกซึ่งแสดงถึงวงจรการรับรู้การคิดและการกระทำอย่างต่อเนื่อง

หุ่นยนต์ VR ใช้เซ็นเซอร์ในการรวบรวมข้อมูลจากสภาพแวดล้อม (Sense)  ตัดสินใจตามข้อมูลนี้ (Think) และเปลี่ยนข้อมูลนั้นให้เป็นคำแนะนำสำหรับพฤติกรรม (Act)

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

เซ็นเซอร์กันชน

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

หุ่นยนต์ VR มีเซ็นเซอร์กันชนสองตัวอยู่ที่ด้านหน้า

มุมมองด้านหน้าของหุ่นยนต์ VR เซ็นเซอร์กันชนสองตัวที่ด้านหน้าถูกเน้นด้วยกล่องสีแดง

เซ็นเซอร์กันชนคือสวิตช์ที่จะรายงานว่ามีการกดหรือไม่กด

  • เซ็นเซอร์กันชนจะรายงานค่าเซ็นเซอร์ของ TRUE เมื่อ กดเซ็นเซอร์กันชน
  • เซ็นเซอร์กันชนจะรายงานค่าเซ็นเซอร์ของ False เมื่อ ไม่ได้กดเซ็นเซอร์กันชน

เซ็นเซอร์กันชนจะถูกกดโดยผนังในเขาวงกตผนัง สนามเด็กเล่นหรือโดยผนังด้านนอกที่ล้อมรอบสนามเด็กเล่นอื่นๆ

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

อ่านเซ็นเซอร์กัน ชน - คุณสมบัติของหุ่นยนต์ - บทความ vex VR สำหรับข้อมูลโดยละเอียดเกี่ยวกับวิธีการทำงานของเซ็นเซอร์กันชน

คำสั่งที่มีการกดกันชน

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

ใช้คำสั่ง left_bumper.pressed และ right_bumper.pressed ในโปรเจ็กต์ข้อความเพื่อตรวจสอบสภาพของ Bumper Sensor

Left_bumper.pressed และ right_bumper.pressed เป็นคำสั่งของบูลีนรีพอร์เตอร์ที่ รายงาน True หากมี การกดกันชนและ False หาก ไม่มีการก

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

คำสั่ง left_bumper.pressed และ right_bumper.pressed โดยทั่วไป ใช้ร่วมกับโครงสร้างการควบคุม เช่น ลูป while เพื่อให้ VR Robot สามารถใช้ข้อมูลจาก Bumper Sensor ในการตัดสินใจได้ ท่านจะได้เรียนรู้เพิ่มเติมเกี่ยวกับ ขณะ วนซ้ำในบทเรียนถัดไป 

เซ็นเซอร์กันชนและปัญหาเขาวงกตติดผนัง

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

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

ไฟล์วิดีโอ

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

# เพิ่มรหัสโครงการใน "" main "
def main ():
	while not left_bumper.pressed (): 		drivetrain.drive
		(FORWARD)
		wait (5, MSEC
	) 	drivetrain.stop ()

# VR threads - ห้ามลบ
vr_thread (main ())
สนามเด็กเล่น Wall Maze ที่แสดงแดชบอร์ดของสนามเด็กเล่นและหุ่นยนต์ VR อยู่ที่ตำแหน่งเริ่มต้นโดยไม่แตะผนังใดๆ เซ็นเซอร์กันชนในแดชบอร์ดสนามเด็กเล่นจะถูกเน้นด้วยกล่องสีแดงรายงานเท็จโดยบอกว่าทั้งคู่ไม่ได้ถูกกด

เมื่อกดเซ็นเซอร์กันชนและหุ่นยนต์ VR ติดกับผนังค่าจะถูกรายงานเป็น True

# เพิ่มรหัสโครงการใน "" main "
def main ():
	while not left_bumper.pressed (): 		drivetrain.drive
		(FORWARD)
		wait (5, MSEC
	) 	drivetrain.stop ()

# VR threads - ห้ามลบ
vr_thread (main ())
Wall Maze Playground แสดงแดชบอร์ดของสนามเด็กเล่นเมื่อด้านหน้าของ VR Robot สัมผัสกับผนัง เซ็นเซอร์กันชนในแดชบอร์ดของสนามเด็กเล่นจะถูกเน้นด้วยกล่องสีแดงรายงาน True โดยบอกว่าทั้งคู่กำลังถูกกด

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

ไฟล์วิดีโอ

คำถาม

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

Google Doc /.docx /.pdf