Skip to main content

บทเรียนที่ 2: ขับรถไปยังหมายเลข ‘5’

ในบทเรียนนี้หุ่นยนต์ VR จะขับไปที่หมายเลข ‘5’ และกลับไปที่หมายเลข ‘1’ บน Number Grid Map Playground!

มุมมองจากบนลงล่างของสนามเด็กเล่น Number Grid Map ที่มีหมายเลข 5 เน้นด้วยกล่องสีแดง หุ่นยนต์ VR เริ่มต้นที่หมายเลข 1 และสี่เหลี่ยมจัตุรัสหมายเลข 5 มีช่องว่างสี่ช่องทางด้านขวา

สังเกตว่าหุ่นยนต์ VR จะเคลื่อนที่ไปตามแกน X โดยมีค่า X เพิ่มขึ้นเพื่อย้ายไปยังหมายเลข ‘5’ บน Number Grid MapPlayground

มุมมองจากบนลงล่างของสนามเด็กเล่น Number Grid Map พร้อมช่องว่างหมายเลข 5 ที่เน้นด้วยกล่องสีดำ เส้นแสดงการวัดทั่วทั้งแกน X โดยพื้นที่แรกคือ -900 มิลลิเมตรบนแกน X และพื้นที่ถัดไปคือ -700 ยังคงนับต่อไป 200 ในแต่ละครั้ง พื้นที่ที่ห้าอยู่ที่ตำแหน่ง X -100 มิลลิเมตร

หุ่นยนต์ VR จะขับไปยังตำแหน่งของหมายเลข ‘5’ บน Number Grid MapPlayground อย่างไรก็ตามก่อนที่หุ่นยนต์ VR จะไปยังหมายเลขนั้นได้หุ่นยนต์ VR จะต้องบอกตำแหน่งของหมายเลขนั้นว่าอยู่ที่ไหน เริ่มต้นที่ศูนย์กลางของสนามเด็กเล่นพิกัดของหมายเลข ‘5’ คือ (-100, -900)

มุมมองจากบนลงล่างของสนามเด็กเล่น Number Grid Map โดยมีตัวบ่งชี้สองแกนเป็นตำแหน่งที่ห้าของที่พัก หุ่นยนต์ VR เริ่มต้นที่ -900 X และ -900 Y ในขณะที่พื้นที่ที่ห้าอยู่ที่ -100 X และ -900 Y
  • ในการเริ่มต้นหุ่นยนต์ VR จะต้องหันหน้าไปทางหมายเลข ‘5’ ลากบล็อค [Turn for] ไปยังพื้นที่ทำงาน

    VEXcode VR บล็อกโครงการที่เริ่มต้นด้วยบล็อกเมื่อเริ่มต้นตามด้วยบล็อก Turn For เพื่อเลี้ยวขวาเป็นเวลา 90 องศา
  • ลากบล็อก [ไดรฟ์] ที่ไม่ต้องรอลงในพื้นที่ทำงาน

    ความต่อเนื่องของโครงการบล็อก VEXcode VR ตอนนี้มีการเพิ่มบล็อก Drive Forward หลังจากบล็อก Turn For ตอนนี้ทั้งโครงการอ่านว่าเมื่อเริ่มต้นเลี้ยวขวา 90 องศาแล้วขับไปข้างหน้า
  • ติดบล็อค [รอจนกว่า] ใต้บล็อค [ไดรฟ์]

    ความต่อเนื่องของโครงการบล็อก VEXcode VR ขณะนี้มีการเพิ่มบล็อก Wait Until หลังจากบล็อก Drive Forward ตอนนี้ทั้งโครงการอ่านว่าเมื่อเริ่มต้นเลี้ยวขวา 90 องศาแล้วขับไปข้างหน้า สุดท้ายตอนนี้มีบล็อก Wait Until ที่มีพารามิเตอร์บูลีนว่างเปล่า
  • บล็อก [รอจนกว่า] ยอมรับเงื่อนไขบูลีน เช่นเดียวกับหน่วยเซ็นเซอร์ระยะทางโครงการนี้จะใช้เงื่อนไขในการขับรถผ่านสนามเด็กเล่น Number GridMap ลากบล็อก <Greater than> บูลีนรีพอร์เตอร์ไปยังบล็อก [รอจนกว่า]

    ความต่อเนื่องของโครงการบล็อก VEXcode VR ขณะนี้มีบล็อกที่ใหญ่กว่าแทรกอยู่ในบล็อกรอจนกว่าจะถึง ตอนนี้ทั้งโครงการอ่านว่าเมื่อเริ่มต้นเลี้ยวขวา 90 องศาแล้วขับไปข้างหน้า สุดท้ายตอนนี้มีบล็อค Wait Until ที่มีบล็อค Greater Than ที่เขียนว่า 'ว่างเปล่ามากกว่า 50'
  • โปรดทราบว่า <Greater than> บล็อกจะถูกใช้แทน <Less than> บล็อกเนื่องจากหุ่นยนต์ VR กำลังขับไปทางขวาจากด้านซ้ายของสนามเด็กเล่น หุ่นยนต์ VR เริ่มต้นที่ค่า X -900 มิลลิเมตร (มม.) เมื่อหุ่นยนต์ VR ขับเคลื่อนไปข้างหน้าค่า X จะเพิ่มขึ้น

    มุมมองจากบนลงล่างเดียวกันของสนามเด็กเล่น Number Grid Map ที่มีตัวบ่งชี้สองแกนซึ่งทำเครื่องหมายที่ตั้งของพื้นที่ที่ห้าจากก่อนหน้านี้ หุ่นยนต์ VR เริ่มต้นที่ -900 X และ -900 Y ในขณะที่พื้นที่ที่ห้าอยู่ที่ -100 X และ -900 Y
  • ลากบล็อค (ตำแหน่งของหุ่นยนต์) เข้าไป <Greater than> ในบล็อค

    ความต่อเนื่องของโครงการบล็อก VEXcode VR ขณะนี้มีบล็อกตำแหน่งของหุ่นยนต์แทรกอยู่ในบล็อกที่ยิ่งใหญ่กว่า ตอนนี้ทั้งโครงการอ่านว่าเมื่อเริ่มต้นเลี้ยวขวา 90 องศาแล้วขับไปข้างหน้า สุดท้ายรอจนกว่า X ตำแหน่งของหุ่นยนต์ในหน่วยมิลลิเมตรมากกว่า 50

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

    บล็อก (ตำแหน่งของหุ่นยนต์) เป็นบล็อกตัวรายงานตัวเลขที่รายงานตำแหน่งพิกัด X หรือ Y ของศูนย์กลางของหุ่นยนต์ VR เลือกว่าจะรายงานตำแหน่งพิกัด X หรือ Y

    ตำแหน่งของบล็อกหุ่นยนต์ที่มีเมนูแบบเลื่อนลงแกนเปิดอยู่เปลี่ยนแกนการวัดจาก X ไป Y

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

    นี่คือบล็อกสวิตช์ (ตำแหน่งของหุ่นยนต์) หากต้องการเปลี่ยนพารามิเตอร์ของบล็อก (ตำแหน่งของหุ่นยนต์) เพื่อรายงานพิกัด Y เพียงพิมพ์ "Y" สำหรับค่าพิกัดหรือเลือกคำแนะนำพิกัดที่ปรากฏ 

    ตำแหน่งของสวิตช์บล็อกของหุ่นยนต์เพื่อแสดงให้เห็นถึงคุณสมบัติที่สมบูรณ์แบบอัตโนมัติ บล็อกจะอ่านว่า 'location.position (X, MM )' และผู้ใช้จะเปลี่ยนพารามิเตอร์ X เป็น Y โดยใช้การกรอกข้อมูลอัตโนมัติ

    บล็อก (ตำแหน่งของหุ่นยนต์) สามารถรายงานค่าเป็นมิลลิเมตร (มม.) หรือนิ้ว

    ตำแหน่งของบล็อกหุ่นยนต์ที่มีเมนูแบบเลื่อนลงของหน่วยการวัดเปิดอยู่เปลี่ยนหน่วยการวัดจากมิลลิเมตรเป็นนิ้ว

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

    ตำแหน่งของสวิตช์บล็อกของหุ่นยนต์เพื่อแสดงให้เห็นถึงคุณสมบัติที่สมบูรณ์แบบอัตโนมัติ บล็อกจะอ่านว่า 'location.position (X, MM )' และผู้ใช้จะเปลี่ยนพารามิเตอร์มิลลิเมตรเป็นนิ้วโดยใช้การกรอกข้อมูลอัตโนมัติ

  • ตั้งค่าพารามิเตอร์ของ <Greater than> บล็อกเป็น -100

    ความต่อเนื่องของโครงการบล็อก VEXcode VR ตอนนี้ด้วยพารามิเตอร์ที่สองของบล็อก Greater Than เปลี่ยนจาก 50 เป็น -100 ตอนนี้ทั้งโครงการอ่านว่าเมื่อเริ่มต้นเลี้ยวขวา 90 องศาแล้วขับไปข้างหน้า สุดท้ายรอจนกว่า X ตำแหน่งของหุ่นยนต์ในหน่วยมิลลิเมตรจะมากกว่า -100
  • ลากในบล็อค [หยุดขับ] และเพิ่มลงในโปรเจกต์

    ความต่อเนื่องของโครงการบล็อก VEXcode VR ตอนนี้มีการเพิ่มบล็อกหยุดขับด้านล่างบล็อกรอจนกว่าจะถึง ตอนนี้ทั้งโครงการอ่านว่าเมื่อเริ่มต้นเลี้ยวขวา 90 องศาแล้วขับไปข้างหน้า สุดท้ายรอจนกว่า X ตำแหน่งของหุ่นยนต์ในหน่วยมิลลิเมตรมากกว่า -100 แล้วหยุดขับ
  • เปิด Number Grid Map Playground หากยังไม่ได้เปิดและเรียกใช้โครงการ
  • ดู VR Robot ขับไปที่หมายเลข ‘5’ บน Number Grid MapPlayground

    มุมมองจากบนลงล่างของสนามเด็กเล่น Number Grid Map โดยหุ่นยนต์ VR ได้ขับไปยังพื้นที่ที่ห้า
  • ในโครงการนี้หุ่นยนต์ VR จะขับไปที่หมายเลข ‘5’ บน Number Grid MapPlayground บล็อก [รอจนกว่า] จะถูกใช้เพื่อให้หุ่นยนต์ VR ยังคงขับเคลื่อนไปข้างหน้าจนกว่าค่า X จะ มาก กว่าค่า X ของพิกัดที่ระบุไว้
  • เมื่อค่า X มากกว่า -100 โปรเจกต์จะย้ายไปยังบล็อกถัดไปในสแต็กซึ่งเป็นบล็อก [หยุดขับรถ] เนื่องจากค่า X ของตัวเลข ‘5’ คือ -100 หุ่นยนต์ VR จะหยุดการขับขี่เมื่อค่า X มากกว่า -100

แผนภาพแสดงการไหลของตรรกะในโครงการ VEXcode VR Blocks โครงการเริ่มต้นด้วยการเลี้ยวขวา 90 องศาจากนั้นขับไปข้างหน้าและถือคำสั่งนั้นไว้จนกว่าตำแหน่งของตำแหน่ง X ของเซ็นเซอร์หุ่นยนต์ในหน่วยมิลลิเมตรจะมากกว่า -100 หลังจากนั้นบล็อกหยุดการขับขี่จะสิ้นสุดคำสั่ง Drive Forward

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

ในบทเรียนนี้ท่านได้เรียนรู้วิธีใช้บล็อก VEXcode [Wait until] ที่มีเงื่อนไขบูลีนเพื่อสั่งให้หุ่นยนต์รอจนกว่าหุ่นยนต์จะไปถึงตำแหน่งที่มากกว่า -100 บนแกน X ก่อนที่จะย้ายไปยังพฤติกรรมถัดไป

บล็อก VEXcode VR ที่อ่านว่ารอจนกว่า X ตำแหน่งของหุ่นยนต์ในหน่วยมิลลิเมตรมากกว่า -100

ภาพด้านล่างแสดงบล็อค Switch [Wait until] ที่มีคำสั่งเดียวกันใน Python ภายในบล็อกสวิตช์ใน ขณะที่ไม่ใช่ตำแหน่งตำแหน่ง (X, MM) > -100: เป็นคำสั่ง Python แรกที่ ตรวจสอบว่าตำแหน่งของหุ่นยนต์ตามแกน X มากกว่า -100 หรือไม่

คำสั่งเยื้อง รอ (5, มิลลิวินาที) หยุดการดำเนิน การเช็คชั่วคราวตามระยะเวลาที่กำหนด ในตัวอย่างนี้โครงการจะตรวจสอบว่าตำแหน่งของหุ่นยนต์มากกว่าค่า X ที่ -100 ทุก 5 มิลลิวินาทีหรือไม่ บรรทัดของรหัสนี้อยู่เยื้องใต้บรรทัดแรกของรหัสเนื่องจากคำสั่งนี้เป็นลักษณะการทำงานที่ จะทำซ้ำจนกว่าจะตรงตามเงื่อนไข (ค่าพิกัด X ที่มากกว่า -100) 

บล็อกสวิทช์ VEXcode VR พร้อมรหัส Python ที่อ่านว่า 'while not location.position (X, MM )> -100: wait (5, msec )'

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