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); สำหรับอ่านสีของวัตถุด้านหน้าหุ่นยนต์หรือเมื่อถูกชน

วันพุธที่ 2 มกราคม พ.ศ. 2556

อัพเดตโปรแกรม


       วันที่ 28 ธันวาคม 2555 วันนี้ขโมยเวลาสอนของนักเรียน 1 ชั่วโมง มานั่งทำโปรแกรม C/C++ robot simulator โดยเพิ่มเติมในส่วนต่อไปนี้

*การอ่านค่าสีของวัตถุที่อยู่ด้านหน้าของหุ่นยนต์หรือวัตถุที่ถูกชน โดยเพิ่มคำสั่งในการอ่านค่า analog(8); คืนค่ามาเป็นค่าสีต่าง ๆ
         ดำ      ประมาณ 0 - 20
         ขาว    ประมาณ 1000 - 1024
         แดง    ประมาณ 520 - 550
         เขียว   ประมาณ 350 - 370
         น้ำเงิน ประมาณ 160 - 180
*คำสั่ง lcd ปรับและแก้ไขให้เหมือนชุดคำสั่งของหุ่นยนต์ inex และซีทั่วไป
     โดยรูปแบบการใช้งานใช้         lcd (string text , param );
         เช่น     lcd ( " pa0 = %d "  , analog(0) );
         หรือ     lcd ( " pa0 = %d   pa1 = %d "  , analog(0), analog(1) );
*การโหลด map หรือสนามจะที่อื่นๆ หรือสนามจากการสร้างขึ้นเองจากโปรแกรมใด ๆ ที่สามารถสร้างรูปประเภท png  , jpg , bmp
*การซุ่มวัตถุทรงกลมสีต่าง ๆ โดยแยกเป็นชุดสี ดำ-ขาว ซุ่มกันเองคือสลับตำแหน่งเฉพาะสีขาว-ดำ  และซุ่มเฉพาะสี แดง เขียว น้ำเงิน
  โดยแก้ให้ซุ่มหรือไม่ซุ่มได้จากไฟล์ .pos ในส่วนของ random =0 คือไม่ซุ่ม random =1 คือซุ่ม
*การชนวัตถุทรงกลมให้มีความเหมือนจริง คือคำนวณจากพิกัดทิศทางการชนให้สะท้อนไปยังทิศทางต่าง ๆ คล้ายกับลูกสนุ๊กเกอร์
*เพิ่มฟังก์ชันการ debug โปรแกรมระัหว่างเขียนและทดสอบโปรแกรม
*ปรับเอนจินการแสดงผลให้เร็วขึ้น ( CPU จะถูกโหลดการทำงานมากขึ้นประมาณ 30 %)
*ระหว่างที่มีการแก้ไขโค๊ดในส่วนของ Editor หรือมีการหยุดการทำงานของหุ่นยนต์ (stop simulator) จะให้มีการแสดงผลในส่วนหน้าจอกราฟฟิกของตัวจำลอง ให้มีอัตราการ refresh น้อยลงเพื่อลดการประมวลผลในส่วนของกราฟฟิกแต่เมื่อมีการ run simulator ปรับความเร็วขึ้นเพื่อให้ดูลื่นไหล
*ปัญหาตอนนี้คือ เอนจินทำเองอาจจะมีการกระตุกบ้างถ้ามีการเปิดโปรแกรมอื่นขึ้นมาเยอะสำหรับเครื่องที่ไม่แรงเท่าไร  (โอกาสต่อไปถ้ามีเวลามากกว่านี้ คงจะต้องพึ่งเอนจินของ xna อย่างแน่นอน)

       ต่อไปก็เป็นการทดสอบโปรแกรมโดยให้เด็ก ๆ ช่วยเป็น debuger  อันนี้ผลงานเด็ก ม.1 เล็ก ดช.อภิสิทธิ์ บุญทูล นะครับ เป็นหนูทดลองช่วยทดสอบโปรแกรม simulator ให้ (ไปแอบจับภาพหน้าจอตอนที่เขากำลังเขียนโปรแกรมทดสอบ) ดูไปดูมาเก่งกว่าครูคนสร้างโปรแกรมซะอีก ครูบอกว่ามันต้องอย่างนี้ แต่เด็กมันบอกว่าครูครับ ผมทำแบบนี้มันก็ได้นะครับครู !! เออ... จริงของเด็กทำเอาครูทึ่ง พัฒนาการเร็วมากเลย.. สงสัยอนาคตไปไกลกว่าครู

       วิดีโอถูกปรับ speed ขึ้นอีก 15% เพื่อให้กระชับกับเวลา และวิธีการเขียนโปรแกรมบางอย่างดูมั่ว ๆ ตามประสาเด็กเอย


อีกชุด

1 ความคิดเห็น:

  1. ครูมนตรี อกอุ่น ผมขอโปแกรมหน่อยได้รึเปล่าครับ ผมกำลังอยากจะศึกษาการเขียนโปรแกรมแบบ C ดูครับ ขอบคุณมากนะครับ
    kittipong_mail1@hotmail.com

    ตอบลบ

...