Skip to main content

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

  • รีเซ็ตสนามเด็กเล่นเพื่อย้ายหุ่นยนต์ VR กลับไปที่ตำแหน่งเริ่มต้น
  • ตอนนี้หุ่นยนต์ VR จะหมุนกลับและกลับไปที่หมายเลข ‘1’ เมื่อถึงหมายเลข ‘31’ บน Number Grid MapPlayground

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

    ภาพรวมของบล็อกที่ต้องเพิ่มในโครงการของเราจากก่อนหน้านี้เพื่อขับเคลื่อนหุ่นยนต์จากอวกาศ 1 ไปยังอวกาศ 31 และกลับไปยังอวกาศ 1 การดำเนินการนี้ทำได้โดยการเพิ่มการเลี้ยวการขับรถและการรอบล็อกก่อนที่จะถึงบล็อกหยุดการขับขี่ ตอนนี้โครงการเต็มรูปแบบอ่านว่าเมื่อเริ่มต้นขับรถไปข้างหน้าและรอจนกว่าตำแหน่ง Y ของหุ่นยนต์ในหน่วยมิลลิเมตรมีค่ามากกว่า -300 ถัดไปเลี้ยวขวา 180 องศาแล้วขับไปข้างหน้า สุดท้ายรอจนกว่าตำแหน่ง Y ของหุ่นยนต์ในหน่วยมิลลิเมตรน้อยกว่า -900 แล้วหยุดขับ
  • โปรดทราบว่าบล็อก [รอจนกว่า] ที่สองมี <Less than> บล็อกแทน <Greater than> บล็อก นี่เป็นเพราะตอนนี้หุ่นยนต์ VR กำลังขับเคลื่อนแกน Y ลงมาและตัวเลขก็กลายเป็นลบมากขึ้น หุ่นยนต์ VR จะหยุดทำงานเมื่อค่า Y น้อยกว่า -900

    โครงการบล็อก VEXcode VR เดียวกันเพื่อขับเคลื่อนหุ่นยนต์ VR จากอวกาศ 1 ไปยังอวกาศ 31 ไปยังอวกาศ 1 โดยบล็อก Wait Until ที่สองจะเน้นย้ำเพื่อดึงดูดความสนใจไปที่การใช้บล็อกน้อยกว่าแทนที่จะเป็นบล็อกที่ยิ่งใหญ่กว่า โครงการทั้งหมดอ่านว่าเมื่อเริ่มต้นขับรถไปข้างหน้าและรอจนกว่าตำแหน่ง Y ของหุ่นยนต์ในหน่วยมิลลิเมตรมีค่ามากกว่า -300 ถัดไปเลี้ยวขวา 180 องศาแล้วขับไปข้างหน้า สุดท้ายรอจนกว่าตำแหน่ง Y ของหุ่นยนต์ในหน่วยมิลลิเมตรน้อยกว่า -900 แล้วหยุดขับ
  • เปิด Number Grid Map Playground หากยังไม่เปิดและดำเนินโครงการ
  • ดู VR Robot ขับไปที่หมายเลข ‘1’ บน Number Grid MapPlayground
  • ในโครงการนี้หุ่นยนต์ VR จะขับไปที่หมายเลข ‘1’ บน Number Grid MapPlayground เนื่องจากค่า Y ลด ลงเมื่อ VR Robot ขับเคลื่อนไปที่หมายเลข ‘1’ โครงการจึงใช้ <Less than> บล็อก
  • หุ่นยนต์ VR จะหยุดทำงานเมื่อค่า Y ของมัน น้อย กว่าค่า Y ของพิกัดที่หมายเลขที่ระบุเปิดอยู่ เนื่องจากค่า Y ของตัวเลข ‘1’ คือ -900 หุ่นยนต์ VR จะหยุดขับเมื่อค่า Y น้อยกว่า -900

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

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

    ความคิดเห็นมักจะถูกเพิ่มลงในโครงการเพื่ออธิบายสิ่งที่โปรแกรมเมอร์ต้องการให้บางส่วนของโครงการทำ ความคิดเห็นมีประโยชน์เมื่อทำงานร่วมกันและแก้ไขปัญหาเนื่องจากให้บริบทและความหมายโดยรวมของโค้ด การใช้ความคิดเห็นช่วยให้โปรแกรมเมอร์คิดตามแนวคิดเกี่ยวกับเป้าหมายและความตั้งใจโดยรวมของโครงการแทนที่จะพยายาม "คาดเดาและตรวจสอบ" คุณต้องการที่จะจำพิกัดที่ไปกับตัวเลขที่แน่นอนหรือไม่? เพิ่มความคิดเห็นว่า “ขับไปที่ 81 ที่อยู่ (-900, 700 )” ซึ่งจะช่วยในการสื่อสารส่วนต่างๆและช่วงตึกของโครงการ

    ตัวอย่าง VEXcode VR บล็อกโครงการเพื่อขับเคลื่อนหุ่นยนต์จากอวกาศ 1 ไปยังอวกาศ 81 กลับไปยังอวกาศ 41 มีการเพิ่มความคิดเห็นเพื่อให้โค้ดสามารถอ่านได้ง่ายขึ้นและแสดงรายการพิกัดของแต่ละสถานที่เพื่อช่วยในการดีบัก โครงการเริ่มต้นด้วยบล็อกเมื่อเริ่มต้นตามด้วยความคิดเห็นที่ระบุว่า 'ขับไปที่ 81 ตั้งอยู่ที่ (-900,700 )' ไดรฟ์ถัดไปข้างหน้าและรอจนกว่าตำแหน่ง Y ของหุ่นยนต์ในหน่วยมิลลิเมตรมากกว่า 700 ความคิดเห็นถัดไปเขียนว่า 'หันหลังกลับ' ตามด้วยบล็อกเพื่อหันไปทางขวาเป็นเวลา 180 องศา ถัดไปเป็นอีกหนึ่งความคิดเห็นที่อ่าน 'ไดรฟ์ไปที่ 41 ตั้งอยู่ที่ (-900, -100 )' ตามด้วยบล็อกไดรฟ์ไปข้างหน้า สุดท้ายรอจนกว่าตำแหน่ง Y ของหุ่นยนต์ในหน่วยมิลลิเมตรน้อยกว่า -100 แล้วหยุดการขับขี่

    สำหรับข้อมูลเพิ่มเติมเกี่ยวกับความคิดเห็นโปรดดูที่ ความคิดเห็น - บทความ VR Blocks

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

ภาพด้านล่างแสดงโครงการด้านบนที่แปลงเป็นบล็อกสวิตช์ โปรดทราบว่าความคิดเห็นใน Python เขียนด้วยสีเขียว คุณสามารถเขียนความคิดเห็นใน Python โดยป้อนเครื่องหมายปอนด์ (#) ตามด้วยความคิดเห็นของคุณ 

การใช้งานสวิตช์บล็อก VEXcode VR ของรหัสบล็อก VR เพื่อเดินทางจากอวกาศ 1 ไปยังอวกาศ 81 ไปยังอวกาศ 41 รหัสสวิทช์มีความยาว 11 บรรทัดดังนี้: '# ขับไปที่ 81 ตั้งอยู่ที่ (-900, 700), drivetrain.drive (ไปข้างหน้า), ในขณะที่ไม่ใช่ location.position (Y, MM )> 700: รอ (5, มิลลิวินาที), # หมุนรอบ, drivetrain.turn_for (ขวา, 180, องศา), # ขับไปที่ 41 ตั้งอยู่ที่ (-900, -100), drivetrain.drive (ไปข้างหน้า), ในขณะที่ไม่ใช่ location.position (Y, MM )<-100: รอ (5, มิลลิวินาที), drivetrain.stop ()'

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