ถามตอบทันใจ [Live Chat 24 ชั่วโมง]

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

หุ่นยนต์เลโก้แก้ปริศนาลูกบิด



ในบรรดาของเล่นที่สร้างสรรค์จินตนาการต่อยอดไม่สิ้นสุดแล้ว ซีต้องยกนิ้วให้ชุดต่อเลโก้เลยค่ะ โดยเฉพาะชุดต่อ LEGO NXT ที่มีหน่วยประมวลผล สามารถต่อเชื่อมกับชิ้นส่วนเลโกให้ทำงานในรูปแบบต่างๆ ได้มากมาย ก่อนหน้านี้ที่เห็นกันบ่อยมากๆ ก็ได้แก่เจ้าหุ่นยนต์เดินได้ที่มีหน้าตาคล้าย Johny Five ในภาพยนต์เรื่อง Short Circuit หรือหุ่นยนต์แมงป่องที่สามารถใช้หางอินฟราเรดฉกศัตรูร้ายที่อยู่ตรงหน้า และที่สร้างสรรค์ขึ้นมาหน่อยก็รู้จะเป็น Legway ที่ใช้ชุดเลโกสร้างยานพาหนะสองล้อที่สามารถทรงตัวได้เองโดยไม่ล้ม แถมยังเดินหน้าถอยหลังเลี้ยวซ้ายเลี้ยวขวาได้เหมือนเซกเวย์ของจริงอีกด้วย แหม...อะไรจะเก่งปานนั้นนะคะ



ล่าสุดซีไปพบไอเดียของนักเล่นเลโกที่พยายามสร้างหุ่นยนต์ที่สามารถแก้ปริศนาลูกบิดได้ด้วยตัวเอง โดยเจ้าหุ่นยนต์เลโกตัวนี้มีการพัฒนามาหลายเวอร์ชันแล้วค่ะ ซึ่งในแต่ละขั้นตอนของการพัฒนาก็คือ ต้องทำให้ง่ายที่สุด ใช้ชิ้นส่วนให้น้อยที่สุด จนเหลือเท่าที่เพื่อนๆ เห็นนั่นแหละค่ะ
หน้าตาหุ่นยนต์แก้ปริศนาลูกบิดที่พัฒนาจากชุดต่อเลโกโดยใช้มอเตอร์สำหรับการทำงานของแขนกล 3 ตัว และเว็บแคมสำหรับจับภาพส่งต่อให้ซอฟต์แวร์วิเคราะห์ปริศนาแต่ละด้านของลูกบิด
ขั้นตอนการออกแบบหุ่นยนต์เลโกแก้ปริศนาลูกบิดนี้ ซีคิดว่า คงเริ่มต้นจากการมองแอคชั่นของคนปกติเวลาเล่น ซึ่งแบ่งแอคชั่นออกเป็น ดูหน้าตาของปริศนา พลิกด้านที่ต้องการ จับให้มั่น แล้วหมุนแต่ด้านของลูกบิด สรุปก็คือ ดู พลิก จับ แล้วก็หมุน เจ้าหุ่นยนต์ตัวนี้ก็เหมือนกัน มันมีเว็บแคมสำหรับดูแต่ละหน้าของปริศนาลูกบิด เพื่อส่งต่อให้ซอฟต์แวร์ในคอมพิวเตอร์วิเคราะห์ จากนั้นรับคำสั่งมา เพื่อให้แขนกลทั้งหมดของหุ่นยนต์ทำงาน นั่นคือ พลิก, จับ แล้วก็หมุน ตามอัลกอริธึมของการแก้ปริศนา ฟังดูง่าย แต่ทำยากเหมือนกันนะคะ กว่าจะออกแบบให้มันมีชิ้นส่วนต่างๆ เท่าที่เห็นในรูป
แอคชั่นของหุ่นยนต์ก็คือ ดู หรือจับภาพ(capture) ด้วยเว็บแคม, พลิกเลือกด้านที่ต้องการ, จับลูกบิดให้มั่น และหมุนลูกบิด โดยคำสั่งการทำงานของแขนกล ควบคุมโดยบ๊อกซ์ NXT ซึ่งรับคำสั่งจากการวิเคราะห์ของซอฟต์แวร์บนคอมพิวเตอร์ ที่ส่งคำสั่งมาให้ NXT ทางพอร์ต USB ค่ะ
เมื่อได้ภาพจากเว็บแคม ซอฟต์แวร์จะวิเคราะห์ปริศนาบนด้านนั้น โดยตีความสีต่างๆ ที่อยู่ในด้านที่มันมองเห็น

ซอฟต์แวร์ที่เห็นในรูปจะทำหน้าที่แก้ปริศนาลูกบิดจากข้อมูลที่เว็บแคมส่งเข้ามา เมื่อเริ่มแก้ปริศนา ชุดคำสั่งในการบิดลูกบิดจะถูกส่งให้กับหุ่นยนต์อีกทีหนึ่ง
จากในคลิป มอเตอร์จะทำหน้าที่ควบคุมแขนกล โดยแขนซ้ายจะทำหน้าที่ผลักลูกบิดไปในด้านต่างๆ ส่วนแขนกลอีกข้างหนึ่งจะทำหน้าที่จับ สำหรับมอเตอร์ที่อยู่ฐานล่างสุดจะทำหน้าที่หมุนลูกบิด นอกจากนี้ ยังจะมีในส่วนของการใช้กล้องเว็บแคม เพื่อจับภาพด้านต่างๆ ของลูกบิดอีกด้วย โดยการทำงานที่ประสานสอดรับของแขนกลทั้งสามกับกล้องเว็บแคมจะเกิดจากการทำงานร่วมกันของกล่อง NXT กับซอฟต์แวร์บนพีซี ซึ่งซอฟต์แวร์บนพีซีจะสื่อสารกับหน่วยประมวลผล NXT ผ่านทางพอร์ตยูเอสบี โดยเมื่อกล้องเว็บแคมจับภาพด้านบนของลูกบิดได้และส่งต่อเข้าไปในคอมพ์ เจ้าซอฟต์แวร์ก็จะวิเคราะห์สีสันที่อยู่บนหน้าที่ปรากฎ เพื่อส่งให้ซอฟต์แวร์วิเคราะห์ว่า จะต้องหมุนลูกบิดอย่างไร หลังจากนั้นชุดคำสั่งการหมุนจะส่งกลับไปยังกล่อง NXT เพื่อให้มันควบคุมการทำงานของแขนกลมอเตอร์ทั้งหมด งานนี้ต้องปรบมือให้นักพัฒนาคนนี้จริงๆ เลยนะคะ



ไม่มีความคิดเห็น: