Skip to main content

บทที่ 2: สรุปหลังโครงการ

บล็อก [ถ้าเป็นเช่นนั้น] ถูกใช้เพื่อให้หุ่นยนต์ VR สามารถตัดสินใจได้ หากเงื่อนไขบูลีนเป็นจริงบล็อกภายในสาขา ‘ถ้าเป็นเช่นนั้น’ จะทำงาน หากเงื่อนไขบูลีนเป็นเท็จบล็อกภายในสาขา ‘อื่นๆ’ จะทำงาน

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

ในโครงการนี้หุ่นยนต์ VR ขับรถไปที่อาคารเมื่อเซ็นเซอร์ระยะทางตรวจพบวัตถุและ <Distance found object> บล็อกรายงานว่าเป็นจริง สิ่งนี้สั่งให้สาขา ‘If Then’ ของโครงการทำงาน สาขานี้รวมบล็อก [Drive] ด้วย จากนั้นหุ่นยนต์ VR จะข้ามสาขา ‘อื่นๆ’ ของโครงการ

โครงการอยู่ทางซ้ายมือโดยมีไฮไลต์สีเขียวแสดงการไหลของโครงการของ if then branch executing ทางด้านขวามุมมองด้านบนลงล่างของสนามเด็กเล่นจะปรากฏขึ้นโดยมีลูกศรและกล่องสีแดงที่เน้นปราสาทหรือวัตถุที่ตรวจพบโดยเซ็นเซอร์ระยะทางในกรณีนี้

เนื่องจากบล็อก [If then else] ถูกวางไว้ภายในบล็อก [Forever] โปรเจกต์จึงวนกลับไปที่ด้านบนของบล็อก [Forever] เพื่อตรวจสอบสภาพของบล็อก [If then else] ลูปนี้จะดำเนินต่อไปตลอดไปโดยสั่งให้หุ่นยนต์ VR ตรวจสอบสภาพ [ถ้าเป็นเช่นนั้น] อย่างต่อเนื่องหลายร้อยครั้งต่อวินาที

โปรดทราบว่าบล็อก [Drive] และ [Turn] ภายในบล็อก [If then else] เป็นบล็อกที่ไม่ต้องรอ บล็อกที่ไม่ต้องรอจะไม่หยุดการไหลของโครงการในขณะที่กำลังทำงานพฤติกรรม  ที่ไม่ใช่การรอที่ดำเนินการในบล็อก [ถ้าเป็นเช่นนั้น] (เช่นไดรฟ์ไปข้างหน้าหากตรวจพบวัตถุ) จะดำเนินต่อไปในขณะที่ตรวจสอบเงื่อนไขและจะเปลี่ยนก็ต่อเมื่อเงื่อนไขมีการเปลี่ยนแปลง

โครงการ VEXcode VR เดียวกันที่มีลูกศรเคลื่อนที่จากด้านล่างของบล็อก Forever กลับขึ้นไปด้านบนเพื่อระบุการไหลของโครงการกลับไปที่ด้านบนของลูป Forever เพื่อทำซ้ำคำสั่งทั้งหมดภายในนั้น

หาก <Distance found object> บล็อกรายงานเป็นเท็จสาขา ‘อื่นๆ’ ของโครงการจะดำเนินการ สาขา ‘อื่นๆ’ รวมถึงบล็อก [Turn]

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

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

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

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

เปรียบเทียบโครงการปัจจุบันกับโครงการที่สร้างขึ้นในหน่วยที่ 7  โครงการหน่วยที่ 7 ใช้สี่ช่วงตึก [ถ้าเป็นเช่นนั้น]

แผนภาพการไหลของโครงการของโครงการตัวอย่างจากหน่วยที่ 7 ที่มีสี่ถ้าแล้วบล็อกตามลำดับ ในแต่ละกรณีพารามิเตอร์ If กำลังใช้ Front Eye Sensor เพื่อตรวจจับสีที่เฉพาะเจาะจงและทำพฤติกรรมตามสีที่ตรวจพบ หากตรวจพบสีแสดงว่าถ้าเป็นเช่นนั้นจริงและบล็อกภายในจะทำงานและสิ่งนี้จะเกิดขึ้นซ้ำๆสำหรับแต่ละส่วนของรหัส

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

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

การใช้บล็อค [ถ้าเป็นอย่างนั้น] จะหลีกเลี่ยงข้อบกพร่องเช่นนี้เพราะมีเพียงเงื่อนไขเดียวเท่านั้นที่เป็นจริงได้ในช่วงเวลาที่กำหนดด้วยบล็อคนี้

แผนภาพของการไหลของโครงการโดยใช้ if then else บล็อคภายในลูปตลอดไป เมื่อเริ่มต้นจะมีการตรวจสอบเงื่อนไขของสาขา if then หากเป็นจริงและการขับเคลื่อนกำลังเคลื่อนที่บล็อกภายในสาขาถ้าจะวิ่งและหุ่นยนต์จะเลี้ยวซ้าย 90 องศา; มิฉะนั้นหุ่นยนต์จะขับเคลื่อนไปข้างหน้า 200 มม. การตัดสินใจในการตรวจสอบเงื่อนไขหนึ่งข้อนี้จะมีขึ้นอย่างต่อเนื่องเนื่องจากโครงการอยู่ในวงจรตลอดไป

คำถาม

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

Google Doc /.docx /.pdf