Skip to main content

บทเรียนที่ 3: การปรับระยะทาง

ในบทเรียนก่อนหน้านี้คุณใช้เซ็นเซอร์ระยะทางและตัวดำเนินการเปรียบเทียบสำหรับหุ่นยนต์ VR เพื่อขับจากจุดเริ่มต้นไปยังหมายเลข ‘1’ บน Wall MazePlayground ในบทเรียนนี้คุณจะได้เรียนรู้วิธีตรวจสอบค่าจากเซ็นเซอร์ในแดชบอร์ดและให้หุ่นยนต์ VR ขับจากจุดเริ่มต้นไปยังตัวอักษร ‘B’ บน Wall MazePlayground

มุมมองจากบนลงล่างของ Wall Maze Playground โดยมีหุ่นยนต์ VR อยู่ในตำแหน่งเริ่มต้นที่กึ่งกลางด้านล่างและตัวอักษร B เน้นด้วยกล่องสีแดงตรงกลางของผนังด้านซ้ายคั่นด้วยชุดของผนัง

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

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

กำลังขับรถไปยังตัวอักษร 'B' 

มีหลายวิธีในการนำทางไปยังตัวอักษร 'B' ในเขาวงกตกำแพง ในการเริ่มต้นเรามาดูกันว่าเส้นทางที่ตรงที่สุดไปยังตัวอักษร 'B' จะเป็นอย่างไร มุมมองจากบนลงล่างของ Wall Maze Playground โดยมีหุ่นยนต์ VR บนตำแหน่งตัวอักษร B อยู่ตรงกลางของผนังด้านซ้ายและเส้นสีดำแสดงเส้นทางจากจุดเริ่มต้นไปยังตัวอักษร B เส้นแรกขยายขึ้นไปยังผนังแรกตรงข้ามจากนั้นเส้นหนึ่งขยายไปทางซ้ายไปยังผนังถัดไป ส่วน 3 เส้นถัดไปชี้ขึ้นไปทางซ้ายและลงเพื่อติดตามเส้นทางรอบกำแพงเข้าสู่เส้นทางเปิดไปยังด้านล่างของเขาวงกต สองบรรทัดสุดท้ายวิ่งไปทางซ้ายไปยังกำแพงด้านไกลและขึ้นไปยังตัวอักษร B

 

เริ่มโปรเจกต์ใหม่

  • เริ่มโปรเจกต์ข้อความใหม่ และเลือก Wall Maze Playground เมื่อได้รับแจ้ง กระเบื้องเลือก Wall Maze Playground
  • ตั้งชื่อ โครงการUnit5Lesson3
    แถบเครื่องมือ VEXcode VR และกล่องชื่อโครงการที่อยู่ตรงกลางอ่านหน่วยที่ 5 บทเรียนที่ 3

ขับไปที่ตัวอักษร ‘B’

  • ในการเริ่มต้นการเคลื่อนไหวสองสามครั้งแรกของหุ่นยนต์ VR ของเรามีความคล้ายคลึงกับสิ่งที่เราได้ทำในบทเรียนก่อนหน้านี้ สร้าง โครงการต่อไปนี้เพื่อเริ่มต้นบนเส้นทาง:

    def main ():
        while front_distance.get_distance (MM) > 50: drivetrain.drive (
            forward)
            wait (5, msec) drivetrain.turn_for
    
        (LEFT, 90, DEGREES)
    
        while front_distance.get_distance (MM) > 50: drivetrain.drive
            (FORWARD)
            wait (5, msec) drivetrain.turn_for
    
        (RIGHT, 90, DEGREES)
    
        while front_distance.get_distance (MM) > 50:
            drivetrain.drive (FORWARD)
            wait (5, MSEC)
    
        drivetrain.turn_for (LEFT, 90, DEGREES)
    
  • เปิดหน้าต่างสนามเด็กเล่นหากยังไม่ได้เปิด ตรวจสอบให้แน่ใจว่า Wall Maze Playground เปิด และดำเนินโครงการ
  • สังเกตจุดที่หุ่นยนต์ VR หยุดณจุดนี้ในโครงการ มันหันหน้าไปทางซ้ายทิศทางที่ถูกต้องเพื่อขับต่อไปยังตัวอักษร 'B' VEXcode VR กับโครงการข้างต้นที่แสดงในพื้นที่ทำงานทางด้านซ้ายและตำแหน่งสิ้นสุดของหุ่นยนต์ VR ที่เน้นด้วยวงกลมสีเหลืองบนสนามเด็กเล่น หุ่นยนต์หันหน้าไปทางซ้ายข้างกำแพงตรงข้ามกับตัวอักษร A

การหาตำแหน่งการ เลี้ยวที่ต้องการ

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

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

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

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