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