Skip to main content

บทที่ 3: อินพุตเซ็นเซอร์หลายตัว

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

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

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

มุมมองด้านข้างของหุ่นยนต์ VR บนสนามเด็กเล่น Crasher Castle Crasher ผลักชิ้นส่วนของปราสาทออกไปด้านข้างและกำลังจะขับออกจากขอบ

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

บล็อกการตรวจจับสี VEXcode VR อ่านว่า Down Eye ตรวจจับสีแดง?
  • โหลด โป รเจกต์ Unit9Lesson2 จากบทเรียนก่อนหน้า
โครงการหน่วยการเรียนรู้ที่ 9 บทเรียนที่ 2 โปรเจกต์เริ่มต้นด้วยบล็อค When started ที่มีบล็อคตลอดไปติดอยู่ ภายในบล็อค FOREVER เป็นบล็อค If then ที่มีระยะห่างด้านหน้าพบวัตถุเป็นพารามิเตอร์ สาขา If then มีความคิดเห็นที่อ่าน Knock over the building found using the Distance Sensor and a Drive forward block. สาขาอื่นๆมีความคิดเห็นว่า Turn เพื่อค้นหาอาคารโดยใช้เซ็นเซอร์ระยะทางและบล็อกเลี้ยวขวา
  • เปลี่ยนชื่อ โครงการUnit9Lesson3
กล่องชื่อโครงการที่อยู่ตรงกลางของ VEXcode VR Toolbar ที่เน้นด้วยกล่องสีแดงทางด้านซ้ายของปุ่มเลือกสนามเด็กเล่น ชื่อโครงการอ่านหน่วยที่ 9 บทเรียนที่ 3
  • จำเป็นต้องมีการปิดกั้นเพื่อตรวจสอบเซ็นเซอร์ดวงตาลงอย่างต่อเนื่อง หุ่นยนต์ VR จะต้องทำพฤติกรรมเหล่านี้ซ้ำจนกว่า Down Eye Sensor จะตรวจพบสีแดง ก่อนอื่นให้ลบบล็อค [Forever] ออก
ภาพรวมของการลบบล็อก Forever ออกจากโครงการ โปรเจกต์ใหม่จะย้ายจากบล็อกเมื่อเริ่มต้นไปยังบล็อก If then else โดยไม่มีการวนซ้ำตลอดไป
  • เพิ่มบล็อค [ทำซ้ำจนกว่า]
ภาพรวมของการเพิ่มการทำซ้ำจนกว่าจะบล็อครอบทั้งหมดของบล็อค If then else โปรเจกต์ใหม่เริ่มต้นด้วยบล็อกเมื่อเริ่มต้นจากนั้นให้ทำซ้ำจนกว่าบล็อกจะเปิดพารามิเตอร์ ภายใน C ของ Repeat until block is the If then else block.
  • เพิ่ม <Color sensing> บล็อกภายในบล็อก [ทำซ้ำจนกว่า] และตั้งค่าพารามิเตอร์เป็น ‘DownEye' ตรวจพบ ‘สีแดง’
โครงการเดียวกันกับ Down Eye ตรวจจับการตั้งค่าสีแดงเป็นพารามิเตอร์ของการทำซ้ำจนกว่าจะปิดกั้น

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

แผนภาพของการไหลของโครงการหากมีการใช้บล็อกรอจนกว่าจะถูกใช้แทนการทำซ้ำจนกว่าจะวนซ้ำ โครงการจะรอจนกว่าจะมีการบล็อกจนกว่าจะมีการรายงานว่าเงื่อนไขเป็นจริงและจากนั้นจะย้ายไปยังบล็อค If then else

โดยการใช้บล็อก [ทำซ้ำจนกว่า] เงื่อนไข [ถ้าเป็นเช่นนั้น] จะถูกตรวจสอบและดำเนินการอย่างต่อเนื่อง

แผนภาพของการไหลของโครงการที่มีบล็อค Repeat Until แสดงให้เห็นว่าเงื่อนไขของบล็อค If then else ได้รับการตรวจสอบอย่างต่อเนื่องและดำเนินการตามวัตถุที่พบ (จริง) หรือไม่พบ (เท็จ)
  • เพิ่มความคิดเห็นเพื่อทราบวัตถุประสงค์ของการใช้บล็อก [ทำซ้ำจนกว่า]
โครงการเดียวกันกับที่สร้างขึ้นก่อนหน้านี้โดยมีการเพิ่มบล็อกความคิดเห็นระหว่างบล็อกเริ่มต้นเมื่อใดและทำซ้ำจนกว่าบล็อก ความคิดเห็นมีข้อความว่า 'มองหาสิ่งปลูกสร้างจนกว่าจะตรวจพบขอบสีแดง'
  • เปิด Dynamic Castle Crasher Playground และดำเนินโครงการ
  • เมื่อโครงการนี้ทำงานหุ่นยนต์ VR จะขับเคลื่อนไปยังวัตถุที่ตรวจพบและเลี้ยวขวาเป็นอย่างอื่น อย่างไรก็ตามแม้ว่า Down Eye Sensor กำลังมองหาขอบสีแดงแต่หุ่นยนต์ VR จะไม่ได้รับแจ้งว่าจะทำอย่างไรเมื่อตรวจพบสีแดงดังนั้นจึงยังคงขับรถต่อไปและในที่สุดก็ตกลงมาจากสนามเด็กเล่น

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

เมื่อตรงตามเงื่อนไขของบล็อก [ทำซ้ำจนกว่า] แล้วโปรเจกต์โฟลว์จะดำเนินการออกจากบล็อก [ทำซ้ำจนกว่า]

เลือกปุ่ม ถัดไป เพื่อดำเนินการกับบทเรียนส่วนที่เหลือนี้ต่อไป