กล่องเครื่องมือสำหรับครู - จุดประสงค์ของกิจกรรมนี้
ในหน้าก่อน นักเรียนกำลังตั้งโปรแกรมให้แขนหมุนขึ้นโดยใช้ปุ่ม Brain Up หน้านี้จะสร้างจากโปรเจ็กต์ก่อนหน้าเพื่อตั้งโปรแกรมให้แขนหมุนลงโดยใช้ปุ่ม Brain Down
กิจกรรมนี้จะแนะนำให้นักเรียนเขียนโปรแกรมด้วย [If then else] บล็อก เช่นเดียวกับการใช้บล็อกการตรวจจับและตัวดำเนินการเพื่อให้หุ่นยนต์ตรวจสอบว่ามีการกดปุ่ม Brain Up หรือ Down หรือไม่ หากกดปุ่ม Brain Up แขนของ Clawbot จะยกขึ้น หากกดปุ่ม Brain Down แขนของ Clawbot จะลดลง สิ่งนี้ต่อยอดจากกิจกรรมก่อนหน้านี้และจะเป็นการวางรากฐานสำหรับ User Interface Challenge ในส่วน Rethink
สำหรับ User Interface Challenge นักเรียนจะต้องตั้งโปรแกรม Clawbot ให้ยกแขน ลดแขน เปิดกรงเล็บ และปิดกรงเล็บทั้งหมดโดยใช้ปุ่มบน IQ Robot Brain
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ [If then], [If then else], <ปุ่ม Brain ที่กด>, หรือ [Spin] บล็อก โปรดดูข้อมูลช่วยเหลือภายใน VEXcode IQ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับเครื่องมือช่วยเหลือในตัวนี้ คลิก ที่นี่
ต่อไปนี้คือโครงร่างสิ่งที่นักเรียนของคุณจะทำในกิจกรรมนี้:
-
ใช้ ArmUp2 ที่มีอยู่เพื่อสร้างโปรเจ็กต์ ArmUpDown ที่จัดเตรียมไว้ให้และคาดการณ์ว่าโปรเจ็กต์จะทำอะไร
-
ดูผังงานเพื่อช่วยอธิบายลำดับขั้นตอนของบล็อกในโครงการ
-
ปรับแต่งคำอธิบายเกี่ยวกับสิ่งที่โครงการ ArmUpDown ทำ
-
ดูวิดีโอแนะนำ If That Else บล็อก
-
แก้ไขโครงการโดยใช้ [ถ้าเป็นเช่นนั้น] บล็อก
-
หยุดและอภิปราย: นักเรียนจะไตร่ตรองการคาดการณ์ของตนว่า Clawbot จะให้ Clawbot ทำอะไรในโปรเจ็กต์นี้ เทียบกับการสังเกตจริง
-
ตั้งโปรแกรมกรงเล็บโดยใช้โครงโครงการเดียวกันจากการตั้งโปรแกรมแขน
ปริมาณ | วัสดุที่จำเป็น |
---|---|
1 |
VEX IQ ซุปเปอร์คิท |
1 |
VEXโค้ด IQ |
1 |
สมุดบันทึกวิศวกรรม |
1 |
เทมเพลต Clawbot (ระบบขับเคลื่อน) |
แขน Clawbot พร้อมขยับขึ้นลงแล้ว!
กิจกรรมนี้จะมอบเครื่องมือในการตั้งโปรแกรมหุ่นยนต์ของคุณให้มีพฤติกรรมตามเงื่อนไข
บล็อก [ถ้าเป็นเช่นนั้น] เป็นจุดสนใจหลักภายในกิจกรรม แต่ยังใช้บล็อกการตรวจจับ การควบคุม และตัวดำเนินการอื่นๆ ด้วยเช่นกัน
คุณสามารถใช้ข้อมูลวิธีใช้ภายใน VEXcode IQ เพื่อเรียนรู้เกี่ยวกับบล็อกต่างๆ สำหรับคำแนะนำในการใช้คุณสมบัติ วิธีใช้ โปรดดูบทช่วยสอนการใช้วิธีใช้
เคล็ดลับของครู
หากนี่เป็นครั้งแรกของนักเรียนที่ใช้ VEXcode IQ พวกเขายังสามารถดูบทช่วยสอนในแถบเครื่องมือเพื่อเรียนรู้ทักษะพื้นฐานอื่นๆ
ขั้นตอนที่ 1: การเขียนโปรแกรมเพื่อเลื่อนแขนลง
ในหน้าก่อนหน้านี้ คุณได้ตั้งโปรแกรมให้แขนของ Clawbot หมุนขึ้นเมื่อกดปุ่ม Brain Up แต่แล้วยังลดแขนลงด้วยล่ะ? ก่อนอื่นเรามาทบทวนโครงการ ArmUp2 ก่อนหน้านี้อีกครั้ง
เป็นไปได้ไหมที่จะใช้บล็อก [If then] อันเดิมเพื่อหมุนแขนขึ้นและหมุนแขนลงด้วย? มาลองดูกัน! สร้างโปรเจ็กต์ด้านล่างโดยแก้ไขโปรเจ็กต์ ArmUp2 ที่มีอยู่แล้ว
-
บันทึกโครงการเป็น ArmUpDown หากนักเรียนต้องการความช่วยเหลือในการบันทึกโครงการ โปรดดูบทช่วยสอนการตั้งชื่อและการบันทึก
-
ตรวจสอบเพื่อให้แน่ใจว่าชื่อโปรเจ็กต์ ArmUpDown อยู่ในหน้าต่างตรงกลางของแถบเครื่องมือแล้ว
-
คาดการณ์ว่าโปรเจ็กต์จะให้ Clawbot ทำอะไรในสมุดบันทึกด้านวิศวกรรมของคุณ อธิบายพฤติกรรมทั้งของผู้ใช้และของ Clawbot
-
ทดสอบเพื่อดูว่าการคาดการณ์ของคุณเกี่ยวกับสิ่งที่ Clawbot ทำในโปรเจ็กต์นั้นถูกต้องหรือไม่
-
ดาวน์โหลดโปรเจ็กต์เป็น Slot 3 บน Clawbot จากนั้นรัน
-
สำหรับความช่วยเหลือในการดาวน์โหลดและรันโปรเจ็กต์ โปรดดูบทช่วยสอนใน VEXcode IQ ที่อธิบายวิธีดาวน์โหลดและรันโปรเจ็กต์
-
-
ตรวจสอบคำอธิบายของโครงการและเพิ่มบันทึกเพื่อแก้ไขตามความจำเป็น
กล่องเครื่องมือครู
โครงการที่นักเรียนสร้างข้างต้นจะได้ผล เมื่อกดปุ่ม Brain Up แขนจะหมุนขึ้น และเมื่อกดปุ่ม Brain Down แขนจะหมุนลง แม้ว่าโครงการจะทำงานตามที่เป็นอยู่ แต่ก็ไม่ได้เขียนอย่างเหมาะสมที่สุด อาจมีกรณีที่เงื่อนไขทั้งสองสามารถเป็นจริงได้ในเวลาเดียวกัน นอกจากนี้ โปรดสังเกตด้วยว่าเนื่องจากเงื่อนไขของปุ่ม Brain Up เริ่มกดเป็นอันดับแรก หากปุ่ม Brain Up ค้างไว้แล้วจึงกดปุ่ม Brain Down แขนก็จะหมุนต่อไป การกระทำนั้นจะไม่หยุดจนกว่าจะปล่อยปุ่ม Brain Up ดังนั้น โครงการจะถูกเขียนใหม่ในขั้นตอนถัดไปเพื่อรวมบล็อก [If then else] เพื่อหลีกเลี่ยงปัญหาที่อาจเกิดขึ้นเหล่านี้
กล่องเครื่องมือครู - หยุดและอภิปราย
เมื่อนักเรียนได้ทดสอบโครงงานแล้ว ให้ถามพวกเขาว่าการคาดการณ์เปรียบเทียบกับการสังเกตอย่างไร อำนวยความสะดวกในการอภิปรายโดยถามคำถามต่อไปนี้:
-
การทำนายของคุณเหมือนกับการสังเกตของคุณหรือไม่?
-
ดูเหมือนว่าจะเกิดอะไรขึ้นในโครงการ?
-
มีการตรวจสอบเงื่อนไขของปุ่มขึ้นและลงเพียงครั้งเดียวหรือไม่?
-
คุณคิดว่าโครงการนี้สามารถจัดโครงสร้างใหม่เพื่อให้ดำเนินการได้อย่างมีประสิทธิภาพมากขึ้นหรือไม่ เพราะเหตุใด
ขั้นตอนที่ 2: ทำความเข้าใจโฟลว์โครงการ
ในขั้นตอนที่แล้วโครงการได้ยกแขนขึ้นและลง อย่างไรก็ตาม เนื่องจากเงื่อนไขของปุ่ม Brain Up จะเริ่มกดเป็นอันดับแรก ถ้ากดปุ่ม Brain Up ค้างไว้แล้วจึงกดปุ่ม Brain Down แขนก็จะหมุนต่อไปเนื่องจากการกระทำนั้นจะไม่หยุดจนกว่าปุ่ม Brain Up ถูกปล่อย. ดูผังงานต่อไปนี้ที่อธิบายผังโครงการ
ดังนั้น โครงการสามารถแทนที่บล็อก [If then] ด้วย [If then else] บล็อก เพื่อให้มีเพียงอินสแตนซ์เดียวเท่านั้นที่สามารถเป็นจริงได้ตลอดเวลา
ดูวิดีโอแนะนำต่อไปนี้เกี่ยวกับ [If then else] บล็อก:
เริ่มต้นด้วยการดูวิดีโอบทช่วยสอน If-Then-Else ใน VEXcode IQ
การใช้บล็อก [ถ้าเป็นเช่นนั้น] จะช่วยขจัดความจำเป็นในการบล็อก [รอจนกระทั่ง] เนื่องจากแขนจะหมุนต่อไปจนกว่าปุ่ม Brain Up จะถูกปล่อย สิ่งนี้เกิดขึ้นเนื่องจากส่วน "else" ของ [If then else] ไม่เคยเข้าถึงจนกว่าเงื่อนไขของปุ่ม Brain Up จะเป็นเท็จ (ปล่อย)
บล็อก [Forever] ช่วยให้สามารถตรวจสอบเงื่อนไขแรกได้อย่างต่อเนื่อง
เรามาสำรวจการเปลี่ยนแปลงโปรเจ็กต์โดยการเพิ่ม [If then else] บล็อก ตอนนี้ Arm Motor จะยังคงหมุนต่อไปจนกว่าจะไม่ได้กดปุ่ม Brain Up อีกต่อไป (ปล่อย) เนื่องจากบล็อก [Forever] เงื่อนไขนี้จะถูกตรวจสอบต่อไปจนกว่าจะเป็นเท็จ
เมื่อเงื่อนไขของปุ่ม Brain Up เป็นเท็จ โปรเจ็กต์จะดำเนินต่อไปยังบล็อกถัดไป ซึ่งก็คือการตรวจสอบเงื่อนไขว่ากดปุ่ม Brain Down หรือไม่ หากเงื่อนไขของการกดปุ่ม Brain Down เป็นจริง แขนจะหมุนขึ้น อีกครั้ง เนื่องจากบล็อก [Forever] เงื่อนไขนี้จะถูกตรวจสอบต่อไปจนกว่าจะเป็นเท็จ
เมื่อเงื่อนไขของปุ่ม Brain Up เป็นเท็จ โปรเจ็กต์จะดำเนินต่อไปยังบล็อกถัดไป ซึ่งก็คือบล็อก [Stop motor] ดังนั้น Arm Motor จะหยุดเมื่อทั้งสองเงื่อนไขเป็นเท็จเท่านั้น (ไม่มีการกดปุ่มใดเลย)
กระตุ้นให้เกิดการอภิปราย
ถาม: ความคืบหน้าของโฟลว์โปรเจ็กต์จะเป็นอย่างไรหากเงื่อนไขของการกดปุ่ม Brain Up เป็น FALSE (ปล่อยแล้ว)
A: หากเงื่อนไขเป็นเท็จ โฟลว์โปรเจ็กต์จะยังคงตรวจสอบสภาพของการกดปุ่ม Brain Down ต่อไป
ถาม: จุดประสงค์ของ [If then else] บล็อกในโครงการด้านบนคืออะไร?
A: การใช้บล็อก [If then else] อนุญาตให้เป็นจริงได้ครั้งละหนึ่งอินสแตนซ์เท่านั้น ดังนั้น ปุ่ม Brain Up และปุ่ม Brain Down จะไม่สามารถเป็นจริงพร้อมกันได้โดยใช้บล็อค [ถ้าเป็นเช่นนั้น] เนื่องจากเงื่อนไขที่สองของปุ่ม Brain Down ที่ถูกกดจะไม่เป็นตัวเลือก เว้นแต่เงื่อนไขแรกของ การกดปุ่ม Brain Up ไม่ถูกต้อง จุดประสงค์อื่นคือเพื่อปรับปรุงประสิทธิภาพการเขียนโปรแกรม
Q: ความคืบหน้าของโฟลว์โปรเจ็กต์จะเป็นอย่างไรหากเงื่อนไขของการกดปุ่มขึ้นและลงทั้งสองเงื่อนไขเป็นเท็จ?
A: หากเงื่อนไขทั้งสองเป็นเท็จ โฟลว์ของโปรเจ็กต์จะดำเนินต่อไปยังบล็อก [หยุดมอเตอร์] ก่อนที่จะกลับสู่ด้านบนสุดของสแต็กซ้ำตลอดไป
ขั้นตอนที่ 3: การเขียนโปรแกรมด้วย [If then else] บล็อก
ลองใช้บล็อก [If then else] :
-
เพิ่มบล็อก [If then else] ให้กับโปรเจ็กต์ ArmUpDown ของคุณ เพื่อให้โปรเจ็กต์ของคุณมีลักษณะดังนี้:
-
บันทึกโครงการเป็น ArmUpDown2 หากนักเรียนต้องการความช่วยเหลือในการบันทึกโครงการ โปรดดูบทช่วยสอนการตั้งชื่อและการบันทึก
-
ดาวน์โหลดโปรเจ็กต์เป็น Slot 4 บน Clawbot จากนั้นรัน
-
สำหรับความช่วยเหลือในการดาวน์โหลดและรันโปรเจ็กต์ โปรดดูบทช่วยสอนใน VEXcode IQ ที่อธิบายวิธี ดาวน์โหลดและรันโปรเจ็กต์
-
ทดสอบเพื่อดูว่าแขนจะหมุนขึ้นหรือไม่เมื่อกดปุ่ม Brain Up และหมุนลงเมื่อกดปุ่ม Brain Down
-
ตรวจสอบว่าเมื่อไม่ได้กดปุ่ม Brain Up และ Down (ปล่อย) Arm Motor จะหยุดทำงาน
-
เขียนข้อสังเกตของคุณว่า Clawbot มีพฤติกรรมอย่างไรก่อนและหลังการเพิ่มบล็อก if then else ลงในโปรเจ็กต์ของคุณในสมุดบันทึกด้านวิศวกรรม
กล่องเครื่องมือครู - หยุดและอภิปราย
หลังจากที่นักเรียนได้ทดสอบโครงงานก่อนและหลังการเพิ่มบล็อก [ถ้าเป็นเช่นนั้น] แล้ว ให้หารือกับนักเรียนว่าสิ่งนี้จะทำให้แขนหมุนต่อไปได้อย่างไรจนกว่าปุ่ม Brain Up จะถูกปล่อย ขอให้นักเรียนแบ่งปันข้อสังเกตจากสมุดบันทึกทางวิศวกรรม อำนวยความสะดวกในการอภิปรายโดยถามคำถามต่อไปนี้:
-
คุณเห็น Clawbot มีพฤติกรรมแตกต่างออกไประหว่างการใช้บล็อก [If then else] เทียบกับการใช้บล็อก [If then] หรือไม่?
-
เหตุใดคุณจึงคิดว่าประสิทธิภาพของโปรแกรมมีความสำคัญ
-
เงื่อนไขของปุ่ม Brain Up มีการตรวจสอบเพียงครั้งเดียวในโปรเจ็กต์หรือไม่
สมุดบันทึกด้านวิศวกรรมของนักเรียนสามารถดูแลรักษาและให้คะแนนเป็นรายบุคคล (Google / .docx / .pdf) หรือเป็นทีม (Google / .docx / .pdf) ลิงก์ก่อนหน้านี้มีรูบริกที่แตกต่างกันสำหรับแต่ละแนวทาง เมื่อใดก็ตามที่รวมรูบริกไว้ในการวางแผนการศึกษา แนวปฏิบัติที่ดีที่จะอธิบายรูบริกหรืออย่างน้อยก็แจกสำเนาให้นักเรียนก่อนเริ่มกิจกรรม
กล่องเครื่องมือครู
นักเรียนอาจไม่เห็นความแตกต่างมากนักเกี่ยวกับวิธีการทำงานของ Clawbot ระหว่างการใช้บล็อก [If then] เทียบกับ [If then] บล็อก หากนักเรียนมองไม่เห็นความแตกต่างทางกายภาพมากนัก ให้อำนวยความสะดวกในการอภิปรายเกี่ยวกับประสิทธิภาพของการเขียนโปรแกรม และการลดความซับซ้อนของโครงการสามารถนำไปสู่การใช้บล็อกน้อยลงได้อย่างไร การใช้บล็อกน้อยลงในโปรเจ็กต์สามารถลดจำนวนข้อผิดพลาดที่อาจเกิดขึ้นได้
ขั้นตอนที่ 4: การเขียนโปรแกรมกรงเล็บ
ในขั้นตอนก่อนหน้านี้ โครงการได้รับการปรับให้เหมาะสมเพื่อให้ทำงานได้อย่างมีประสิทธิภาพมากขึ้นโดยใช้ [If then else] บล็อก ในตัวอย่างก่อนหน้านี้ แขนถูกควบคุมโดยใช้ปุ่ม Brain Up และ Down
การใช้โครงร่างโปรเจ็กต์เดียวกันทุกประการ ทำให้ Claw สามารถจัดการได้
-
ตรวจสอบโครงการ ArmUpDown2 และเปลี่ยนบล็อก [Spin] เป็น ClawMotor แทน ArmMotor โดยใช้เมนูแบบเลื่อนลง
ตรวจสอบให้แน่ใจว่าปุ่ม Brain Up หมุน Claw "เปิด" และปุ่ม Brain Down หมุน Claw "ปิด" โดยใช้เมนูแบบเลื่อนลง
-
บันทึกโครงการเป็น ClawUpDown หากนักเรียนต้องการความช่วยเหลือในการบันทึกโครงการ โปรดดูบทช่วยสอนการตั้งชื่อและการบันทึก
-
ดาวน์โหลดโปรเจ็กต์เป็น Slot 1 บน Clawbot จากนั้นรัน
-
สำหรับความช่วยเหลือในการดาวน์โหลดและรันโปรเจ็กต์ โปรดดูบทช่วยสอนใน VEXcode IQ ที่อธิบายวิธี ดาวน์โหลดและรันโปรเจ็กต์
-
ทดสอบเพื่อดูว่ากรงเล็บจะหมุนเปิดหรือไม่เมื่อกดปุ่ม Brain Up และหมุนปิดเมื่อกดปุ่ม Brain Down
-
ตรวจสอบว่าเมื่อไม่ได้กดปุ่ม Brain Up และ Down (ปล่อย) Claw Motor จะหยุดทำงาน
-
เขียนข้อสังเกตของคุณว่า Clawbot มีพฤติกรรมอย่างไรก่อนและหลังการเพิ่มบล็อก if then else ลงในโปรเจ็กต์ของคุณในสมุดบันทึกด้านวิศวกรรม
กล่องเครื่องมือครู
ตอนนี้นักเรียนมีทักษะในการจัดการแขนและกรงเล็บโดยใช้ปุ่มต่างๆ แล้ว ขอให้นักเรียนระดมความคิดว่าพวกเขาจะดำเนินการทั้งสี่อย่างในโครงการเดียวกันได้อย่างไร (ยกแขนขึ้น แขนลง เปิดกรงเล็บ และปิดกรงเล็บ)
นักเรียนจะใช้อีก บล็อก [ถ้าเป็นเช่นนั้น] ในส่วนการคิดใหม่เพื่อให้หุ่นยนต์ของพวกเขาดำเนินการทั้งสี่การกระทำ
ขยายการเรียนรู้ของคุณ - ชุดบล็อกหยุดมอเตอร์
หากนักเรียนตั้งโปรแกรมหุ่นยนต์ให้ยกแขนขึ้นและลง น้ำหนักของกรงเล็บอาจทำให้แขนลอยลงได้
ในกรณีนี้ สามารถใช้บล็อก [ตั้งค่าการหยุดมอเตอร์] เพื่อไม่ให้แขนตกเนื่องจากแรงโน้มถ่วงและน้ำหนักของก้ามปู บล็อกนี้สามารถใช้ได้เมื่อเริ่มต้นโครงการ และจะนำไปใช้กับบล็อกมอเตอร์ทั้งหมดในอนาคตสำหรับส่วนที่เหลือของโครงการ
บล็อกหยุดมอเตอร์ที่ตั้งค่าไว้มีการตั้งค่าสามแบบ:
-
เบรก ทำให้มอเตอร์หยุดทันที
-
Coast ปล่อยให้มอเตอร์ค่อยๆ หมุนจนหยุด
-
กดค้าง จะทำให้มอเตอร์หยุดทันทีและกลับสู่ตำแหน่งหยุดหากมีการเคลื่อนไหว