Skip to main content

บทเรียนที่ 3: การเพิ่มคำสั่ง Drivetrain เพื่อแก้ปัญหาเขาวงกตติดผนัง

การแก้ปัญหากำแพงเขาวงกต

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

หากรหัสมีเพียง ได รฟ์และ turn_for คำสั่งหุ่นยนต์ VR อาจ "ติดขัด" ในส่วนหมายเลข ‘2’ ของ Wall Maze เพราะมันจะยังคงเลี้ยวซ้ายหรือขวาโดยไม่ต้องสำรองข้อมูลมุมมองด้านบนของสนามเด็กเล่น Wall Maze ที่มีหุ่นยนต์ VR วางอยู่เหนือเครื่องหมาย 2 ตัว มันถูกทำมุมขึ้นและไปทางซ้ายโดยประมาณหันหน้าไปทางเครื่องหมาย B

แต่เราสามารถประมาณระยะห่างจากกำแพงสุดท้ายที่หุ่นยนต์ 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 ทำเช่นนั้นได้ก่อนอื่นจะต้องสำรองข้อมูลแล้วเลี้ยวซ้ายมุมมองด้านบนของสนามเด็กเล่น Wall Maze ที่มีหุ่นยนต์ VR อยู่เหนือเครื่องหมาย 2 ตัวหุ่นยนต์ 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’ทางซ้ายคือโปรเจกต์รหัส Python ที่แสดงไว้ก่อนหน้านี้ซึ่งลงท้ายด้วย drivetrain.turn_for (ซ้าย 90 องศา) ทางด้านขวามุมมองด้านบนของสนามเด็กเล่น Wall Maze ที่แสดงหุ่นยนต์ VR ได้เคลื่อนที่ไปตามรหัสใหม่ซึ่งอยู่ในห้องโถงระหว่างเครื่องหมาย A และ 2 และตอนนี้หันหน้าไปทางผนังด้านล่างของสนามเด็กเล่น

     

  • เลือกปุ่ม "รีเซ็ต" เพื่อรีเซ็ตสนามเด็กเล่นและย้ายหุ่นยนต์ 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

    มุมมองด้านบนของสนามเด็กเล่น Wall Maze ที่มีหุ่นยนต์ VR วางอยู่เหนือตัวอักษร B ตรงกลางของผนังด้านซ้ายของสนามเด็กเล่น มันถูกอัดติดกับผนังหันหน้าไปทางด้านบนของสนามเด็กเล่น

มินิชาเลนจ์

ในความท้าทายนี้หุ่นยนต์ VR ควรไปที่หมายเลข ‘3’ ใน Wall Maze Playground โดย ใช้ ลูปหลายตัวคำสั่ง Drivetrain และเซ็นเซอร์กันชน

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

ทำตามขั้นตอนต่อไปนี้เพื่อทำมินิชาเลนจ์:

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

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

ขอแสดงความยินดี! คุณได้ทำการท้าทาย Wall Maze สำเร็จแล้ว!

คำถาม

โปรดเลือกลิงก์ด้านล่างเพื่อเข้าถึงแบบทดสอบบทเรียน

Google Doc /.docx /.pdf