วันอาทิตย์ที่ 7 ตุลาคม พ.ศ. 2555

แนวทางการสร้างเมนูอย่างง่ายกับบอร์ด PopXT



   สวัสดีครับ หายไปนานจากบทความที่แล้ว เนื่องจากติดภารกิจสอบปลายภาคและตัดเกรดนักเรียน ก็เสร็จสิ้นแล้ว วันนี้เลยนำเอาตัวอย่างการสร้างเมนูอย่างง่าย ๆ สำหรับบอร์ด PopXT มานำเสนอเพื่อเป็นแนวทางในการพัฒนาโปรแกรมต่อยอดต่อไปนะครับ  ซึ่งตัวอย่างนี้จะใช้วิธีการกดปุ่ม sw_ok  เพียงปุ่มเดียว ในการเลื่อนเมนูและเลือกกดเมนูที่ต้องการ  เทคนิคที่ใช้คือ ตรวจสอบการกดปุ่ม โดยการจับเวลาการกดปุ่มถ้ากดนานเกิน 1200 มิลลิวินาทีให้ถือว่าเป็นการกดเพื่อเลือกเมนูนั้น ๆ แต่ถ้ากดปล่อยเวลาน้อยกว่า 1200 มิลลิวินาทีถือว่าเป็นการกดเพื่อเลื่อนเมนู
   โดยจะสร้างเงื่อนมาสองเงื่อนไขหลักในการตรวจสอบการกดปุ่ม sw_ok นะครับ คือ
1.ถ้ากดค้าง (pp=1) ก็ตรวจสอบอีกว่าตอนนี้อยู่เมนูที่เท่าไร
  โดยใช้เงื่อนไขใน switch(kk)  เพื่อให้ทำงานตามฟังก์ชันต่าง ๆ ที่อยู่ใน case
2.ถ้ากดปล่อยธรรมดา  (pp=0) ให้เพิ่มค่าให้ตัวแปร kk คือ เมนูที่เท่าไร แล้วทำการวนซ้ำขีดเส้นสี
  เพื่อแสดงการถูกเลือกหรือแสดงว่าเมนูอยู่ที่ลำดับเท่าไร
ส่วนของตัวแปรนะครับ สามารถคัดลอก(พิมพ์เอาเองนะครับ จะได้รู้ว่ามันเป็นมาอย่างไร อย่าขี่เกียจมันไม่ได้ช่วยให้เราพัฒนาขึ้นนะครับ)

     char title[]="ข้อความส่วนหัวของหน้าจอ"
     char m_menu[][20]={  "1.Sound ",
                                       "2.Servo",
                                       "3.Motor",
                                       "4.Port analog",
                                       "5.Calculator",
                                       "6.Exit"    };
    ตัวแปร m_menu[][20]  เป็นตัวแปรแบบ 2 มิติ  ตัวเลข [20] คือความกว้างของข้อความนะครับ เท่ากับ 20 ตัวอักขระ  สามารถกำหนดมากกว่าหรือน้อยกว่านี้แล้วแต่ขนาดความยาวของข้อความนั้น ๆและรายการที่อยู่ในตัวแปรอาเรย์นี้ก็สามารถเพิ่มเติมได้เลยนะครับ ในบรรทัดที่ 22 จะเป็นการคำนวณหาจำนวนอาเรย์หรือจำนวนเมนูทั้งหมดที่อยู่ในตัวแปรนี้ และเก็บไว้ในตัวแปร count_menu เป็นจำนวนของเมนูทั้งหมด

     ส่วนการนำตัวอย่างไปทดสอบ แก้ไขตัวแปร title , m_menu  และในเงื่อนไข switch(kk)  เพิ่มลบ case ใส่ฟังก์ชันที่ต้องการลงไปก็เสร็จพร้อมใช้งานครับ  

    เขียนไปเขียนมาเริ่มหาที่จบลงไม่ได้ เอาเป็นว่าดูโค๊ดตัวอย่าง และทำการทดสอบ มีปัญหาตรงไหนโพสผ่านคอมเมนท์มาคุยกันดีกว่า จะได้ทราบปัญหาและวิธีการแก้ปัญหา เรียนรู้ไปด้วยกัน (ไม่รู้จะอธิบายให้ละเอียดยังไงเหมือนกัน)

ตัวอย่างการใช้งาน(อันนี้เป็น UI แบบเก่าครับ อันใหม่ยังไม่ได้ถ่าย)
 ตัวอย่างการใช้งาน(อันนี้เป็น UI แบบใหม่ แต่เป็นการใช้ Knob เป็นตัวเลื่อนเมนู)
โค๊ดตัวอย่าง

วันพฤหัสบดีที่ 4 ตุลาคม พ.ศ. 2555

วิทยุบังคับ 4 ch ควบคุมหุ่นยนต์ inex pop-bot168


(อัพไว้ก่อน กันลืมเดี๋ยวค่อยมาจัดระเบียบใหม่)

     กว่าจะทำต้นแบบเสร็จ สามวันผ่านไป  โปรเจ็คใหม่สำหรับหุ่นยนต์แบบผสมครับ ใช้ชุดวิทยุเครื่องบินบังคับ 4 ch ควบคุมหุ่นยนต์ inex pop-bot168 สาธิตโดยนักเรียนชั้น ม.1 ยังบังคับไม่เป็นเลย อิอิ ก็อย่างว่าเตรียมไว้ให้ ม.ปลาย


วิดีโอตัวอย่างการบังคับ