8 Eylül 2016 Perşembe

[Arduino & VB.Net Uygulamaları #1] Arduino ve SerialPort


Bu uygulamada VB.Net'te basit bir arayüz oluşturulmuş ve SerialPort yoluyla Arduino UNO üzerinde iletişim kurulmuştur. Basit bir arayüz olarak Windows Form üzerinde ListBox ve Button kullanılmıştır. Resimde gördüğünüz üzere bilgisayar bağlantısı kurulu Arduino ile seçili COM portu üzerinden iletişim sağlanmıştır. İlgili konuyla kendi ara yüzünüzü yaratıp, herhangi bir şekilde Serial Monitor'daki gibi Arduino'nuzu yönlendirebilirsiniz.

VB.Net kodlarımızı incelemeye geçmeden önce aşağıdaki gibi basit bir arayüz oluşturalım ve oluşturduğumuz arayüze ToolBox'tan bir adet de SerialPort ekleyelim.


Görsel ara yüzümüzü oluşturduktan sonra sırasıyla kodlarımızı inceleyelim.

Imports System.IO.Ports
Eklediğimiz SerialPort'un yöntemlerini(methods) kullanabilmek için SerialPort Sınıfı import edildi.

Dim comPort As String
Dim isConnected As Boolean = False
Com Port'unun adı ve bağlantı kontrolü için 2 adet değişken tanımlanıldı.

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
    For Each sp As String In My.Computer.Ports.SerialPortNames
        portList.Items.Add(sp)
    Next
End Sub
Program ilk çalıştırıldığında mevcut olan Com Portları ListBox içerisinde sıralandı.

Private Sub portList_SelectedIndexChanged(sender As Object, e As EventArgs) 
Handles portList.SelectedIndexChanged
    If (portList.SelectedItem <> "") Then
        comPort = portList.SelectedItem
    End If
End Sub
Kullanıcının ListBox'tan geçerli bir port seçip seçmediğini kontrol edilip, ilgili değişkene aktarıldı.

Private Sub connectButon_Click(sender As Object, e As EventArgs) Handles
 connectButon.Click
    If Not (isConnected) Then
        If (comPort <> "") Then
            SerialPort1.PortName = comPort
            SerialPort1.BaudRate = 9600
            SerialPort1.DataBits = 8
            SerialPort1.Parity = Parity.None
            SerialPort1.StopBits = StopBits.One
            SerialPort1.Handshake = Handshake.None
            SerialPort1.Encoding = System.Text.Encoding.Default
            SerialPort1.ReadTimeout = 10000
            SerialPort1.Open()
            connectButon.Text = "Dis-Connect"
            onData.Text = comPort & " bağlanıldı."
        Else
            MsgBox("Select a COM Port first!")
        End If
    Else
        SerialPort1.Close()
        connectButon.Text = "Connect"
    End If
End Sub
Connect butonuna tıklanma olayında tek buton üzerinde hem bağlanma hem de bağlantıyı kesme özelliği için Boolean değişkeni kullanıldı. Ardından seçili bir Port'un olup olmadığı kontrol ettirilip, SerialPort bağlantısı için gerekli olan değerler aktarılıp bağlantı sağlanıldı. SerialPort hakkında daha fazla bilgiye ulaşmak için, https://msdn.microsoft.com/tr-tr/library/system.io.ports.serialport

2 yorum: