Robot Proto Invention Wireless สมเกียรติ กิจวงศ์วฒ ั นะ
ควบคุมหุ่นยนต์ผ่าน WiFi ด้วยอุปกรณ์แอนดรอยด์ และคอมพิวเตอร์ โครงงานควบคุ ม หุ ่ น ยนต์ ที่ ใ ช้ ArduinoBased ผ่าน WiFi มาแล้ววววว เพียงเพิ่ม อุปกรณ์สื่อสารผ่าน WiFi เข้ากับหุ่นยนต์ ตั ว เดิ ม กั บ ออกแรงพั ฒ นาแอปบนมื อ ถื อ แอนดรอยด์หรือจะเขียนโปรแกรมด้วย C# เพื่อใช้คอมพิวเตอร์ควบคุม ก็ท�ำได้ทั้งนั้น มาลองท�ำ ลองใช้ ลองเล่นไปด้วยกัน หนึง่ ในเสียงเรี ยกร้ องที่มีมาอย่างต่อเนื่องยังกอง บก. TPE คือ โคงงาน หุน่ ยนต์ที่ควบคุมการเคลื่อนที่แบบไร้ สายผ่านระบบ LAN ไร้ สาย หรื อ WiFi ทางทีมงานโครงงานก็ไม่ได้ นิ่งนอนใจ ลงมือพัฒนาและทดสอบจนแน่ใจว่า ใช้ ได้ จึงได้ ฤกษ์ ออกมารับใช้ คณ ุ ผู้อา่ น นี่คือ โครงงานหุน่ ยนต์ควบคุมผ่าน WiFi ด้ วยอุปกรณ์แอนดรอยด์หรื อคอมพิวเตอร์ ก็ได้
ท�ำไมต้อง WiFi
หน้ าตาของหุน่ ยนต์แสดงในรูปที่ 1 การสร้ างให้ เป็ นตัวพร้ อมใช้ งาน ต้ องขอให้ ไปอ่านจากคู่มือของหุ่นยนต์ รวมถึงการเขียนโปรแกรมเบื ้องต้ น เพื่ อ ให้ มัน เคลื่ อ นที่ ไ ด้ เพื่ อ ทดสอบและเรี ย นรู้ เกี่ ย วกับ การใช้ ง านและ อัปโหลดโปรแกรมลงในหุ่นยนต์ ส�ำหรับในโครงงานนี ้ผู้เขียนได้ เตรี ยมโค้ ด ไว้ ให้ แล้ ว น�ำไปใช้ งานได้ ทนั ที หรื อจะดัดแปลงต่อยอดก็ท�ำได้
จะว่ า ไปการควบคุ ม หุ่ น ยนต์ แ บบไร้ สายที่ ไ ม่ ย ากนั ก และราคา ประหยัดหน่อย มักใช้ โมดูลบลูทธู โดยเฉพาะอย่างยิ่งหากต้ องการใช้ อปุ ก รณ์แอนดรอยด์ในการควบคุม แต่ข้อจ�ำกัดหนึง่ ที่ผ้ เู ขียนพบคือ อุปกรณ์แอน ดรอยด์ (ราคาถูก) หลายๆ ตัวมักจะไม่มีระบบบลูทธู มาให้ ด้วย เนื่องมาจาก ถูกตัดออกไปเพื่อลดต้ นทุน ท�ำให้ หลายๆ คนที่มีอปุ กรณ์แอนดรอยด์อยูจ่ งึ ไม่สามารถใช้ ควบคุมหุ่นยนต์แบบไร้ สายผ่านบลูทธู ได้ ผู้เขียนจึงขันอาสา ทะลวงข้ อจ�ำกัดนี ้ ด้ วยการเปลี่ยนมาใช้ การสื่อสารข้ อมูลและควบคุมผ่าน WiFi แทน เพื่อยกระดับการควบคุมหุน่ ยนต์แบบไร้ สายให้ มีประสิทธิภาพ มากขึ ้น
POP-BOT XT คือตัวแทนหุ่นยนต์ Arduino-based เพื่อให้ ง่ายต่อการพัฒนาโปรแกรมทางฝั่ งหุ่นยนต์จึงเลือกใช้ ห่นุ ยนต์ ที่ใช้ ไมโครคอนโทรลเลอร์ ในแบบ Arduino-based ซึง่ ได้ รับความนิยมสูง หาตัวอย่าง ดัดแปลงและต่อยอดได้ ไม่ยาก ในโครงงานนีเ้ ลือกใช้ ห่นุ ยนต์ เพื่อการศึกษาชี่อ POP-BOT XT (ติดต่อ www.inex.co.th) เนื่องจากที่สว่ น ควบคุมมีจอแสดงผลแบบกราฟิ ก LCD สีที่แสดงตัวอักษรได้ 16 บรรทัด บรรทัด ละ 21 ตัว อัก ษรที่ ข นาดปกติ เพื่ อ ใช้ แ สดงสาถนะต่า งๆ รวมถึ ง หมายเลข IP ที่ใช้ เชื่อมต่อ และมีจดุ ต่อ UART อิสระอีก 1 ชุดที่รองรับการเชื่อม ต่อกับโมดูลสื่อสารข้ อมูลอนุกรมภายนอก ท�ำให้ สะดวกต่อการเชี่ อมต่อ และการพัฒนาโปรแกรม
รูปที่ 1 POP-BOT XT หุ่นยนต์ Arduino-Based ที่เข้ากันได้กับ Aruino Leonardo
The Prototype Electronics
55
สู่ WiFi ด้วยโมดูล WiFly การลงทุนที่ไม่มีความเสี่ยง ในการสื่อสารไร้ สายระหว่างหุ่นยนต์กบั อุปกรณ์ แอนดรอยด์มกั นิยม ใช้ ชอ่ งทางผ่านบลูทธู เนื่องจากราคาของโมดูลบลูทธู (ยกตัวอย่าง โมดูล BlueStick ของ INEX) ค่อนข้ างถูก และใช้ งานง่าย เมื่อเปลี่ยนมาใช้ การ สื่อสารและควบคุมผ่าน WiFi สิง่ ต้ องเปลี่ยนตามกันมาคือ โมดูลสื่อสาร ข้ อมูลที่ต้องท�ำงานรองรับกับ WiFi นัน่ คือ โมดูล WiFly ที่ต้องจัดหามาพร้ อม กับบอร์ ดเชื่อมต่อที่ชื่อ ADX-XBee5V (อุปกรณ์ทงหมดดู ั้ ได้ ที่ www.inex. co.th) ดังแสดงในรูปที่ 2 เมื่อเปลี่ยนมาใช้ การสื่อสารผ่าน WiFi ท�ำให้ ปัญหาบลูทธู บนอุปกรณ์ แอนดรอยด์หมดไป เพราะอุปกรณ์ แอนดรอยด์ทกุ เครื่ องมีระบบหรื อวงจร WiFi ติดมาอยูแ่ ล้ ว นอกจากนันยั ้ งสามารถเปลีย่ นมาใช้ คอมพิวเตอร์ ควบคุม ผ่าน WiFi ก็ได้ ด้วยเช่นกัน โดยต้ องท�ำงานร่วมกับ WiFi Router ด้ วย ดังนันการลงทุ ้ นกับอุปกรณ์สื่อสารข้ อมูลผ่าน WiFi ที่ชื่อ WiFly จึง เป็ นการลงทุนที่ค้ ุมค่า ผู้ใช้ งานสามารถต่อยอดไม่เพียงใช้ ในการควบคุม หุน่ ยนต์เท่านัน้ ยังน�ำไปประยุกต์เพื่อรับส่งข้ อมูลอื่นๆ ส�ำหรับควบคุมการ ท�ำงานบอร์ ดไมโครคอนโทรลเลอร์ ผา่ น WiFi
รูปที่ 3 ไดอะแกรมแสดงการติดต่อสื่อสารข้อมูลในเครือข่าย WiFi เพื่อ ควบคุมหุ่นยนต์ด้วยอุปกรณ์แอนดรอยด์หรือคอมพิวเตอร์ จากที่ได้ กล่าวไว้ วา่ การควบคุมจะอยูใ่ นวง LAN เดียวกัน ดังนันจึ ้ ง ต้ องมีตวั กลางเพื่อให้ อุปกรณ์ ทงั ้ สองเชื่อมต่อผ่าน WiFi แล้ วเข้ ามาอยู่ใน วง LAN เดียวกัน อาจเป็ น WiFi เราเตอร์ ก็ได้ หรื อก�ำหนดให้ อปุ กรณ์แอน ดรอยด์/คอมพิวเตอร์ ที่ใช้ งานท�ำเป็ น Hotspot เพื่อปล่อยสัญญาณ WiFi ก็ได้ เช่นกัน เมื่ออยูใ่ นวง LAN เดียวกันแล้ ว ก็จะรับส่งข้ อมูลด้ วยโปรโตคอล TCP/IP ได้
การเชื่อมต่อทางฮาร์ดแวร์
รูปที่ 2 WiFly โมดูลเชื่อมต่อเครือข่าย WiFi ส�ำหรับไมโครคอนโทรลเลอร์ใช้ การสื่อสารข้อมูลแบบอนุกรม ใช้งานร่วมกับบอร์ดเชื่อมต่อ ADX-XBee5V เพื่อติดต่อกับหุ่นยนต์ POP-BOT XT
หลักการ ต้ องตกลงกันก่อนว่า การควบคุมหุน่ ยนต์ผา่ น WiFi ในโครงงานนี ้ไม่ ได้ หมายถึงการควบคุมผ่านอินเทอร์ เน็ต เมื่อมีการพูดถึงการควบคุมผ่าน WiFi เมื่อใด มักเข้ าใจว่าต้ องเป็ นควบคุมผ่านเครื อข่ายอินเทอร์ เน็ตทันที (ส�ำหรั บเรื่ องนีจ้ ะท�ำเป็ นโครงงานให้ ได้ ลองกันต่อไปในอนาคต) ซึ่งจริ งๆ แล้ วการเชื่อมต่อผ่าน WiFi ไม่จ�ำเป็ นต้ องเชื่อมต่อผ่านอินเทอร์ เน็ตตลอดไป เพราะเราสามารถใช้ WiFi เพื่อสัง่ งานผ่านในวง LAN เดียวกันได้ ในโครง งานนี ้ผู้เขียนใช้ โมดูล WiFly เพื่อควบคุมหุน่ ยนต์ POP-BOT XT ผ่าน WiFi โดยอุปกรณ์ ที่ใช้ ควบคุมนัน้ ใช้ ได้ ทัง้ สมาร์ ตโฟนหรื อแท็บเล็ตแอนดรอยด์ และคอมพิวเตอร์ นอกจากนัน้ การสื่ อ สารข้ อ มูล ทัง้ หมดต้ อ งกระท� ำ อยู่ใ นวง LAN เดียวกัน ควบคุมโดยระบุหมายเลข IP ของโมดูล WiFly ที่เชื่อมต่อในวง LAN เดียวกัน โดยการส่งข้ อมูลในวง LAN ดังกล่าวนี ้ จะส่งผ่าน TCP/IP ซึ่งเป็ นโปรโตคอลของการสื่อสารข้ อมูลระหว่างอุปกรณ์ สองตัว โดยระบุ หมายเลขไอพีและหมายเลขพอร์ ตของอุปกรณ์ ที่น�ำมาเชื่อมต่อ ดังแสดง หลักการในรูปที่ 3 56
The Prototype Electronics
การต่ออุปกรณ์ตา่ งๆ เข้ ากับหุน่ ยนต์ POP-BOT XT มี 3 อย่างคือ
1. โมดูล WiFly ซี่งต่อผ่านบอร์ ด ADX-XBee5V โดยต่อขา RxD กับ TxD เข้ ากับบอร์ ดควบคุมของหุน่ ยนต์ POP-BOT XT แบบไขว้ กนั (RxD ต่อ กับ TxD และ TxD ต่อกับ RxD) 2. แผงวงจรตรวจจับแสงสะท้ อนอินฟราเรด ZX-03 จ�ำนวน 2 ตัว โดย ตัวที่อยู่ด้านขวาของหุ่นยนต์ให้ ต่อเข้ ากับขา 18 ของบอร์ ดควบคุมหุ่นยนต์ POP-BOT XT ส่วนตัวตรวจจับที่อยูด่ ้ านซ้ ายต่อสายเชื่อมต่อเข้ ากับขา 19 ของบอร์ ดควบคุม 3. แผงวงจรสวิตช์ ZX-Switch01 จ�ำนวน 2 ตัว โดยสวิตช์ที่ตดิ ตังทาง ้ ด้ านซ้ ายของหุน่ ยนต์ให้ ตอ่ เข้ ากับขา 22 ของบอร์ ดควบคุมหุน่ ยนต์ POPBOT XT ส่วนสวิตช์ทางด้ านขวาของหุน่ ยนต์ให้ ตอ่ เข้ ากับขา 23 ของบอร์ ด ควบคุม
เกี่ยวกับโปรแกรมควบคุมในตัวหุ่นยนต์ ในการเขี ย นโปรแกรมทางฝั่ ง หุ่น ยนต์ POP-BOT XT เนื่ อ งจากใช้ Arduino จึงมีไฟล์ไลบรารี ของ WiFly ให้ ใช้ งานได้ เลย โดยดาวน์โหลดได้ จาก https://github.com/harlequin-tech/WiFlyHQ ท� ำ ให้ ไม่ ต้ อ ง เขี ยนค� ำสั่งควบคุม WiFly เอง ส่วนโค้ ดทัง้ หมดดาวโหลดได้ จาก www. tpemagazine.com จากนันท� ้ ำการอัปโหลดลงไปในตัวหุน่ ยนต์ POP-BOT XT แล้ วรอท�ำงานร่วมกับอุปกรณ์แอนดรอยด์หรื อคอมพิวเตอร์ ตอ่ ไป
การท� ำ งานของโปรแกรมในตัว หุ่น ยนต์ ป ระกอบด้ ว ย การจัด การ ติดต่อกับโมดูล WiFly ผ่านฟั งก์ชนั่ ในไลบรารี WiFlyHQ.h, อ่านค่าจากอิน พุตอะนาลอกที่ตอ่ กับแผงวงจรตรวจจับแสงสะท้ อนอินฟราเรด ZX-03 ทัง้ 2 ตัว และสถานะของสวิตช์ที่อินพุต 22 กับ 23 ของบอร์ ดควบคุมเพื่อส่ง กลับไปยังอุปกรณ์แอนดรอยด์หรื อคอมพิวเตอร์ ผา่ นทางโมดูล UART1, รับ ค่าจากอุปกรณ์แอนดรอยด์หรื อคอมพิวเตอร์ ผา่ นทางโมดูล UART1 เพื่อน�ำ มาควบคุมการขับมอเตอร์ ไฟตรงเพี่อให้ หนุ่ ยนต์เคลื่อนที่ตามต้ องการ และ แสดงผลการท�ำงานผ่านทางจอแสดงผล GLCD-XT
รูปแบบข้อมูลควบคุม
รูปที่ 4 รูปแบบข้อมูลที่หุ่นยนต์ POP-BOT XT ส่งกลับไปยังอุปกรณ์แอนดรอยด์ และคอมพิวเตอร์
POP-BOT XT_WiFi_Controller ซอฟต์แวร์ควบคุม หุ่นยนต์ POP-BOT XT ผ่าน WiFi บนคอมพิวเตอร์ ภาพรวมของโปรแกรม
ส�ำหรับรูปแบบของข้ อมูลที่จะให้ อปุ กรณ์แอนดรอยด์หรื อคอมพิวเตอร์ สัง่ งานหุน่ ยนต์ POP-BOT XT จะใช้ วธิ ีกำ� หนดตัวอักษรน�ำหน้ าแล้ วตามด้ วย ตัวเลข โดยทีต่ วั อักษรน�ำหน้ าคือตัวอักษรตัวเดียวส�ำหรับก�ำหนดทิศทางการ เคลือ่ นที่ นัน่ คือ T (ไปข้ างหน้ า), B (ถอยหลัง), R (เลี ้ยงขวา) และ L (เลี ้ยง ซ้ าย) ส่วนตัวเลขทีต่ อ่ ท้ ายตัวอักษรคือตัวเลขทีใ่ ช้ กำ� หนดความเร็ว มีคา่ 0 ถึง 100 ทุกค�ำสัง่ จะต้ องปิ ดท้ ายด้ วยเครื่องหมายอัฒภาคหรือเซมิโคลอน ; สอง ตัว ดังแสดงในตารางที่ 1
ผู้เขี ยนได้ พัฒนาซอฟต์ แวร์ บนคอมพิวเตอร์ เพื่ อใช้ ควบคุมหุ่นยนต์ POP-BOT XT โดยเขียนขึ ้นด้ วย Microsoft Visual C# ดาวน์โหลดได้ ฟรี ที่ www.tpemagazine.com เมื่อรันโปรแกรมขึ ้นมาท�ำงาน จะมีหน้ าต่างหลัก แสดงในรูปที่ 5
ตารางที่ 1 แสดงรูปแบบค�ำสั่งควบคุมการเคลื่อนที่ของหุ่นยนต์
รูปที่ 5 หน้าต่างหลักของ POP-BOT XT WiFi Controller
เมื่อหุน่ ยนต์ POP-BOT XT รับข้ อมูลมาแล้ ว จะเช็คข้ อมูลตัวแรกว่า เป็ นการเคลื่อนที่ในทิศทางใด จากนันจึ ้ งก�ำหนดค่าความเร็ วในการเคลื่อนที่ ของหุน่ ยนต์ตอ่ ไป
มีชอ่ งให้ ใส่หมายเลข IP, หมายเลขพอร์ ต และปุ่ ม Connect เพื่อ เชื่อมต่อกับหุน่ ยนต์ จากนันใช้ ้ ปมทิ ุ่ ศทางต่างๆ ที่อยูบ่ นตัวโปรแกรมในการ ควบคุมการเคลื่อนที่ของหุน่ ยนต์
ส่วนฝั่ งหุน่ ยนต์ POP-BOT XT ก็มีการส่งข้ อมูลกลับมาที่อปุ กรณ์แอน ดรอยด์หรื อคอมพิวเตอร์ ด้วยเช่นกัน ค่าที่สง่ กลับมาคือค่าที่อา่ นได้ จากตัว ตรวจจับแสงสะท้ อน ZX-03 ที่ตดิ อยูท่ ี่ด้านหน้ าของหุน่ ยนต์จ�ำนวน 2 ตัวคือ ซ้ ายและขวา และสถานะของแผงวงจรสวิตช์ (ZX-Switch01) ที่ตดิ อยูข่ ้ าง หน้ าเช่นกัน (ดูรูปที่ 1 ประกอบ) ค่าที่สง่ กลับไปนี ้จะส่งพร้ อมกันทังค่ ้ าจากตัวตรวจจับแสงสะท้ อน ZX03 และสถานะของสวิตช์ เริ่ มจากส่งค่าที่วดั ได้ จากตัวตรวจจับแสงสะท้ อน ZX-03 ก่อน ก�ำหนดให้ ขึ ้นต้ นด้ วยตัวอักษร L ตามด้ วยค่าจากตัวตรวจจับ แสงสะท้ อน ZX-03 ด้ านซ้ ายก่อน คัน่ ด้ วยเครื่ องหมายจุลภาค , ตามด้ วย ค่าจากตัวตรวจจับแสงสะท้ อน ZX-03 ด้ านขวา แล้ วคัน่ ด้ วยเครื่ องหมาย ทวิภาคหรื อโคลอน : ก่อน ตามด้ วยตัวอักษร S แล้ วส่งค่าสถานะของสวิตช์ ตัวซ้ าย (มีคา่ เป็ น 0 หรื อ 1) แล้ วคัน่ ด้ วยเครื่ องหมายจุลภาคอีกครัง้ ต่อด้ วย ค่าสถานะจากสวิตช์ตวั ขวา จากนันปิ ้ ดท้ ายค�ำสัง่ ด้ วยเครื่ องหมายอัฒภาค หรื อเซมิโคลอน ; เพื่อจบค�ำสัง่ ในการส่งข้ อมูลจากหุน่ ยนต์ POP-BOT XT ไปยังอุปกรณ์แอนดรอยด์หรื อคอมพิวเตอร์ ดังรูปที่ 4
รูปที่ 6 การท�ำงานของโปรแกรม POP-BOT XT WiFi Controller เมื่อเชื่อม ต่อกับหุ่นยนต์ได้แล้ว
The Prototype Electronics
57
รูปที่ 7 โฟลวชาร์ตของซอฟต์แวร์ POP-BOT XT WiFi Controller 58
The Prototype Electronics
เมื่อเชื่อมต่อกับหุน่ ยนต์แล้ ว จะอ่านค่าตัวตรวจจับและสวิตช์จากหุน่ ยนต์เพื่อน�ำมาแสดงบนหน้ าต่างของโปรแกรม ส�ำหรับค่าจากตัวตรวจจับ แสงสะท้ อนจะถูกน�ำมาแสดงอยูต่ รงขวามือของปุ่ มเดินหน้ า ส�ำหรับสถานะ ของสวิตช์ หากสวิตช์ตวั ใดตัวหนึง่ มีสถานะเป็ น 0 (ถูกกด) ก็จะท�ำการแสดง ข้ อความว่า Warning ที่กลางหน้ าต่างโปรแกรม ในการควบคุม ทิ ศ ทางของหุ่น ยนต์ น อกจากจะกดที่ ปุ่ มทิ ศ ทางบน หน้ าต่างของโปรแกรมแล้ ว ยังควบคุมได้ ด้วยการกดปุ่ มบนคีย์บอร์ ดด้ วย โดยใช้ คีย์ W, A, S และ D หรื อคีย์ตวั เลข 8, 4, 2 และ 6 ส�ำหรับเดินหน้ า, เลี ้ยวซ้ าย, ถอยหลัง และเลี ้ยวขวาตามล�ำดับ แสดงโฟลวชาร์ ตการท�ำงาน ของซอฟต์แวร์ POP-BOT XT WiFi Controller ในรูปที่ 7
เมื่อเชื่อมต่อกับคอมพิวเตอร์ ได้แล้ว
การทดสอบ เมื่อเริ่ มรันโปรแกรม หน้ าต่างหลักตามรูปที่ 5 จะแสดงขึ ้นมา แล้ วรอให้ หุน่ ยนต์ท�ำการเชื่อมต่อกับ WiFi เสร็ จก่อน ดังนันเมื ้ ่อเปิ ดไฟเลี ้ยงให้ หนุ่ ยนต์ จะแสดงข้ อความ Connecting… ที่จอแสดงผลของหุน่ ยนต์ ให้ รอจนกว่าจะ แสดงหมายเลข IP และพอร์ ต คอมพิวเตอร์ จงึ จะเชื่อมต่อกับหุน่ ยนต์ได้
กดปุ่ ม Disconnect (เดิมคือปุ่ ม Connect) บนหน้ าต่างของโปรแกรม เพื่อหยุดการเชื่อมต่อ ฝั่ งหุน่ ยนต์ก็จะแสดงข้ อความแจ้ งเพื่อรอการเชื่อม ต่อใหม่แทน ถ้ าหุน่ ยนต์ก�ำลังเคลื่อนที่ จะหยุดทันที ส่วนฝั่ งคอมพิวเตอร์ ก็จะหยุดเชื่อมต่อและท�ำการดิสเอเบิลปุ่ มทังหมดให้ ้ กดไม่ได้ แล้ วเปลี่ยน ข้ อความบนปุ่ มจาก Disconnect ให้ กลับมาเป็ น Connect ดังเดิม พร้ อมกับ ก�ำหนดข้ อความในแถบแสดงสถานะว่า หยุดการเชื่อมต่อแล้ ว
WiFly Remote แอปพลิเคชั่นควบคุมหุ่นยนต์ POPBOT XT ผ่าน WiFi ส�ำหรับอุปกรณ์แอนดรอยด์
หุ่นยนต์ POP-BOT XT ก�ำลัง รอการเชื่อมต่อ WiFi
นอกจากจะควบคุมหุน่ ยนต์ POP-BOT XT ด้ วยคอมพิวเตอร์ ผา่ น WiFi แล้ ว ยังใช้ อปุ กรณ์แอนดรอยด์ทงสมาร์ ั้ ตโฟนหรื อแท็บเล็ตในการ ควบคุมได้ ด้วย โดยท�ำการดาวน์โหลดและติดตังแอปพลิ ้ เคชัน่ ที่ชื่อ WiFly Remote จาก Play Store โดยตรงที่ https://play.google.com/store/ apps/details?id=com.inex.wiflyremote เมื่อติดตังแล้ ้ ว รันขึ ้นมาใช้ งาน จะมีหน้ าตาดังรูปที่ 8
ในระหว่างที่รอการเชื่อมต่อ ปุ่ มกดทังหมดจะถู ้ กดิสเอเบิล กดไม่ได้ เมื่อเชื่อมต่อได้ แล้ ว ปุ่ ม Connect จะเปลี่ยนเป็ นปุ่ ม Disconnect เพื่อใช้ หยุดการเชื่อมต่อ จากนันแสดงข้ ้ อความที่แถบแสดงสถานะว่า ได้ เชื่อมต่อ แล้ วตามรูปที่ 6 เมื่อกดปุ่ มใดๆ ก็จะส่งค�ำสัง่ ไปที่หนุ่ ยนต์ จากนันหุ ้ น่ ยนต์จะ ท�ำงานตามค�ำสัง่ โดยผู้เขียนได้ ก�ำหนดค่าความเร็ วตังต้ ้ นไว้ ที่ 80% ทางด้ านหุน่ ยนต์ เมื่อมีการเชื่อมต่อก็จะแสดงข้ อความแจ้ งว่า มีการ เชื่อมต่ออยู่ จากนันหุ ้ น่ ยนต์จะรอรับค�ำสัง่ แล้ ว และส่งข้ อมูลที่อา่ นได้ จาก ตัวตรวจจับกลับไปยังคอมพิวเตอร์ ด้วยในทุกๆ 50 มิลลิวินาที
(8.1) หน้าต่างส�ำหรับตั้งค่าการ ท�ำงาน
(8.2) หน้าต่างควบคุม
รูปที่ 8 หน้าต่างของแอปพลิเคชั่น WiFly Remote เมื่อเชื่อมต่อ WiFi ส�ำเร็จแล้ว The Prototype Electronics
59
Android
POP-BOT XT
รูปที่ 9 โฟลวชาร์ตของแอปพลิเคชั่น WiFly Remote ส�ำหรับควบคุมหุ่นยนต์ POP-BOT XT ด้วยอุปกรณ์แอนดรอยด์ผ่าน WiFi
60
The Prototype Electronics
แอป WiFly Remote มีสองหน้ าหลักๆ คือ หน้ าต่างตังค่ ้ า ใช้ ก�ำหนด หมายเลข IP และพอร์ ตเพื่อเชื่อมต่อกับหุน่ ยนต์ และหน้ าต่างควบคุมหุน่ ยนต์ จะต้ องเชื่อมต่อกับหุน่ ยนต์ที่หน้ าต่างตังค่ ้ าให้ ได้ ก่อน จึงจะเข้ ามาสู่ หน้ าต่างถัดมาเพื่อควบคุมการเคลื่อนที่ได้ ส่วนรูปที่ 9 แสดงโฟลวชาร์ ตการ ท�ำงานของแอปพลิเคชัน่ WiFly Remote ที่หน้ าต่างควบคุมมีปมทิ ุ่ ศทาง 4 ตัว และที่มมุ บนของจอภาพจะแสดง ค่าจากตัวตรวจจับแสงสะท้ อนที่สง่ มาจากหุน่ ยนต์ ที่ต�ำแหน่งกลางจอภาพ ด้ านบนจะแสดงข้ อความ !! HIT !! หากสวิตช์บนหุน่ ยนต์ถกู กด พร้ อมกับสัง่ งานให้ เครื่ องสัน่ เป็ นเวลา 200 มิลลิวินาที ส�ำหรับการท�ำงานของ WiFly Remote เมื่อเปิ ดแอปพลิเคชัน่ ขึ ้นมา จะ แสดงหน้ าโลโก้ แล้ วเข้ าสูห่ น้ าต่างตังค่ ้ า มีชอ่ งให้ ใส่หมายเลข IP กับพอร์ ต แล้ วกดปุ่ ม Connect ก็จะเข้ าสูห่ น้ าต่างควบคุม ถ้ าเชื่อมต่อไม่ได้ ก็จะกลับ ไปที่หน้ าต่างตังค่ ้ าอีกครัง้ เมื่ อ เชื่ อ มต่อ ได้ ค่า จากตัว ตรวจจับ แสงสะท้ อ นขงอหุ่น ยนต์ จ ะถูก แสดงทันทีที่มมุ บนของจอภาพ (หุน่ ยนต์สง่ ค่าดังกล่าวมาทุกๆ 50 มิลลิ วินาที) เมื่อสวิตช์บนหุน่ ยนต์ถกู กด อุปกรณ์แอนดรอยด์จะสัน่ 200 มิลลิ วินาที แล้ วแสดงข้ อความว่า !! HIT !! ที่ตรงกลางด้ านบนของจอภาพ เมื่อ กดปุ่ มทิศทางใดๆ ก็จะส่งค่าตามที่ได้ ก�ำหนดไว้ ไปยังหุน่ ยนต์
ส�ำหรับผู้ที่สนใจประยุกต์ให้ สงั่ งานผ่านอินเทอร์ เน็ต การท�ำงานจะไม่ เหมือนกับการสัง่ งานผ่านวง LAN แบบในโครงงานนี ้ เพราะในการสัง่ งาน ผ่านอินเทอร์ เน็ต จะต้ องมีเซิฟร์ เวอร์ หนึ่งตัวท�ำหน้ าที่เป็ นตัวกลางในการ รับส่งข้ อมูล ไม่สามารถก�ำหนดหมายเลข IP แล้ วสัง่ งานได้ โดยตรงแบบ วง LAN อันเป็ นการท�ำงานที่แตกต่างกันออกไปทันที อีกทังยั ้ งต้ องค�ำนึงถึง เรื่ องความล่าช้ าในการรับส่งข้ อมูลที่มีมากกว่าแบบวง LAN ท�ำให้ หนุ่ ยนต์ เคลื่อนที่ช้าลงไปด้ วย จึงเหมาะกับการสัง่ งานที่ไม่ต้องการความเร็ วในการ รับส่งข้ อมูล ด้ ว ยอุป กรณ์ ที่ ช าญฉลาดอย่ า งโมดู ล WiFly ผนวกกับ การเขี ย น โปรแกรมหรื อแอปพลิ เคชัน่ จากหุ่นยนต์ POP-BOT XT ธรรมดาๆ กลาย เป็ นหุ่นยนต์อเนกประสงค์ทีค่ วบคุมการเคลือ่ นทีแ่ บบไร้สายผ่าน WiFi ได้ ด้วยคอมพิ วเตอร์ หรื ออุปกรณ์ แอนดรอยด์ แถมยังส่งค่าจากตัวตรวจจับใน ขณะเคลือ่ นทีก่ ลับมาได้ดว้ ย จึงน�ำไปประยุกต์เพือ่ พัฒนาให้ POP-BOT XT สามารถท�ำงานได้หลากหลายมากขึ้น ไม่ว่าจะต่อกับตัวตรวจจับอืน่ ๆ เพิ่ ม แล้วแสดงผลบนหน้าต่างของโปรแกรมหรื อแอปพลิ เคชัน่ ตามทีต่ อ้ งการ
ข้อจ�ำกัดและแนวทางต่อยอด การควบคุมหุน่ ยนต์ผา่ น WiFi เป็ นเรื่ องที่นา่ สนใจและแสดงให้ เห็นถึง พัฒนาการของหุน่ ยนต์ แต่ต้องขอบอกก่อนว่า ถ้ าสัญญาณ WiFi ที่เชื่อมต่อ อยูไ่ ม่นิ่งหรื อมีระดับสัญญาณต�่ำ จะท�ำให้ การส่งข้ อมูลล่าช้ าหรื อที่เรี ยกว่า แล็ก (lag) ได้ ท�ำให้ หนุ่ ยนต์อาจตอบสนองต่อการสัง่ งานที่ช้ากว่าปกติ หรื อ บางครัง้ อาจไม่ตอบสนอง ต้ องกดปุ่ มสัง่ งานซ� ้ำ
www.tpemagazine.com
POP-BOT XT Standard
ชุดเรียนรู้และพัฒนาโปรแกรมควบคุมหุ่นยนต์อัตโนมัติด้วย โปรแกรมภาษา C/C++ กับซอฟต์แวร์ Arduino • ใช้ ไมโครคอนโทรลเลอร์ 8 บิตเบอร์ ATmega32U4 ของ Atmel ภายในมีโมดูลแปลงสัญญาณอะนาลอกเป็ น ดิจิตอลความละเอียด 10 บิต 12 ช่อง มีหน่วยความจ�ำ โปรแกรมแบบแฟลช 32 กิโลไบต์ โปรแกรมซ� ้ำได้ 10,000 ครัง้ มีหน่วยความจ�ำข้ อมูลอีอีพรอม 1024 ไบต์ หน่วย ความจ�ำข้ อมูลแรม 2.5 กิโลไบต์ หรื อ 2,560 ไบต์ ใช้ สัญญาณนาฬิกา 16MHz จากเซรามิกเรโซเนเตอร์
รหัสสินค้า 8000401 ราคา 4,900 บาท อุปกรณ์ในชุด • แผงวงจรควบคุมหุน่ ยนต์ POP-XT ที่ตดิ ตังกะบะ ้ ถ่าน AA แบบ 4 ก้ อน • แผงวงจรสวิตช์ 2 แผง • แผงวงจร LED 2 แผง • แผงวงจรตรวจจับแสงสะท้ อนอินฟราเรด 4 แผง • โมดูลวัดระยะทาง 3 ถึง 40 เซนติเมตร GP2D120 • ชุดเฟื องขับมอเตอร์ ไฟตรง BO2 อัตราทด 48:1 จ�ำนวน 2 ชุด • เซอร์ โวมอเตอร์ รุ่นมาตรฐาน จ�ำนวน 1 ชุด
• ล้ อพลาสติกกลม จ�ำนวน 2 ชุด • แผ่นกริ ดขนาด 80x60 เซนติเมตร และ 80x80 เซนติเมตร 1 ชุด • แผ่นฐานกลมพร้ อมล้ ออิสระ 1 แผ่น • ชิ ้นต่อพลาสติก 60 ชิ ้น /แท่งต่อพลาสติก • ชุดฉากโลหะ, นอตและสกรู • แผ่นทดสอบการเคลื่อนที่ตามเส้ นของหุน่ ยนต์ • สายเชื่อมต่อ USB-miniB • ซีดีรอมซอฟต์แวร์ และตัวอย่างการทดลอง
บริษัท อินโนเวตีฟ เอ็กเพอริเมนต์ จ�ำกัด
• จุดต่อพอร์ ตใช้ งาน 25 จุด และจัดสรรเป็ นจุดต่อแบบ JST 3 ขา จ�ำนวน 12 จุด ส�ำหรับต่ออุปกรณ์ตรวจจับและ อุปกรณ์ตอ่ พ่วงภายนอกต่างๆ • มีไฟแสดงสถานะไฟเลี ้ยงและไฟทดสอบพอร์ ต • มีจดุ ต่อพอร์ ต USB ส�ำหรับดาวน์โหลดโปรแกรมและ สื่อสารข้ อมูลกับคอมพิวเตอร์ • มีจดุ ต่อไฟเลี ้ยง (DC INPUT) ผ่านทางจุดต่อสายแบบ ขันสกรู สามารถรับไฟเลี ้ยงได้ ตงแต่ ั ้ 4.8 ถึง 7.2V • มีวงจรควบคุมไฟเลี ้ยง +5V แบบสวิตชิ่ง • จุดต่อพอร์ ตอินพุตเอาต์พตุ ดิจิตอลหรื ออะนาลอก 8 ช่อง คือ A0 ถึง A7 (ตรงกับขา 18 ถึง 23 ส�ำหรับขา A0 ถึง A5, 4 และ 6 ส�ำหรับขา A6 และ A7)
• จุดต่อพอร์ ตดิจิตอลรองรับระบบบัส I2C 1 ชุด คือ จุดต่อ 2 (SDA) และ 3 (SCL) • มีจดุ ต่อพอร์ ตสื่อสารข้ อมูลอนุกรม UART 1 ชุดคือ จุดต่อ 0 (RxD) และ 1 (TxD) • มีวงจรขับมอเตอร์ ไฟตรง 2 ช่อง พร้ อมไฟแสดงผล • มีจดุ ต่อขาพอร์ ตของไมโครคอนโทรลเลอร์ ส�ำหรับขับเซอร์ โวมอเตอร์ 3 ช่อง • มีล�ำโพงเปี ยโซส�ำหรับขับเสียง • มีจดุ ต่อ ISP ส�ำหรับอัปเกรดเฟิ ร์มแวร์ โดยใช้ ชดุ โปรแกรม แบบ ISP เพิ่มเติม • มีโมดูลแสดงผลแบบกราฟฟิ กสีความละเอียด 128x160 จุด แสดงภาพกราฟิ กลายเส้ นและสีพืน้ (ไม่รองรับไฟล์รูปภาพ ใดๆ) พร้ อมไฟส่อ งหลัง แสดงผลเป็ นตัว อัก ษรขนาดปกติ (5x7 จุด) ได้ 21 ตัวอักษร 16 บรรทัด (21x16) • มีสวิตช์กดติดปล่อยดับพร้ อมใช้ งาน (สวิตช์ OK) 1 จุด โดย ต่อร่วมกับตัวต้ านทานปรับค่าได้ (KNOB) ซึง่ เชื่อมต่อไปยัง ขาพอร์ ต 8 ท�ำให้ อา่ นค่าสัญญาณดิจิตอลและอะนาลอกได้ ในขาพอร์ ตเดียวกัน
Prototype Electronics 108 ซ.สุขุมวิท 101/2 ถ.สุขุมวิท แขวงบางนา เขตบางนา กรุงเทพฯ 10260 โทรศัพท์ : 0-2747-7001-4 Url : www.inex.co.th / E-Mail :Thesale@inex.co.th
61