จากคราวที่แล้วเราได้ทำการออกแบบการวาดกราฟที่ได้ค่าจากเซนเซอร์เพื่อมาแสดงผลบนคอมพิวเตอร์ เพื่อบ่งชี้ให้เห็นถึงการเชื่อมต่อระหว่างอุปกรณ์แต่ละตัว มาถึงภาคต่อของตอนนี้ เราำได้ทำตัวอย่างจริงๆ ตามที่ออกแบบไว้
เรามาทบทวนสิ่งที่ออกแบบไว้กัน ซึ่งการทำงานที่ออกแบบไว้มีดัีงนี้
Sensor ส่งค่าไปที่ —-> Microcontroller แล้วแปลงจาก Analog เป็น Digital ผ่านทางขา ADC จากนั้นส่งค่าที่ได้ผ่านขา UART ไปที่ —-> PC วาดกราฟโดยใช้ C#
ทุกท่านคงเคยเขียนโปรแกรมจำพวก ADC หรือ UART บน Microcontroller กันมาก่อนหน้านี้่แล้ว ในที่นี้เราจึงจะทำการเสนอการเขียน Application บน C# เพื่อติดต่อกับ Microcontroller ผ่านทาง Serial Port โดยโปรแกรมที่เราได้พัฒนามานั้นมีรูปร่างดังรูปด้านล่างนี้ครับ
มาเริ่มกันเลยดีกว่า เริ่มจากการเขียนให้ C# สามารถติดต่อผ่าน Serial Ports ได้ในที่นี้เราได้ใช้ Class Serial Port ใน namespace System.IO.Ports ของ Visual studio เพื่อความสะดวก และง่ายต่อผู้เริ่มต้น
ในตอนแรกเราต้องประกาศ
using System.IO.Ports;
เพื่อทำการใช้งาน namespace System.IO.Ports
จากนั้นทำการประกาศ Object
SerialPort serial = new SerialPort();
สามารถกำหนดค่าต่างๆ และเปิดการใช้งาน ได้ดังนี้
serial.BaudRate = 115200;
serial.DataBits = 8;
serial.StopBits = StopBits.One;
serial.Parity = Parity.None;
serial.PortName = cboPort.Text;
serial.Open();
เราสามารถสร้าง Event ง่ายๆโดยการใช้
serial.DataReceived += new SerialDataReceivedEventHandler(draw_graph);
ในการใช้งานขั้นสูงสามารถอ่านได้ที่
http://msdn.microsoft.com/en-us/library/30swa673(v=vs.80)
ในการวาดกราฟได้ใช้ class System.Drawing.Graphics ในการวาดกราฟซึ่งศึกษาอย่างละเอียดได้ที่
http://msdn.microsoft.com/en-us/library/system.drawing.graphics.aspx
หากท่านได้สนใจโค้ดตัวอย่างด้านบนนี้สามารถดาวน์โหลดได้ด้านล่างนี้ครับ
ปล. โค้ดไม่สมบูรณ์ตรงไหน สามารถติเตียนได้นะครับ
ติดตามอ่านครับ
ชอบมากเลย อะไรที่เป็น กราฟ เป็น ชาร์ต เนี้ย ^^’
ขอตามอ่านด้วยครับ รอชมๆ
พูดถึง C# นี้ต้องเป็นพวก .NET หรือ Netduino หรือมีแบบอื่นๆ ได้ไหมครับ
ปกติการเขียนซอฟแวร์บน .NET เพื่อไปลงไมโครคอนโทรลเลอร์ถือว่าเป็นแนวหนึ่งที่น่าสนใจครับ
แต่ปกติที่พบเจอในการทำงานจริงจะไม่ค่อนมีการใช้งานกับ ระบบจริงเท่าไรครับ
ของผมลองนำโค้ด มาทดสอบใช้ แต่ยังงงๆ อยากสอบถามว่า ต้องแก้ไขโค้ดตรงไหนหรือไม่ครับ