บทเรียนที่ 3: การเพิ่มคำสั่ง Drivetrain เพื่อแก้ปัญหาเขาวงกตติดผนัง
การแก้ปัญหากำแพงเขาวงกต
ตอนนี้หุ่นยนต์ VR ได้ขับเคลื่อนไปยังตัวอักษร ‘A’ เช่นเดียวกับหมายเลข ‘2‘ บนสนามเด็กเล่นผนัง เขาวงกตคุณจะสร้างโครงการที่หุ่นยนต์ VR ขับเคลื่อนไปยังสถานที่อื่นๆเช่นกับตัวอักษร ‘B ?' ได้อย่างไร จนถึงตอนนี้เราได้ใช้ข้อมูลจาก เซ็นเซอร์กันชนเพื่อขับไปที่ผนังจากนั้นหมุนเพื่อย้ายไปที่ผนังถัดไป ในการไปยังตัวอักษร 'B' เราต้องสามารถย้ายหุ่นยนต์ VR ไปยังจุดที่อยู่ตรงกลางของพื้นผิวเขาวงกตเพื่อให้สามารถไปยังเส้นทางที่แตกต่างกันไปยังปลายทางของเราได้
หากรหัสมีเพียง ได รฟ์และ turn_for คำสั่งหุ่นยนต์ VR อาจ "ติดขัด" ในส่วนหมายเลข ‘2’ ของ Wall Maze เพราะมันจะยังคงเลี้ยวซ้ายหรือขวาโดยไม่ต้องสำรองข้อมูล
แต่เราสามารถประมาณระยะห่างจากกำแพงสุดท้ายที่หุ่นยนต์ VR แตะไปยังตำแหน่งที่ต้องหมุนได้จากนั้น เราสามารถ ใช้คำสั่ง Drivetrain เช่น drive_for และ turn_forกับข้อมูล ขณะ วนลูปและ Bumper Sensor ในโครงการของเราเพื่อแก้ปัญหาเขาวงกต!
-
เริ่มต้นด้วยการปรับเปลี่ยนโปรเจกต์ก่อนหน้าสร้างโปรเจกต์ใหม่หรือเลือก "คัดลอก" และวางโค้ดนี้ลงใน VEXcode VR เพื่อให้ตรงกับโปรเจกต์พื้นฐานนี้
def main (): while not left_bumper.pressed (): drivetrain.drive (FORWARD ) wait ( 5, msec) drivetrain.turn_for ( LEFT, 90, DEGREES) while not left_bumper.pressed (): drivetrain.drive ( FORWARD) wait (5, msec) drivetrain.turn_for (RIGHT, 90, DEGREES) while not left_bumper.pressed (): drivetrain.drive (FORWARD) wait (5, msec) drivetrain.turn_for (LEFT, 90, DEGREES) while not left_bumper.pressed (): drivetrain.drive (FORWARD) wait (5, msec ) drivetrain.stop ()
- โครงการข้างต้นเริ่มขับเคลื่อนหุ่นยนต์ VR ไปยังตัวอักษร ‘B’ อย่างไรก็ตามเพื่อให้หุ่นยนต์ VR ทำเช่นนั้นได้ก่อนอื่นจะต้องสำรองข้อมูลแล้วเลี้ยวซ้าย
- Edit the code by removing the stop command and replacing it with drive_for and turn_for commands.
- เราสามารถประเมินได้ว่าหุ่นยนต์ VR ต้องขับรถย้อนกลับประมาณ 300 มิลลิเมตร (มม.) ขั้นแรก ตั้งค่าพารามิเตอร์ของคำสั่ง drive_for เป็น “ย้อนกลับ” เป็นระยะทาง 300 มิลลิเมตร (มม.)
-
จากนั้นตั้งค่าพารามิเตอร์ของคำสั่ง turn_for เพื่อเลี้ยวซ้าย 90 องศา ตอนนี้โปรเจกต์ของคุณควรมีลักษณะดังนี้:
def main (): while not left_bumper.pressed (): drivetrain.drive (FORWARD ) wait ( 5, msec) drivetrain.turn_for ( LEFT, 90, DEGREES) while not left_bumper.pressed (): drivetrain.drive (FORWARD ) wait ( 5, msec) drivetrain.turn_for ( RIGHT, 90, DEGREES) while not left_bumper.pressed (): drivetrain.drive ( FORWARD ) wait ( 5, msec) drivetrain.turn_for ( LEFT, 90, DEGREES) while not left_bumper.pressed (): drivetrain.drive ( FORWARD) wait ( 5, msec) drivetrain.drive_for (REVERSE, 300, MM) drivetrain.turn_for (LEFT, 90, DEGREES)
- เปิด Wall Maze Playground หากยังไม่ได้เปิดและดำเนินโครงการ
-
การเพิ่มคำสั่งเหล่านี้จะกำหนดทิศทางของหุ่นยนต์ VR ในทิศทางที่ถูกต้องเพื่อขับเคลื่อนตัวอักษร ‘B’
- เลือกปุ่ม "รีเซ็ต" เพื่อรีเซ็ตสนามเด็กเล่นและย้ายหุ่นยนต์ VR กลับไปที่ตำแหน่งเริ่มต้น
-
ตอนนี้หุ่นยนต์ VR อยู่ในทิศทางที่ถูกต้องแล้วให้เพิ่มคำสั่งต่อไปนี้ด้านล่างคำสั่ง turn _for สุดท้าย เพื่อขับเคลื่อนหุ่นยนต์ VR ไปยังตัวอักษร 'B' บน Wall Maze Playground ตรวจสอบให้แน่ใจว่ามีการเยื้องคำสั่งในโปรเจกต์ของคุณอย่างถูกต้อง
while not left_bumper.pressed (): drivetrain.drive (FORWARD) wait (5, MSEC) drivetrain.turn_for (RIGHT, 90, DEGREES) while not left_bumper.pressed (): drivetrain.drive (FORWARD) wait (5, MSEC) drivetrain.turn_for (RIGHT, 90, DEGREES) while not left_bumper.pressed (): drivetrain.drive (FORWARD) wait (5, msec ) drivetrain.stop ()
- เปิด Wall Maze Playground หากยังไม่ได้เปิดและดำเนินโครงการ
-
ตอนนี้หุ่นยนต์ VR จะขับไปที่ตัวอักษร ‘B’ บน Wall Maze Playground
มินิชาเลนจ์
ในความท้าทายนี้หุ่นยนต์ VR ควรไปที่หมายเลข ‘3’ ใน Wall Maze Playground โดย ใช้ ลูปหลายตัวคำสั่ง Drivetrain และเซ็นเซอร์กันชน

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