ความซับซ้อนของการเขียนโปรแกรม
หุ่นยนต์สามารถออกแบบให้ทำงานได้หลากหลาย งานบางอย่างเหล่านี้ง่ายมาก เช่น การเปิดประตูอัตโนมัติ อย่างอื่นอาจซับซ้อนกว่ามาก เช่น รถยนต์ขับเคลื่อนอัตโนมัติที่นำทางในสภาพแวดล้อมในเมือง ไม่ว่างานจะซับซ้อนแค่ไหนก็สามารถแบ่งย่อยเป็นงานที่เรียบง่ายได้ งานเหล่านี้เรียกว่าพฤติกรรมและเป็นองค์ประกอบสำคัญของการเขียนโปรแกรมหุ่นยนต์
พฤติกรรมเป็นวิธีหนึ่งที่หุ่นยนต์กระทำ และสามารถมีความซับซ้อนได้ ขึ้นอยู่กับวิธีสร้างหรือตั้งโปรแกรมหุ่นยนต์ หุ่นยนต์เคลื่อนที่ธรรมดาอย่าง VEX V5 Speedbot มีมอเตอร์เพียง 2 ตัว ในขณะที่ Clawbot มีมอเตอร์ 4 ตัว รวมถึงมอเตอร์เพิ่มเติมอีก 2 ตัวสำหรับ Arm และ Claw พฤติกรรมของหุ่นยนต์ทั้งสองจะเกี่ยวข้องกับการหมุนมอเตอร์เหล่านั้นเพื่อให้บรรลุเป้าหมายที่ตั้งไว้ ด้วยการออกแบบและการเขียนโปรแกรมที่มากขึ้น คุณสามารถเริ่มต้นจากพฤติกรรมง่ายๆ นี้และทำพฤติกรรมที่ซับซ้อนมากขึ้นได้
ด้านล่างนี้คือรายการพฤติกรรมของหุ่นยนต์ที่เพิ่มขึ้นจากง่ายไปเป็นซับซ้อนสำหรับทั้ง Speedbot และ Clawbot ในวงเล็บ คุณจะเห็นพฤติกรรมที่เรียบง่ายกว่าที่ประกอบขึ้นเป็นพฤติกรรมแต่ละอย่าง
-
หมุนมอเตอร์ที่กำหนดให้กับพอร์ตใดพอร์ตหนึ่ง
-
ขับไปข้างหน้า (หมุนมอเตอร์ทั้งซ้ายและขวาโดยใช้ระบบขับเคลื่อน)
-
เดินทาง 5 เมตร (ขับไปข้างหน้าแล้วหยุด)
-
คว้าวัตถุที่อยู่ห่างไกล (เดินทาง 2 เมตร หมุนมอเตอร์ก้ามปูเพื่อคว้า)
-
นำวัตถุมาวางบนชั้นวางสูง (หยิบวัตถุที่อยู่ไกลๆ หมุนตัว เคลื่อนที่ 2 เมตร ใช้แขนและมอเตอร์กรงเล็บเพื่อยกและปล่อยวัตถุ)
คุณสามารถดูได้ว่าคุณสามารถแยกโครงสร้างพฤติกรรมที่ซับซ้อนให้เป็นพฤติกรรมที่เรียบง่ายได้อย่างไร สิ่งเหล่านี้กลายเป็นองค์ประกอบสำคัญของงานที่ซับซ้อน
เคล็ดลับของครู
-
แนะนำให้นักเรียนแยกย่อยพฤติกรรมที่ซับซ้อนของหุ่นยนต์ออกเป็นขั้นตอนง่ายๆ เล็กๆ น้อยๆ กระบวนการนี้เรียกว่าการสลายตัว
-
อธิบายให้นักเรียนฟังว่าการแบ่งย่อย (แจกแจง) พฤติกรรมที่ซับซ้อนให้เป็นงานที่เรียบง่ายเป็นส่วนสำคัญของการวางแผนและการเขียนโปรแกรม
-
อนุญาตให้นักเรียนดำเนินโครงการของตนเองได้หากมีเวลาเรียนเพียงพอ
ขยายการเรียนรู้ของคุณ
เพื่อเชื่อมโยงกิจกรรมนี้กับการคิดเชิงคำนวณและการสลายตัว ขอให้นักเรียนจัดทำแผนผังหรือทำรายการขั้นตอนทางพฤติกรรมที่หุ่นยนต์จะดำเนินการเพื่อทำกิจกรรมด้านล่างให้เสร็จสิ้น:
-
กิจกรรมที่ 1 เดินทาง 1 เมตร กลับจุดเริ่มต้น
-
กิจกรรมที่ 2: พลิกกล่องที่อยู่ด้านหน้าหุ่นยนต์ 60 ซม.
-
กิจกรรมที่ 3: หยิบสิ่งของ เขย่า เคลื่อนที่ 30 ซม. วางสิ่งของลงบนพื้น และกลับสู่จุดเริ่มต้น
กระตุ้นให้เกิดการอภิปราย
นักเรียนควรแบ่งปันขั้นตอนด้านพฤติกรรมที่พวกเขาระบุไว้สำหรับกิจกรรมจากการขยายการเรียนรู้ของคุณข้างต้น คำถามแต่ละข้อต่อไปนี้สามารถถามได้หลังจากทำกิจกรรมใดๆ หรือทั้งหมด
ถาม: ขั้นตอนหรือพฤติกรรมใดที่แต่ละกลุ่มทำรายการ ทำกิจกรรมนี้สำเร็จหรือไม่?
A: นักเรียนจะต้องพิจารณาความยาวที่หุ่นยนต์ต้องเคลื่อนที่และการเคลื่อนไหวและความเร็วของแขน นอกเหนือจากการแสดงรายการพฤติกรรมง่ายๆ ของหุ่นยนต์ที่จำเป็นในการทำกิจกรรมหรืองานให้เสร็จสิ้น (การขับรถไปข้างหน้า ถอยหลัง เลี้ยวซ้ายหรือขวา) ). นักเรียนควรสร้างรายการพฤติกรรมของตนเองเพื่อนำเสนอแต่ละขั้นตอน
ถาม: อะไรคือความเหมือนและความแตกต่างระหว่างโซลูชันต่างๆ (รายการขั้นตอน) สำหรับกิจกรรมนี้?
A: นักเรียนจะทำการเปรียบเทียบตามวิธีแก้ปัญหาของตนเอง แผนภาพเวนน์อาจเป็นวิธีที่ดีในการจัดระเบียบขั้นตอนที่นักเรียนแชร์ หากนักเรียนส่วนใหญ่ตั้งชื่อขั้นตอนใดขั้นตอนหนึ่ง ให้เพิ่มขั้นตอนนั้นไว้ตรงกลางซึ่งมีวงกลมทับซ้อนกัน หากมีนักเรียนเพียงคนเดียวหรือสองสามคนตั้งชื่อขั้นตอนใดขั้นตอนหนึ่ง ให้เพิ่มลงในแวดวงหนึ่งหรืออีกแวดวงหนึ่ง เมื่อเสร็จแล้ว ขั้นตอนที่ตรงกลางควรจะเรียบง่ายที่เชื่อถือได้และไม่สามารถแยกย่อยเพิ่มเติมได้ ในขณะที่ขั้นตอนที่แสดงอยู่ในวงกลมเพียงวงเดียวอาจไม่ง่ายเท่าที่ควร อย่างไรก็ตาม รูปแบบนี้อาจกลับกันขึ้นอยู่กับประสบการณ์ของชั้นเรียนในการแจกแจงพฤติกรรมที่ซับซ้อนให้เป็นขั้นตอนที่ง่ายที่สุด
ถาม: มีความคล้ายคลึงกับโซลูชันที่ประสบความสำเร็จหรือไม่ ถ้าเป็นเช่นนั้นพวกเขาคืออะไร?
A: โซลูชันที่ประสบความสำเร็จมากที่สุดคือโซลูชันที่มีรายละเอียดและความเฉพาะเจาะจงมากที่สุด หุ่นยนต์ได้รับการตั้งโปรแกรมด้วยภาษาที่มีพฤติกรรมเฉพาะเจาะจงซึ่งถูกแบ่งออกเป็นส่วนประกอบที่เล็กที่สุด ตัวอย่างเช่น อาจเป็นเรื่องปกติที่จะพูดว่าหุ่นยนต์ "เดินทาง 1 เมตรและกลับไปยังจุดเริ่มต้น" แต่คำอธิบายระดับสูงนั้นไม่สามารถแปลได้ง่ายเมื่อเขียนโปรแกรม คุณต้องพังมันลงไปอีก โดยขับไปข้างหน้า 1 เมตร หมุน 180 องศา และขับไปข้างหน้า 1 เมตร แต่ถึงอย่างนั้นก็อาจไม่แม่นยำเพียงพอ และคุณต้องการรายละเอียดระดับนี้เพื่อให้พร้อมสำหรับการเขียนโปรแกรม: ตั้งค่าไดรฟ์และความเร็วการหมุนเป็น 40% ขับไปข้างหน้า 1 เมตร รอ 3 วินาที เลี้ยวซ้าย 180 องศา รอ 1 วินาที และขับไปข้างหน้าอีก 1 เมตร ยิ่งเราแจกแจงพฤติกรรมที่ซับซ้อนมากขึ้นเพื่อให้เป็นพฤติกรรมหุ่นยนต์ที่พร้อมสำหรับการเขียนโปรแกรม เราก็จะยิ่งเตรียมพร้อมในการทำโปรเจ็กต์ให้เสร็จได้ดียิ่งขึ้น