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

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

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

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

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

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

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

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

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

AvailabotSolution
AvailabotSolution คือโซลูชันของ MSVS  ภายในโซลูชันนี้มีโปรเจคสองโปรเจคคือ AvailabotProject (ต่อไปจะเรียกย่อว่า AP) และ GetAlert โดยโปรเจค AP เป็นโปรแกรมประยุกต์ในวินโดวส์ (โปรแกรมแบบเดกส์ท็อป) เพื่อให้เราควบคุมการทำงานของหุ่นแอ๊บแบ๊วได้ ส่วนโปรเจค GetAlert เป็นตัวเสริมการทำงานของ MSN ทำหน้าที่คอยติดตามสถานะแฟนว่าออนไลน์หรือไม่

 
Project Explorer ของโปรแกรม Microsoft Visual Studio .NET 2005 แสดงไฟล์ต่างๆ ใน AvailabotSolution

AvailabotProject
โครงงานนี้มีคลาสหลักสองคลาสคือ PortAccess ทำหน้าที่ใช้สร้างออพเจ็กต์ติดต่อกับพอร์ทเครื่องพิมพ์ และคลาส AvailabotForm ทำหน้าที่ใช้สร้างออพเจ็กต์หน้า WinForm

 

 
แผนภูมิของคลาสต่างๆ ใน AvailabotProject ให้สนใจเฉพาะคลาส AvailabotForm และ PortAccess เท่านั้น ส่วนคลาส Program, Resources และ Settings เป็นคลาสบริการที่ถูกสร้างขึ้นโดยวิสชวลสตูดิโอ

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

 
หน้า WinForm ของคลาส AvailabotForm มีส่วนประกอบต่างๆ ดังนี้
1.    TextBox1 ทำหน้าที่แสดงข้อความรายงานสถานะต่างๆ
2.    buttonStart กดเพื่อให้ timer1 ทำงานหรือหยุดทำงาน
3.    buttonRight หมุนเซอร์โวทางขวา 90 องศา
4.    buttonStepRight ขยับเซอร์โวไปทางขวาหนึ่งครั้ง
5.    buttonStepLeft ขยับเซอร์โวไปทางซ้ายหนึ่งครั้ง
6.    buttonLeft หมุนเซอร์โวทางซ้าย 90 องศา

โครงสร้างคลาส AvailabotForm
โครงสร้างของคลาส AvailabotForm เผยให้เห็นส่วน using และสมาชิกต่างๆ ดังนี้

 

บรรทัดที่ 3 และ 4 โค้ดส่วน using จับรวมเนมสเปสพิเศษที่เราต้องการใช้งานสองเนมสเปสคือ IO ช่วยให้อ้างถึงไทป์ TextReader เพื่ออ่านแฟ้มข้อมูลตัวอักษร และ Threading ช่วยให้ใช้คำสั่ง sleep เพื่อหน่วงเวลาได้

คลาส AvailabotForm มีสมาชิกเพียงสองแบบคือสมาชิกแบบดาต้าฟิลด์ (บรรทัดที่ 8 ถึง 12) และสมาชิกแบบเมธอด (บรรทัดที่ 15 ถึง 133) สมาชิกแบบเมธอดแบงออกเป็นสี่ประเภทคือ คอนสทรักเตอร์ (บรรทัดที่ 15) เมธอดทำหน้าที่หมุนเซอร์โว (บรรทัดที่ 22 ถึง 57) เมธอดบริการตัวจับเวลา (บรรทัดที่ 79) และเมธอดบริการปุ่ม (บรรทัดที่ 89 ถึง 116)

สมาชิกแบบฟิลด์ของคลาส AvailabotForm
สมาชิกแบบฟิลด์ของคลาส AvailabotForm มีห้าตัวดังนี้
    private TextReader myTR;
    PortAccess myPort = new PortAccess();
    private bool userStat = false;
    private bool repeat = false;
    private bool moveToLeft = false;
myTR ทำหน้าที่เก็บค่าอ้างอิงออพเจ็กต์แบบ TextReader เพื่อให้เราสามารถอ่านไฟล์ตัวอักษรได้ myPort ทำหน้าที่เก็บค่าอ้างอิงออพเจ็กต์แบบ PortAccess ที่สร้างจากคลาสที่เรานิยามไว้เพื่อติดต่อกับพอร์ทเครื่องพิมพ์  userStat เป็นตัวแปรแบบบูลลีน ทำหน้าที่เก็บภาวะของแฟน (ว่าออนไลน์หรือไม่)repeat ทำหน้าที่เก็บสถานะว่าเป็นการทำงานแบบหมุนต่อเนื่องหรือหมุนเพียงครั้งเดียว (โหมดการทำงานของหุ่นแอ๊บแบ๊ว) และสุดท้ายคือ เก็บสถานะว่าเป็นการหมุนซ้ายไปขวาหรือขวาไปซ้าย (เพื่อให้หุ่นแอ๊บแบ๊วหันกลับไปกลับมาในโหมดทำงานต่อเนื่อง)

 

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

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: