คนคอมพิวเตอร์

มาสร้างหุ่นแอ๊บแบ๊วกันเถอะ [4]

Posted on: กันยายน 20, 2009

หน้าแรก สารบัญ เกี่ยวกับบล็อกนี้ เกี่ยวกับผู้เขียน

มาสร้างหุ่นแอ๊บแบ๊วกันเถอะ [4]

ทำให้เพื่อนๆ ของคุณทึ่งด้วยการสร้างหุ่นยนต์น่ารักคิกขุที่จะส่งสัญญาณให้คุณทราบทันทีที่แฟนของคุณปรากฏกายใน MSN

บทความโดย : ลาภลอย วานิชอังกูร (laploy.com)

หุ่น แอ๊บแบ๊วคือตุ๊กตาตัวเล็กๆ ที่เรานำมาติดไว้กับเซอร์โว (servo motor) เมื่อบุคคลที่เราต้องการติดตามเฝ้าดูสถานะ (ต่อไปจะเรียกสั้นๆ ว่าแฟน) เปลี่ยนแปลงสภานะในโปรแกรมวินโดวส์ ไลฟว์ แมสเซนเจอร์ (Windows Live Messenger ต่อไปจะเรียกย่อว่า MSN) ด้วยการออนไลน์หรือออฟไลน์ เซอร์โวจะทำงาน หุ่นแอ๊บแบ๊วก็จะเคลื่อนที่ ขณะที่เรานั่งที่โต๊ะคอมพิวเตอร์ หรือเดินผ่าน เพียงชำเลืองมองที่หุ่นแอ๊บแบ๊วเราก็จะทราบทันทีว่าแฟนของเรากำลังออนไลน์ อยู่หรือไม่

บท ความนี้จะแนะนำวิธีสร้างหุ่นแอ๊บแบ๊วทั้งทางฮาร์ดแวร์และซอฟท์แวร์โดย ละเอียด ฮาร์ดแวร์ประกอบด้วยอุปกรณ์หาง่ายน้อยชิ้น นำมาประกอบเป็นวงจรง่ายๆ ไม่ซับซ้อน ส่วนซอฟท์แวร์ผู้เขียนเตรียมไฟล์ซอร์สโค้ดไว้ให้ครบ ท่านสามารถนำไปปรับปรุงเปลี่ยนแปลงได้อย่างรวดเร็ว

 

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

เซอร์โวมีสายสามเส้น ซ้ายสุดสีส้มคือสายสัญญาณ สายกลางสีแดงคือไฟเลี้ยง และขวาสุดสีน้ำตาลคือกราวนด์

 

 

 

 

 

เซอร์โวที่ผู้เขียนแกะจากหุ่นยนต์เก่าเป็นเซอร์โวยี่ห้อ GWS รุ่น S03T STD หากท่านมีเซอร์โวยี่ห้ออื่นรุ่นอื่นก็ใช้ได้ทั้งนั้น แต่อาจต้องปรับเปลี่ยนค่าการหน่วงเวลาในโปรแกรมเล็กน้อย เพราะเซอร์โวแต่ละยี่ห้อแต่ละรุ่นอาจมีจำนวนองศาในการหมุนแตกต่างกัน

 

 

 

 

 

 
เมื่อต้องการให้เซอร์โวหมุนไปทางซ้าย เราต้องสร้างพัลส์โดยปล่อยไฟ 5 โวลต์ (ทำให้ตรรกะที่ขา D0 ของพอร์ทเครื่องพิมพ์เป็น 1) นาน 1 มิลลิวินาที และทำให้เป็นกราวนด์ (ทำให้ตรรกะที่ขา D0 ของพอร์ทเครื่องพิมพ์เป็น 0) นาน 20 มิลลิวินาที  เมื่อต้องการให้เซอร์โวหมุนไปทางขวา เราต้องปล่อยไฟ 5 โวลต์นาน 2 มิลลิวินาที และทำให้เป็นกราวนด์นาน 20 มิลลิวินาที เซอร์โวยี่ห้อที่ผู้เขียนใช้เคลื่อนที่ประมาณ 8 องศาเมื่อได้รับพัลส์หนึ่งลูก

 

ซอฟต์แวร์ของหุ่นแอ๊บแบ๊ว
การสร้างซอฟท์แวร์ในโครงงานนี้จะใช้ภาษาอะไรก็ได้ แต่เนื่องจากเราจะสร้าง add-in ของ MSN ผู้เขียนจึงเลือกใช้ภาษา C# เพราะทำได้ง่าย ผู้เขียนจะสร้างโซลูชันด้วยโปรแกรม วิสชวลสตูดิโอ (Microsoft Visual Studio .NET 2005 ต่อไปจะเรียกว่า MSVS)ขั้นตอนการทำงานของซอฟต์แวร์ในโครงงานนี้เป็นดังนี้ (โปรดดูแผนภูมิประกอบคำอธิบาย)

 

 
แผนภูมิแสดงการทำงานของซอฟต์แวร์หุ่นแอ๊บแบ๊ว

  1. โปรแกรม GetAlert คือโปรแกรมที่เราเขียนขึ้นเพื่อทำงานเป็น add-in ของ MSN มันทำหน้าที่เฝ้าดูสถานะของแฟนตลอดเวลาที่เราเปิดโปรแกรม MSN
  2. เมื่อแฟนออนไลน์ GetAlert จะบันทึกตัวอักษร 1 ไว้ในไฟล์ log.txt เมื่อแฟนออฟไลน์ GetAlert จะบันทึกตัวอักษร 0 ไว้
  3. โปรแกรม AvailabotForm เป็นโปรแกรมแบบเดกส์ท็อปที่เราสร้างขึ้นเพื่อทำหน้าที่ควบคุมเซอร์โว
  4. โปรแกรม AvailabotForm จะตรวจดูข้อมูลในไฟล์ log.txt ทุกๆ หนึ่งวินาที
  5. เมื่อโปรแกรม AvailabotForm พบว่าข้อมูลใน log.txt เปลี่ยนแปลง มันจะส่งพัลส์ไปยังเซอร์โว
  6. เซอร์โวหมุนทำให้หุ่นแอ๊บแบ๊วเคลื่อนที่ในลักษณะที่ทำให้เรารู้ว่าแฟนออนไลน์หรือออฟไลน์
    หากสงสัยว่าแทนที่เราจะให้ GetAlert เขียนแฟ้มข้อมูล เราเปลี่ยนให้มันส่งพัลส์ไปยังเซอร์โวโดยตรงได้หรือไม่ (ตัดโปรแกรม AvailabotForm ออกไป) คำตอบคือได้ แต่ผู้เขียนไม่ใช้วิธีนั้นเพราะดีบักยาก

 

โปรดติดตามตอนต่อไป

Advertisements

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out /  เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out /  เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out /  เปลี่ยนแปลง )

Connecting to %s

เกี่ยวกับบล็อกนี้

เว็บบล็อก “คนคอมพิวเตอร์” หรือ Laploy’s articles เป็นบล็อกรวบรวมบทความจาก ลาภลอย วานิชอังกูร มีบทความหลายประเภทคละกัน เช่นบทความเกี่ยวกับการพัฒนาซอฟต์แวร์ บทความเกี่ยวกับการสร้างและดัดแปลงฮาร์ดแวร์ บทความเกี่ยวกับเทคโนโลยีคอมพิวเตอร์ทั่วไป บทความทั่วไป และนิยายนักสืบ

เกี่ยวกับผู้เขียน

ลาภลอย วานิชอังกูร เป็นผู้เชี่ยวชาญการพัฒนาแอพลิเกชันฐานข้อมูลและ Business Intelligence โดยเริ่มจากการพัฒนาโปรแกรมด้วย dBaseII, Clipper, FoxPro ปัจจุบันเป็นผู้เชี่ยวชาญในการบูรณาการระบบฐานข้อมูลด้วยเทคโนโลยีของไมโคร ซอฟต์เช่น ASP.NET, ADO.NET, Microsoft SQL Server 2008 และ LINQ ชำนาญการเขียนคิวรีเพื่อแก้ปัญหาทางธุรกิจที่ซับซ้อน Data mining, Data Warehouse, OLAP (SSRS), OLTP เคยออกแบบฐานข้อมูลสัมพันธ์ในองค์กรระหว่างประเทศ เคยพัฒนาแอพลิเกชันฐานข้อมูลในโครงการขนาดใหญ่หลายโครงการ และเคยให้คำปรึกษาด้าน BI ในศูนย์คอมพิวเตอร์ (T-Center) ในองค์กรของประเทศฝรั่งเศส
นอกจากงานฐานข้อมูลแล้ว ลาภลอย วานิชอังกูร ยังเชี่ยวชาญการพัฒนาซอฟต์แวร์ระบบฝังตัว (Microprocessor / Microcontroller Based Embedded System) งานพัฒนาแอพลิเกชันในอินเตอร์เน็ตแบบ RIA (Rich Internet Application) งานพัฒนาโครงสร้างพื้นฐานของซอฟต์แวร์ด้วยหลักการ OOP (Framework Development in Object Oriented Programming) ด้วยภาษา C# และ .NET Framework และงานบูรณาการระบบในองค์กรหรือ SOA (Service Oriented Architecture for Enterprise Orchestration) เคยร่วมงานกับทีมพัฒนาซอฟต์แวร์ในหลายๆ ประเทศ เช่น ไทย อินเดีย สวิส เยอรมัน และประเทศสหรัฐอเมริกา
ปัจจุบัน ลาภลอย วานิชอังกูร ทำหน้าที่ให้คำปรึกษาการวางระบบ IT (เช่น SQL, OLAP,.NET, SCADA, BI, SOA และอื่นๆ) ให้แก่หน่วยงานขนาดใหญ่หลายแห่ง และมีบทความทางวิชาการตีพิมพ์ในวารสารหลายเล่มอย่างสม่ำเสมอ และเป็นผู้เขียนหนังสือ "เรียนรู้ด้วยตนเอง DataBase - Query - T-SQL - Stored Procedure" และ “เรียนรู้ด้วยตนเอง OOP C# ASP.NET” (ISBN 13:978-974-212-598-1)
ท่านสามารถติดต่อผู้เขียนได้ที่อีเมล laploy@gmail.com

เรียนรู้ด้วยตนเอง OOP C# ASP.NET

ชื่อหนังสือ : เรียนรู้ด้วยตนเอง OOP C# ASP.NET โดย : ลาภลอย วานิชอังกูร จัดพิมพ์จัดจำหน่ายโดย : บริษัท ซีเอ็ดยูเคชั่น จำกัด (มหาชน) ISBN : 13:978-974-212-598-1 ราคา : 349 บาท จำนวนหน้า : 648 ขนาด : 19x29 ซ.ม.

เรียนรู้ด้วยตนเอง DataBase – Query – T-SQL – Stored Procedure

ชื่อหนังสือ: เรียนรู้ด้วยตนเอง DataBase - Query - T-SQL - Stored Procedure โดย: ลาภลอย วานิชอังกูร จัดพิมพ์จัดจำหน่าย: บริษัท ซีเอ็ดยูเคชั่น จำกัด (มหาชน) ISBN: 978-616-08-0009-4 ราคา: 559 บาท จำนวนหน้า: 1,100 ขนาด: 19x29 ซ.ม. วางตลาด: ตุลา 2552

กรุณาป้อนอีเมลของท่าน

Join 17 other followers

Advertisements
%d bloggers like this: