was successfully added to your cart.

Basic real-time graph communication in C# with microcontroller ภาคต่อ ^^

By May 21, 2012General

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

เรามาทบทวนสิ่งที่ออกแบบไว้กัน ซึ่งการทำงานที่ออกแบบไว้มีดัีงนี้

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

หากท่านได้สนใจโค้ดตัวอย่างด้านบนนี้สามารถดาวน์โหลดได้ด้านล่างนี้ครับ

ปล. โค้ดไม่สมบูรณ์ตรงไหน สามารถติเตียนได้นะครับ

Example Serial Port.rar

Join the discussion 5 Comments

  • 10Logic.com says:

    ติดตามอ่านครับ

  • ชอบมากเลย อะไรที่เป็น กราฟ เป็น ชาร์ต เนี้ย ^^’

  • ultimateohm says:

    ขอตามอ่านด้วยครับ รอชมๆ
    พูดถึง C# นี้ต้องเป็นพวก .NET หรือ Netduino หรือมีแบบอื่นๆ ได้ไหมครับ

    • deaware says:

      ปกติการเขียนซอฟแวร์บน .NET เพื่อไปลงไมโครคอนโทรลเลอร์ถือว่าเป็นแนวหนึ่งที่น่าสนใจครับ
      แต่ปกติที่พบเจอในการทำงานจริงจะไม่ค่อนมีการใช้งานกับ ระบบจริงเท่าไรครับ

  • โกเมศ ลิ้มจำรูญ says:

    ของผมลองนำโค้ด มาทดสอบใช้ แต่ยังงงๆ อยากสอบถามว่า ต้องแก้ไขโค้ดตรงไหนหรือไม่ครับ

Leave a Reply to 10Logic.com Cancel Reply

*