c/c++ robot simulator เรียนรู้การเขียนโปรแกรมควบคุมหุ่นยนต์ด้วยภาษา c/c++ สำหรับเด็กนักเรียนระดับประถมศึกษา , มัธยมต้น-ปลาย  
introduction
Readme
      #โปรแกรม c/c++ robot simulator จัดทำขึ้นเพื่อมุ่งหวังให้นักเรียนของผมเองได้เรียนรู้ การเขียนโปรแกรมภาษาซีเพื่อควบคุมหุ่นยนต์ ซึ่งสามารถพัฒนาทักษะด้านการเขียนโปรแกรมภาษาซีได้เป็นอย่างดี (เท่าที่ได้ทดลองใช้)
      #นักเรียนได้มีส่วนช่วยในการออกแบบ,แนวคิดการทำงาน,ช่วยในการทดสอบโปรแกรม
      #RoboMind + Scratch + Logo = c/c++ robot simulator
      #การออกแบบเน้นโครงสร้างภาษาซีแบบ Arduino ซึ่งนิยมใช้กับไมโครคอนโทรลเลอร์ที่ใช้กับหุ่นยนต์
      #Library&Function ต่าง ๆ อ้างอิงจากหุ่นยนต์ของบริษัท iNex (ไม่ได้มีส่วนได้ส่วนเสียกับเขานะครับ เพียงแต่มีหุ่นของเขาเลยต้องออกแบบให้เหมือนกัน เพื่อง่ายต่อการเขียนกับหุ่นยนต์จริงๆ ) ซึ่ง Source Code ที่เขียนจากโปรแกรมนี้ สามารถนำไปประยุกต์ใช้กับหุ่นยนต์ของ iNex (pop-bot,pop-xt) ได้
      #โปรแกรมนี้เป็นเวอร์ชันแรก อาจจะมีข้อผิดพลาดหรือบกพร่องบางประการ ต้องขออภัยด้วยครับ ถ้าพอเจอข้อผิดพลาดสามารถแนะนำ เพิ่มเติม รายงานข้อผิดพลาดที่เกิดขึ้นดังกล่าวจากการทำงานของโปรแกรมจะขอขอบคุณเป็นอย่างสูง และจะนำเอาข้อบกพร่อง ข้อผิดพลาดต่าง ๆ ไปปรับปรุงแก้ไขพัฒนาให้สมบูรณ์ยิ่งขึ้นไปครับ
      #ส่วนบทเรียนจะทยอยอัพข้อมูลเพิ่มเติม ต่อไปครับ
      #สำหรับบทเรียนและตัวอย่าง การใช้งาน ยังไม่ได้จัดหมวด สามารถหาข้อมูลเพิ่มเติมจาก เมนูรายการบทความด้านซ้ายมือนะครับ
      #เหตุผลที่ออกเวอร์ชั่น DEMO เพราะต้องการทราบผลการทำงานของโปรแกรมในสภาพแวดล้อมอื่น ๆ (ทรัพยากรใน รร.มีจำกัด) และเก็บรวบรวมข้อมูลจากปัญหา Error ต่าง ๆ , ความต้องการของผู้ใช้งาน ฯลฯ เมื่อได้ข้อมูลจนเป็นที่หน้าพอใจแล้ว จึงจะปล่อยฉบับเต็ม Full version ต่อไปครับ
      #สำหรับข้อคอมเมนท์หรือการสอบถามต่าง ๆ อาจจะตอบช้าบ้างนะครับ เพราะอาชีพครูของผม สอนทั้งวัน ดูแลนักเรียนแต่เช้ายันเย็น งานนอกเหนือจากการสอน,คำสั่งนั่นนี่ อีกมากมาย อาจจะใช้เวลานานซักหน่อยต้องขออภัยด้วยนะครับ
 
/* ขอขอบคุณทุกท่านที่ให้ความสนใจ */
ครูมนตรี อกอุ่น
ครูโรงเรียนมัธยมทับทิมสยาม04
สพม.สุรินทร์ เขต 33







บันทึกเพิ่มเติม
-เป็นโปรแกรมที่จำลองการเขียนโปรแกรมควบคุมหุ่นยนต์
-เป็นโปรแกรมช่วยฝึกการเขียนโปรแกรมแบบง่าย - ยาก
-เหมาะสำหรับเด็กที่เริ่มต้นฝึกเขียนโปรแกรม ในระดับชั้นประถมศึกษา,มัธยมศึกษาตอนต้น-ปลาย
-โปรแกรมมีลักษณะคล้ายเกมที่ให้ผู้เรียนได้ลองเขียนคำสั่งควบคุมหุ่นยนต์ โดยใช้ภาษาซีในการสั่งงาน
-สามารถสร้างสถานการณ์ต่างๆได้โดยการสร้างแผนที่และวางสิ่งกีดขวาง ต่างๆให้ผู้เรียนได้แก้ปัญหาต่างๆ โดยใช้ภาษาคอมพิวเตอร์ (ภาษาซี) ในการแก้ปัญหา
-สามารถเขียนโค๊ดภาษาซีมาตรฐาน GCC และมาตรฐาน Arduino ได้
-เรียนรู้ภาษาซีได้อย่างสนุกและเข้าใจง่าย
-ไม่จำเป็นต้องมีหุ่นยนต์จริง ๆ ก็สามารถเรียนรู้เรื่องหุ่นยนต์ได้
-
news
16กค56-> ยกเลิกระบบการใช้ KEY เพื่อเผยแพร่ให้สามารถใช้งานโดยทั่วไปได้อย่างไม่จำกัด โดยได้รับการสนับสนุนจาก INEX บริษัท อินโนเวตีฟ เอ็กเพอริเมนต์ จำกัด ขอขอบคุณ คุณชัยวัฒน์ ลิ้มพรจิตรวิไล มา ณ ที่นี้ด้วย ที่ทำให้ซอฟต์แวร์ไทยได้เปิดตัวเข้าสู่วงการหุ่นยนต์ไทย และเปิดกว้างสู่โลกแห่งการเรียนรู้อย่างแท้จริง ขอขอบคุณครับ
11กค56-> งดการแจกKEYเพียงเท่านี้...
11กค56-> ฟังก์ชันการทำงานบางประเภท ที่เป็นการอำนวยความสะดวกและที่เป็นอัตโนมัติ ในโปรแกรมตัวเต็ม จะขอยังไม่เปิดเผย เนื่องจากสนามและกติกา สพฐ.ครั้งที่ 63 นี้ไม่ได้แตกต่างจากปีที่แล้วมากนัก จึงไม่ขอเปิดเผยเพราะจะไม่ทำให้เกิดการพัฒนาตัวเอง ในกระบวนการแก้ปัญหาต่าง ๆ และเพื่อให้เกิดการเรียนรู้ด้วยตนเอง การทดลอง การลองผิดลองถูก จะได้มีความคิดที่หลากหลาย เทคนิค อัลกอริทึล แต่ละคนจะไม่เหมือนกันอยู่แล้ว เหมือนบางคนกินข้าวมือซ้ายบางคนมือขวา กินข้าวก่อนกินน้ำหรือกินน้ำก่อนกินข้าว สุดท้ายแล้วก็อิ่มเหมือนกัน การเรียนการสอนหุ่นยนต์สำหรับนักเรียนอย่าพยายามบอกวิธีการเด็ก พยายามให้เด็กได้แก้ด้วยตนเองก่อน บางเทคนิควิธีเด็กทำได้ดีกว่าครูซะอีก ฝากไว้คิดนะครับ
11กค56-> เพิ่มเติมคำสั่ง keep_up(); สำหรับเก็บกระป๋อง keep_down(); สำหรับวางกระป๋อง ในเวอร์ขั่น 1.0.130708 ได้เพิ่มไว้แล้วแต่ลืมเขียนในคู่มือ Library & Function
10กค56-> เปิดให้ดาวน์โหลดภารกิจสนามการแข่งขันหุ่ยนต์อัตโนมัติ งานศิลปหัตถกรรม ครั้งที่ 63 ซึ่งจริง ๆ แล้วเป็นสนามเก่าเมื่อปีที่แล้วปรับเปลี่ยนนิดหน่อย เพิ่งออกประกาศกติกาอย่างเป็นทางการเมื่อวันที 9 กค 56 จึงได้จัดทำสนามเพื่อฝึกซ้อมให้แก้ปัญหาจากการจำลองก่อนลงมือจริง จะได้ฝึกออกแบบเส้นทางการเดินของหุ่นยนต์และกระบวนการอื่น ๆ
08กค56-> หายไปนานเลย จนลืม 55 ติดภาระกิจเรื่องโรงเรียนและเรื่องเรียนต่อ ป.โท ช่วงนี้เริ่มจะซาเรื่องงานลงหน่อย ได้ออกตัวเต็มเวอร์ชั่น 1.0.130708 สามารถใช้งานได้อย่างเต็มที่ทุกออฟชั่นเลย และช่วงนี้กำลังปรับปรุงให้มีความสามารถมากขึ้นกว่าเดิม สำหรับท่านใดที่มีความสนใจเวอร์ชั่นเต็มติดต่อผ่าน E-mail : c2robot4sim@gmail.com ได้เลย
28มค56-> ช่วงนี้ขอหยุดการอัพเดตข้อมูลจนกว่าการแข่งขันงานศิลปหัตถกรรมฯ ระดับชาติ ผ่านพ้นไปก่อน เพราะต้องเตรียมความพร้อมให้นักเรียนก่อนไปแข่งซะหน่อย
27มค56-> เพิ่มฟังก์ชัน analog(8); สำหรับอ่านสีของวัตถุด้านหน้าหุ่นยนต์หรือเมื่อถูกชน

วันศุกร์ที่ 3 สิงหาคม พ.ศ. 2555

ภารกิจที่ 1 ดันวัตถุออกนอกสนามให้หมด


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

   รูปแบบคำสั่งมีดังนี้
1. คำสั่ง l90      เลี้ยวซ้าย90 องศา (แอล90 นะ)
2. คำสั่ง r90     เลี้ยวขวา90 องศา
3. คำสั่ง u180  เลี้ยวกลับหลังหัน
4. คำสั่ง up      เก็บของ การทำงานคำสั่งนี้มันจะเดินตรงไปหาวัตถุเอง ระหว่างนั้นจะไม่นับแยกนะ
5. คำสั่ง down วางของ/วัตถุลง
6. คำสั่ง push   ผลักหรือดันวัตถุไปข้างหน้าแล้วถอย
7. คำสั่ง stop   หยุดการทำงานของหุ่นยนต์

   เมื่อนักเรียนได้เรียนรู้รูปแบบคำสั่งไปกันแล้วมันเริ่มทำภารกิจที่ 1 กันเลยดีกว่านะครับ
กับ "ดันวัตถุให้มันออกนอกสนามให้หมด"

ในสนามนี้จะวางวัตถุตามรูปด้านบนนี้นะครับ นักเรียนไม่ต้องกังวลว่าจะจัดตำแหน่ง
ไม่ถูกนะครับ ให้คลิกที่ปุ่ม 1 แล้วโปรแกรมจะจัดตำแหน่งให้เหมือนเดิม   มาเริ่มวิเคราะห์
และวางแผนกันหน่อย  จากรูป หุ่นยนต์หันหน้าไปทางขวา จะเริ่มนับแยกเป็น 0 ดูจาก
ขอบสนามทางด้านล่างขวา Cross : 0  นะครับ  ต่อไปหุ่นยนต์เดินหน้าไปเจอแยก
ที่ 1 ครูจะให้มันเลี้ยวขวา จะพิมพ์คำสั่งดังนี้นะครับ

ต่อไปนะครับ หุ่นยนต์ก็จะเดินตรงไปเจอแยกที่ 2 ถ้าไม่มีการเลี้ยวก็ไม่ต้องใส่อะไรลงไป
นะครับ ต่อไปเมื่อเจอแยกที่ 3 จะสั่งให้มันเลี้ยวขวาอีก แล้วเดินตรงไปเจอแยกที่ 4 ให้
ทำการผลักวัตถุไม้ ใช้คำสั่ง push  และตามด้วยคำสั่ง u180 เพื่อให้หุ่นยนต์หันกลับมา
ในบรรทัดนี้จะมี 2 คำสั่งด้วยนะ  ดังรูปด้านล่างนี้
ทดสอบดูนะครับด้วยการกดปุ่ม 
 ปุ่ม play first เริ่มเล่นตั้งแต่แรก หรือแยกที่ 0 นั่นเองครับ


ผลลัพธ์ก็จะได้ดังนี้นะครับ  http://youtu.be/TFmRKuoCkzk   ดูจาก youtube ก่อนนะ

และต่อไปให้นักเรียนลงมือปฏิบัติด้วยตนเองนะครับ ทำให้ดูเป็นตัวอย่างเพียง
เท่านี้และค่อยมาดูเฉลยกันต่อไปนะครับ เมื่อนักเรียนทำเสร็จแล้วให้ทำการบันทึก
งานของนักเรียนไว้ด้วยนะครับ ปุ่มรูปแผ่นดิสเก็ต หรือสัญลักษณ์การบันทึกนั่นหล่ะ






ไม่มีความคิดเห็น:

แสดงความคิดเห็น

...