Skip to main content

บทเรียนที่ 3: การใช้รายงานผลป้อนกลับของเซ็นเซอร์เพื่อวางดิสก์ในเป้าหมาย

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

บทที่ 3 ใช้การตอบรับของเซ็นเซอร์ที่รายงานเพื่อกำหนดตำแหน่งที่หุ่นยนต์ VR ควรหยุดขับเมื่อกลับไปที่เป้าหมาย ในการใช้ <Eye Sensor near object> บล็อกก่อนหน้านี้ในบทเรียนนี้ไม่จำเป็นต้องทราบระยะห่างจากเป้าหมายไปยังแต่ละดิสก์

VR Robot บน Disk Mover Playground ที่มีดิสก์สีน้ำเงินตัวแรกติดอยู่กับแม่เหล็กไฟฟ้า

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

  • ทำงานต่อ ใน โครงการ Unit8Lesson3
  • เซ็นเซอร์วัดระยะทางวัดระยะทางจากด้านหน้าของหุ่นยนต์ VR ไปยังวัตถุที่ใกล้ที่สุด ด้วยเหตุนี้หุ่นยนต์ VR จะต้องหมุนรอบ 180 องศาก่อนที่จะขับกลับไปยังเป้าหมายสีน้ำเงิน
  • หุ่นยนต์ VR จะใช้เซ็นเซอร์ระยะทางกับผนังด้านหลังของสนามเด็กเล่นเพื่อกำหนดตำแหน่งที่จะวางดิสก์ ด้วยเหตุนี้หุ่นยนต์ VR จะต้องหมุนรอบ 180 องศาก่อนที่จะขับกลับไปยังเป้าหมายสีน้ำเงิน
  • บล็อก [Turn to heading] สามารถใช้เพื่อให้แน่ใจว่าหุ่นยนต์ VR หันไปยังหัวข้อที่ถูกต้อง

    VEXcode VR หันไปที่บล็อกหัวเรื่องจากกล่องเครื่องมือ บล็อกมีข้อความว่า 'หันไปทางทิศทาง 90 องศา'

การใช้สวิทช์บล็อก 

นี่คือบล็อค Switch [turn to heading] คุณสามารถปรับเปลี่ยนระดับของเทิร์นได้โดยการเปลี่ยนค่าตัวเลขในวงเล็บ โปรดจำไว้ว่าต้องเขียนตัวเลขก่อนหน่วยการวัด (องศา) คั่นด้วยเครื่องหมายจุลภาค 

VEXcode VR เปิดไปที่หัวเรื่องสลับบล็อกด้วยคำสั่ง Python ที่อ่าน drivetrain dot turn_to_heading (90, DEGREES)

สำหรับข้อมูลของคุณ

บล็อก [Turn to heading] จะเปลี่ยนหุ่นยนต์ VR ไปยังหัวข้อเฉพาะโดยใช้เซ็นเซอร์ Gyro ทิศทางที่หุ่นยนต์ VR จะหมุน (ซ้ายหรือขวา) จะถูกกำหนดตามส่วนหัวปัจจุบันของเซ็นเซอร์ Gyro บล็อก [Turn to heading] ใช้เพื่อนำหุ่นยนต์ VR ไปยังหัวข้อเฉพาะโดยไม่คำนึงถึงตำแหน่งของหุ่นยนต์ VR ในขณะที่คุณหยิบหรือวางดิสก์หุ่นยนต์ VR อาจถูกเคาะออกนอกเส้นทาง การใช้บล็อก [Turn to heading] ช่วยให้มั่นใจได้ว่าหุ่นยนต์ VR จะหมุนไปยังตำแหน่งสัมบูรณ์แทนที่จะเป็นตำแหน่งที่สัมพันธ์กับหัวข้อก่อนหน้า

แผนภาพของตำแหน่งหัวเรื่องเป็นองศาของหุ่นยนต์ VR มีวงกลมที่มีมุมมองด้านบนของหุ่นยนต์ VR อยู่ตรงกลางโดยด้านหน้าของหุ่นยนต์จะหันขึ้นไปทางส่วนหัว 0 องศา ตามเข็มนาฬิกาหัวเรื่อง 90 องศาที่ตามมาแต่ละอันถูกทำเครื่องหมายเป็น 90 องศา, 180 องศาและ 270 องศา
  • เพิ่มบล็อก [Turn to heading] ใต้ความคิดเห็นที่สาม

    โครงการ VEXcode VR เดียวกันกับหน้าก่อนหน้านี้โดยหันไปที่บล็อกหัวเรื่องที่เพิ่มไว้ด้านล่างความคิดเห็นที่สาม ขณะนี้โปรเจกต์อ่านว่าเมื่อเริ่มต้นให้แสดงความคิดเห็นขับรถไปยังดิสก์สีน้ำเงินแรกด้วยการทำซ้ำจนกว่าตาลงใกล้วัตถุให้ขับรถไปข้างหน้าจากนั้นหยุดขับรถ ถัดไปคือความคิดเห็นในการเลือกดิสก์สีน้ำเงินตัวแรกที่มีแม่เหล็กไฟฟ้าให้พลังงานเพื่อเพิ่มบล็อก ความคิดเห็นที่สามอ่านไดรฟ์ไปยังเป้าหมายสีน้ำเงินและหันไปทางบล็อก 90 องศาถัดไป
  • ตั้งบล็อค [Turn to heading] ไว้ที่ 180 องศา

    โครงการ VEXcode VR เดียวกันกับพารามิเตอร์ของบล็อก Turn to heading เปลี่ยนเป็น 180 องศา ตอนนี้ส่วนความคิดเห็นที่สามของโปรเจกต์เขียนว่า Drive to the blue goal, Turn to heading 180 degrees.
  • ตอนนี้หุ่นยนต์ VR อยู่ในตำแหน่งเริ่มต้นแล้วหุ่นยนต์ VR จะต้องขับกลับไปที่เป้าหมายสีน้ำเงิน เพิ่มบล็อค [ทำซ้ำจนกว่า] ใต้บล็อค [Turn to heading]

    โครงการ VEXcode VR เดียวกันที่มีการทำซ้ำจนกว่าบล็อกจะถูกเพิ่มหลังจากบล็อก Turn to heading พารามิเตอร์ของการทำซ้ำจนกว่าบล็อกจะว่างเปล่า
  • ในการขับรถกลับไปยังเป้าหมายสีน้ำเงินหุ่นยนต์ VR จะใช้ข้อมูลจากเซ็นเซอร์ระยะทางเพื่อกำหนดว่าเมื่อใดที่หุ่นยนต์ VR อยู่ภายในเป้าหมายสีน้ำเงิน ตามที่กล่าวไว้ในบทเรียนก่อนหน้าตารางสี่เหลี่ยมแต่ละตารางบน Disk Mover Playground มี ขนาด 200 มิลลิเมตร (มม.) 200 มิลลิเมตร (มม.)

    มุมมองระยะใกล้บนลงล่างของมุมซ้ายของสนามเด็กเล่น Disk Mover ที่มีขนาดของตารางสี่เหลี่ยมบนสนามเด็กเล่นที่แสดงว่าสูง 200 มม. กว้าง 200 มม.
  • โดยใช้การวัดเหล่านั้นศูนย์กลางของเป้าหมายสีน้ำเงินสามารถกำหนดได้ประมาณ 200 มิลลิเมตร (มม.) จากผนังของสนามเด็กเล่น Using those measurements, the center of the blue goal can be determined to approximately 200 mm (mm) from the wall of the Playground.

    มุมมองระยะใกล้บนลงล่างของประตูสีฟ้าที่มุมซ้ายล่างของ Disk Mover Playground โดยมีขนาดโดยประมาณจากผนังถึงศูนย์กลางของเป้าหมายที่มีป้ายกำกับว่า 200 มม.
  • หุ่นยนต์ VR ควรหยุดขับเมื่อเซ็นเซอร์ระยะทางรายงานว่าหุ่นยนต์ VR อยู่ห่างจากผนังของสนามเด็กเล่นน้อยกว่า 200 มิลลิเมตร (มม.) เพิ่มบล็อกต่อไปนี้ลงในบล็อก [ทำซ้ำจนกว่า]

    โครงการ VEXcode VR เดียวกันที่มีบล็อกน้อยกว่าผู้ปฏิบัติงานที่มีระยะทางด้านหน้าของรังเป็นมิลลิเมตรในพารามิเตอร์ของการทำซ้ำจนกว่าบล็อก ตอนนี้ส่วนความคิดเห็นที่สามของโครงการอ่านไดรฟ์ไปยังเป้าหมายสีน้ำเงินเลี้ยวไปที่ทิศทาง 180 องศาทำซ้ำจนกว่าระยะด้านหน้าหน่วยเป็นมม. น้อยกว่า 50
  • เปลี่ยนพารามิเตอร์ใน <Less than> บล็อกเป็น 200

    โครงการเดียวกันที่มีพารามิเตอร์ของบล็อกน้อยกว่าเปลี่ยนเป็น 200 ตอนนี้ทำซ้ำจนกว่าบล็อกจะเขียนว่า 'ทำซ้ำจนกว่าระยะด้านหน้าในหน่วยมม. น้อยกว่า 200'
  • เพิ่มบล็อค [Drive] ลงในบล็อค [Repeat until] นี้ สิ่งนี้จะสั่งให้หุ่นยนต์ VR ขับไปข้างหน้าจนกว่าเซ็นเซอร์ระยะทางจะรายงานระยะทางน้อยกว่า 200 มิลลิเมตร (มม.)

    โปรเจกต์เดียวกันกับบล็อกไดรฟ์จะเพิ่มภายใน C ของการทำซ้ำจนกว่าจะบล็อก ส่วนความคิดเห็นที่สามของโครงการตอนนี้อ่านว่าไดรฟ์ไปยังเป้าหมายสีน้ำเงิน; หันไปทาง 180 องศาทำซ้ำจนกว่าระยะด้านหน้าหน่วยเป็นมม. น้อยกว่า 200 แล้วขับไปข้างหน้า
  • เมื่อหุ่นยนต์ VR ถึงเป้าหมายสีน้ำเงิน (200 มม. จากผนัง) หุ่นยนต์ VR จะต้องหยุดการขับขี่ เพิ่มบล็อค [หยุดขับ] ใต้บล็อค [ทำซ้ำจนกว่าจะถึง]

    โปรเจกต์เดียวกันกับบล็อกหยุดขับที่เพิ่มเข้ามาหลังจากทำซ้ำจนกระทั่งบล็อก ส่วนความคิดเห็นที่สามตอนนี้อ่านไดรฟ์ไปยังเป้าหมายสีน้ำเงิน; ทำซ้ำจนกว่าระยะทางด้านหน้าเป็นมิลลิเมตรน้อยกว่า 200, ขับไปข้างหน้า; แล้วหยุดขับรถ
  • ตอนนี้หุ่นยนต์ VR หยุดทำงานในเป้าหมายสีน้ำเงินแล้วมันสามารถวางดิสก์ได้ เพิ่มบล็อก [Energize Electromagnet] ใต้ความคิดเห็นที่สี่และตั้งค่าบล็อกเป็น ‘drop’

    โปรเจกต์เดียวกันกับบล็อก Energize Electromagnet ที่มีการตั้งค่าพารามิเตอร์ให้ลดลงเพิ่มหลังจากความคิดเห็นที่สี่ ส่วนความคิดเห็นที่สี่ตอนนี้อ่านวางดิสก์สีน้ำเงินในเป้าหมายสีน้ำเงินเพิ่มพลังให้กับแม่เหล็กที่จะวาง
  • หุ่นยนต์ VR จะต้องขับรถในระยะทางสั้นๆเพื่อหลีกเลี่ยงการชนหรือชนกับดิสก์ใดๆ การชนกับดิสก์อาจทำให้หุ่นยนต์ VR หลุดออกจากเส้นทางได้ เพิ่มบล็อกต่อไปนี้เพื่อสั่งให้หุ่นยนต์ VR ขับรถย้อนกลับเป็นเวลา 100 มิลลิเมตร (มม.) และหันกลับไปที่หัวเรื่อง 0 องศา

    โปรเจกต์เดียวกันกับ Drive for block และ Turn to heading block ที่เพิ่มลงในด้านล่างของกองซ้อน ตอนนี้ความคิดเห็นที่สี่อ่านว่าวางดิสก์สีน้ำเงินในเป้าหมายสีน้ำเงิน; เพิ่มพลังแม่เหล็กให้หล่น; ขับรถย้อนกลับไป 100 มม. หันไปทาง 0 องศา
  • เปิด Disk Mover Playground หากยังไม่ได้เปิดและเรียกใช้โครงการ
  • หุ่นยนต์ VR ขับเคลื่อนไปข้างหน้าหยิบดิสก์ตัวแรกขึ้นมาจากนั้นหันไปที่ส่วนหัว 180 องศาเพื่อเผชิญกับเป้าหมายสีน้ำเงิน จากนั้นหุ่นยนต์ VR จะใช้ค่าจากเซ็นเซอร์ระยะทางเพื่อกำหนดเวลาที่จะหยุดการขับขี่และวางดิสก์สีน้ำเงิน

    มุมมองด้านข้างระยะใกล้ของ Disk Mover Playground ที่มี Blue Disk วางอยู่ในเป้าหมายสีน้ำเงินและ VR Robot หันหน้าไปทางดิสก์ที่เหลืออยู่บนสนามเด็กเล่นที่ขอบของเป้าหมายสีน้ำเงิน
  • สังเกตว่าฟังก์ชัน [ทำซ้ำจนกว่า] บล็อกที่สองในส่วนนี้ของโครงการอย่างไร
    • เมื่อเซ็นเซอร์ระยะทางบนหุ่นยนต์ VR ตรวจพบว่าผนังของสนามเด็กเล่นอยู่ห่างออกไปน้อยกว่า 200 มิลลิเมตร (มม.) โครงการจะย้ายไปยังบล็อกถัดไปในกองซ้อนด้านล่างบล็อก [ทำซ้ำจนกว่าจะถึง]
    • ในโครงการนี้นั่นหมายความว่าหุ่นยนต์ VR จะหยุดขับและปล่อยแม่เหล็กไฟฟ้าลงในเป้าหมายสีน้ำเงิน

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