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

การสร้าง map / สนาม / ภารกิจด้วยตัวเอง


การสร้าง map / สนาม / ภารกิจด้วยตัวเอง
                 ในบทนี้จะกล่าวถึงวิธีการสร้าง map / สนาม / ภารกิจด้วยตัวเอง จากโปรแกรมวาดรูปทั่วไป ตัวอย่างนี้จะยกตัวอย่างการสร้างสนามจากโปรแกรม Microsoft Paint มาเริ่มกันเลยนะครับ
1. เปิดโปรแกรม Microsoft Paint ขึ้นมาจากนั้นกำหนดความกว้างความสูงตามต้องการ โดยเลือกเมนู Paint -> Properties ดังรูปด้านล่างนี้

ในตัวอย่างนี้จะขอกำหนดความกว้าง 800 pixels ความสูง 500 pixels

เลือกดินสอ Pencil -> Brushes แบบที่ 1 -> Size เลือกขนาดความหนาที่ต้องการ -> เลือกสีดำ (สำหรับสร้างเส้นสีดำ)

ลงมือวาดสนามตามแต่จินตนาการ

ต่อไปเป็นขั้นตอนการบันทึก เลือกคำสั่ง Save as -> PNG picture

ตั้งชื่อสนามที่ต้องการแล้วคลิกที่ปุ่ม Save

กลับมาที่โปรแกรม c/c++ robot simulator เลือกคำสั่ง Load map as...

เลือก map ที่สร้างแล้วคลิกปุ่ม Open

จากได้ดังรูปด้านล่าง แล้วทำการหยับ จับ วาง หุ่นยนต์ วัตถุ ได้ตามต้องการ

ต่อไปทำการบันทึกการจัดวางตำแหน่งของหุ่นยนต์ จากเมนู Save Position in map ...

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

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



ส่วนประกอบของโปรแกรม 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

วันเสาร์ที่ 19 มกราคม พ.ศ. 2556

ดาวน์โหลด c/c++ robot simulator (DEMO)


            ความต้องการของระบบ
            OS : windows7, Vista , 2008 , (not supported windowsXP)
            CPU : 1Ghz up
            Ram : 512MB up
            Disk space : 2.5 MB
            display : screen resolution > 1024x768
            Microsoft .NET Framework 4
           
           
            ก่อนที่จะทำการดาวน์โหลดโปรแกรม c/c++ robot simulator (DEMO) จะัต้องทำการติดตั้ง Microsoft .NET Framework 4 ก่อนนะครับ ถ้ายังไม่ได้ทำการติดตั้ง คลิกตรงนี้ ถ้ามั่นใจแล้วว่าได้ทำการติดตั้ง .net4 แล้ว  เริ่มดาวน์โหลดโปรแกรมจากลิงค์ด้านล่างนี้
จากรูปด้านล่างนี้ให้คลิกที่ไฟล์ -> ดาวน์โหลด
เลือก "บันทึกแฟ้ม" และคลิกปุ่ม ตกลง
เมื่อดาวน์โหลดสำเร็จแล้ว ไปยังที่เก็บไฟล์ดาวน์โหลด คลิกขวาที่ไฟล์ c_robot_loader25560118.rar
เลือกเมนูคำสั่ง Extract Here เพื่อทำการแตกไฟล์
เมื่อทำการแตกไฟล์เรียบร้อยแล้วจะได้ไฟล์ c_robot_loader.exe ซึ่งเป็นไฟล์โปรแกรมพร้อมใช้งานได้เลยไม่ต้องทำการติดตั้ง สามารถดับเบิลคลิกที่ไฟล์ c_robot_loader.exe เพื่อเปิดโปรแกรมได้เลย

เมื่อดับเบิลคลิกโปรแกรมจะแสดงหน้าต่างเริ่มต้น ให้คลิกบริเวณใดก็ได้เพื่อทำการเข้าสู่โปรแกรมหลัก
จะได้โปรแกรม c/c++ robot simulator พร้อมใช้งานและเรียนรู้การเขียนโปรแกรมภาษาซีสำหรับควบคุมหุ่นยนต์ได้แล้วครับ