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

วันอาทิตย์ที่ 20 มกราคม พ.ศ. 2556

ส่วนประกอบของโปรแกรม



ส่วนประกอบของโปรแกรม C/C++ robot simulator



1.Input-Output Simulate ส่วนการจำลองระบบอินพุต - เอาท์พุต หุ่นยนต์
2.Toolbar แถบเครื่องมือ เป็นแถบปุ่มคำสั่งต่าง ๆ
3.Code Text Editor พื้นที่เขียนโค๊ดโปรแกรมภาษาซีโครงสร้างภาษา arduino
4.Information&log เป็นพื้นที่สำหรับแสดงสถานะการคอมไพล์ Compile แจ้งสถานะข้อผิดพลาดจากการเขียนโค๊ดโปรแกรม error ต่าง ๆ
5.Stage Simulate พื้นที่สำหรับการจำลองการทำงานของหุ่นยนต์ และภารกิจต่าง ๆ
1.Input-Output Simulate ส่วนการจำลองระบบอินพุต - เอาท์พุต หุ่นยนต์
    1.1 LCD Output Module เป็นหน้าจอสำหรับแสดงผลข้อความ ตัวเลข
    1.2 Digital Switch Input Module เป็นปุ่มแบบดิจิตอล ประกอบไปด้วย sw1 , sw2 , sw3 และปุ่ม Reset สำหรับเริ่มต้นการทำงานใหม่ของหุ่นยนต์จำลองและรีเซ็ตสนาม , ตำแหน่งของวัตถุต่าง ๆ เมื่อมีการกดปุ่มสวิตซ์ใด ๆ จะมีไฟสถานะของปุ่มนั้น ๆ สว่างด้วย
    1.3 Motor DC Output Module เป็นส่วนจำลองการทำงานวงจรจ่ายไฟกระแสตรงของมอเตอร์ มี 2 ช่อง
             คือ M1 , M2
             M1 ควบคุมมอเตอร์และล้อหุ่นยนต์ข้างซ้าย
             M2 ควบคุมมอเตอร์และล้อหุ่นยนต์ข้างขวา
ไฟสถานะปกติ ไฟสถานะเดินหน้า ไฟสถานะถอยหลัง
    1.4 Analog Input port เป็นส่วนจำลองการต่อพ่วงกับอุปกรณ์ตัวตรวจจับอื่น ๆ เช่น เซนเซอร์สำหรับอ่านสีของพื้นสนาม , สีของวัตถุ ฯลฯ การเปิดปิดหรือต่อเข้ากับอุปกรณ์ทำได้จากแถบเครื่องมือ zx setting

           ชื่อพอร์ต pa0 ,pa1 ,pa2 ,pa3 ,pa4 ,pa5 ,pa6 ,pa7 ใช้สำหรับอ่านค่าสีจากพื้นสนาม
           ชื่อพอร์ต pa8 ใช้สำหรับอ่านค่าสีจากวัตถุที่อยู่ด้านหน้าของหุ่นยนต์
           การอ่านค่าใช้คำสั่ง analog(x);    x คือช่องที่ต้องการจะอ่านค่า



2.Toolbar แถบเครื่องมือ เป็นแถบปุ่มคำสั่งต่าง ๆ
2.1  ใช้สร้างไฟล์เอกสารโปรเจ็ค .C ใหม่ เพื่อเริ่มเขียนโปรแกรมใหม่
2.2  ใช้เปิดไฟล์เอกสารโปรเจ็ค .C เดิมที่เคยบันทึกไว้ ขึ้นมาแก้ไขเขียนโปรแกรมเพิ่มเติม
2.3  ใช้บันทึกไฟล์เอกสารโปรเจ็ค .C ปัจจุบัน บึนทึกการจัดวาง sensor , map ต่าง ๆ
2.4  ตัดข้อความที่ถูกเลือกจากหน้า Code Text Editor ไปเก็บไว้ในคลิปบอร์ดของโปรแกรม
      คีย์ลัด Shift+Delete
2.5  คัดลอกข้อความที่ถูกเลือกจากหน้า Code Text Editor ไปเก็บไว้ในคลิปบอร์ดของโปรแกรม
      คีย์ลัด Control+Insert
2.6  นำข้อความในคลิปบอร์ดของโปรแกรมมาวาง/แปะลงในหน้า Code Text Editor ตำแหน่งที่
      เคอร์เซอร์ (Ibeam) อยู่ คีย์ลัด Shift+Insert
2.7  ยกเลิกการพิมพ์ในหน้า Code Text Editor ครั้งล่าสุด/ครั้งสุดท้าย
2.8  ทำซ้ำการพิมพ์ในหน้า Code Text Editor ครั้งล่าสุด/ครั้งสุดท้าย
2.9  พิมพ์ข้อความที่ต้องการค้นหาลงในช่องข้อความ กดปุ่ม Enter จะทำการค้นหา
      ข้อความในหน้า Code Text Editor
2.10  ใช้ในการคอมไพล์ Compile แปลภาษาซีจาก Code Text Editor เพื่อหาข้อผิดพลาดของ
      โปรแกรมและแปลงโค็ดให้เป็นภาษาเครื่องคอมฯ
2.11  ใช้ในการเริ่มจำลองการทำงานของหุ่นยนต์จาก SourceCode ที่ได้ทำการคอมไฟล์เสร็จแล้ว
2.12  หยุดการจำลองการทำงานของหุ่นยนต์
2.13  ใช้เลือกแบบหุ่นยนต์จำลอง มีหลายแบบให้เลือกเพื่อความสนุกในการเขียนโปรแกรม
 มีให้เลือกดังนี้
2.14  ใช้สำหรับหมุน/หันตัวหุ่นยนต์จำลองไปทางซ้าย
2.15  ใช้สำหรับหมุน/หันตัวหุ่นยนต์จำลองไปทางขวา
2.16  ใช้ในการกำหนดค่าต่าง ๆ ของ Sensor เช่น การเปิด/ปิดการใช้งาน sensor , กำหนดตัวแหน่ง
      การจัดวาง , การแสดงสีของ sensor ฯลฯ
2.17  เป็นเครื่องมือ Track Line Editor สำหรับเขียนโค๊ดอัตโนมัติสำหรับควบคุมการเดินตามเส้น
      โดยการกำหนดเงื่อนไขต่าง ๆ
2.18 เมนูสำหรับเลือก map / สนาม ภารกิจต่าง ๆ ค่าเริ่มต้นของโปรแกรมมีให้เลือกดังนี้
2.18.1 Reload map คือการรีเซ็ตสนามใหม่จากสนามล่าสุด
2.18.2 Load map as.. คือการโหลดสนามจากที่อื่น/แหล่งเก็บข้อมูลอื่น ๆ หรือสนามที่สร้างขึ้นเอง
2.18.3 Save Position in map.. คือการบันทึกสนาม ภารกิจที่กำหนดเอง รวมถึงบันทึกตำแหน่งของหุ่นยนต์ , วัตถุ


2.19   เป็นเครื่องมือการสร้างเส้นทางอัตโนมัติโดยการคลิกลากเส้นทางให้กับหุ่นยนต์ แล้วโปรแกรม
       จะ Generate เป็น SourceCode เส้นทางให้อัตโนมัติ
2.19.1 โหมดสร้างเส้นทาง เลือกเมนูนี้ก่อนแล้วจึงคลิกลากเส้นทางที่สนาม
2.19.2 เริ่มการนับแยก ใช้กำหนดการนับแยกจะให้เริ่มต้นแยกที่เท่าไร
2.19.3 คำนวณสร้างเส้นทาง ใช้เมื่อลากเส้นทางเสร็จแล้ว โปรแกรมจะทำการประมวลผลเส้นทางที่ได้ลากวางไว้ หรือกำหนดไว้แล้วในสนาม ออกมาเป็น sourcecode ภาษาซีสำหรับเป็นเส้นทางการเดินของหุ่นยนต์
2.20 แสดงหน้าจอผู้จัดทำ ซึ่งจากรูปจะปิดตานักเรียนไว้เผื่อใครอยากรู้จักหน้าก็หยิบวัตถุทรงกลม
      นั้นออกก็จะเห็นหน้าตาผู้ช่วยและคนทดสอบโปรแกรม
3.Code Text Editor พื้นที่เขียนโค๊ดโปรแกรมภาษาซีโครงสร้างภาษา arduino
          เป็นพื้นที่สำหรับเขียนโปรแกรมภาษาซีโครงสร้างภาษา Arduino ออกแบบให้มีสีสรรตามรูปประโยคที่นิยมใช้ในโปรแกรมภาษาทั่วไป เพิ่มการแสดงเลขบรรทัดเพื่อง่ายต่อการหาข้อผิดพลาดจากการเขียนโปรแกรม ขณะที่ทำการคอมไพล์
4.Information&log เป็นพื้นที่สำหรับแสดงสถานะการคอมไพล์ Compile แจ้งสถานะข้อผิดพลาดจากการเขียนโค๊ดโปรแกรม error ต่าง ๆ
         เป็นพื้นที่สำหรับแสดงสถานะการคอมไพล์ Compile แจ้งสถานะข้อผิดพลาดจากการเขียนโค๊ดโปรแกรม error ต่าง ๆ เช่นจากใจรูปมีการผิดพลาดในการคอมไพล์โปรแกรมจาก SourceCode ที่หน้า Code Text Editor บรรทัดที่ 3 คอมลัมน์ที่ 9 จากเครื่องหมายไม่ถูกต้องจาก คำสั่ง fd()  ซึ่งต้องแก้ไขด้วยการเติมเครื่องหมาย ; ลงไปท้ายประโยคคำสั่งนั้น fd(); เป็นต้น
5.Stage Simulate พื้นที่สำหรับการจำลองการทำงานของหุ่นยนต์ และภารกิจต่าง ๆ
   สามารถจับลากวัตถุต่าง ๆ ได้ตลอดเวลาขณะเขียนโค๊ดโปรแกรม หรือขณะ run simulator

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

  1. ไม่ระบุชื่อ26 กันยายน 2556 เวลา 00:15

    ต้องการโหลดแต่โหลดไม่ได้ งงว่ะ

    ตอบลบ
  2. ไม่ระบุชื่อ26 กันยายน 2556 เวลา 00:53

    not yet load ng???

    ตอบลบ
    คำตอบ
    1. วิธีการดาวน์โหลด เข้าไปอ่านในลิงค์นี้นะครับ หลักการคล้าย ๆ กัน http://krumonrobot.blogspot.com/2013/01/cc-robot-simulator-demo.html

      สำหรับวิธีการติดตั้งและลิงค์เวอร์ชันใหม่ล่าสุด http://krumonrobot.blogspot.com/2013/07/c-robot-sim-full-v10130715-no-key.html

      ลบ
  3. เป็นความรู้ดีมากๆเลยครับ

    ตอบลบ

...