利用WiiRemote透過VB.NET撰寫簡單的控制程式
[VB.NET]運用WiiRemote控制遙控車
最近一些關於動作偵測的元件與相關產品陸續的推出,讓我們的生活多了一些樂趣,而帶起這股風潮的,首推任天堂出的Wii,也因此有許多人開始對於其手把,也就是WiiRemote來做一些控制,目前網路上最強的人莫過於是Johnny Chung Lee,有興趣的可以到他的網站看看
http://www.cs.cmu.edu/~johnny/projects/wii/
那接著進入我們的主題,如何利用WiiRemote透過VB.NET撰寫簡單的控制程式,首先,我們先去這個網站下載Managed Library for Nintendo's Wiimote
http://blogs.msdn.com/coding4fun/archive/2007/03/14/1879033.aspx
http://www.codeplex.com/WiimoteLib/Release/ProjectReleases.aspx?ReleaseId=21997
裡面包含了WiimoteLib以及範例程式(VB.NET與C#兩種版本),透過WiimoteLib可以輕易的讓我們使用WiiRemote的各種事件與參數。
讓我們把範例程式開啟,此時,我們已經可以將程式進行Complete並且執行,當然在執行前,必須先將電腦的藍芽與WiiRemote做連接,而此時,我們可以透過直接修改範例程式來達到讀取WiiRemote的事件。
在遙控車方面,我們選用旗標公司出品的RoCar,介紹網頁如下:
http://www.fisp.com.tw/blog/robots/index.php?load=read&id=2
使用RoCar的原因在於,與電腦連接後,可透過RS232對RoCar做前後左右的移動。那接者,我們把SerialPort元件加入程式中。
加入SerialPort後,接下來的程式分成三部份,連結COM port、傳送資料與關閉COM port
以下為程式
Private Sub btnConnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConnect.Click 02
If serialPort.IsOpen Then 03
serialPort.Close() 04
End If 05
Try 06
With serialPort 07
.PortName = cbbCOMPorts.Text 08
.BaudRate = 9600 09
.Parity = IO.Ports.Parity.Odd 10
.DataBits = 8 11
.StopBits = IO.Ports.StopBits.One 12
13
' .Encoding = System.Text.Encoding.Unicode 14
End With 15
serialPort.Open() 16
17
lblMessage.Text = cbbCOMPorts.Text & " connected." 18
btnConnect.Enabled = False 19
btnDisconnect.Enabled = True 20
21
Catch ex As Exception 22
MsgBox(ex.ToString) 23
End Try 24
End Sub 25
26
Private Sub btnSend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSend.Click 27
Try 28
serialPort.Write(TextBox1.Text & vbCrLf) 29
With txtDataReceived 30
.SelectionColor = Color.Black 31
.AppendText(TextBox1.Text & vbCrLf) 32
.ScrollToCaret() 33
End With 34
Catch ex As Exception 35
MsgBox(ex.ToString) 36
End Try 37
End Sub 38
39
Private Sub btnDisconnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDisconnect.Click 40
Try 41
serialPort.Close() 42
lblMessage.Text = serialPort.PortName & " disconnected." 43
btnConnect.Enabled = True 44
btnDisconnect.Enabled = False 45
Catch ex As Exception 46
MsgBox(ex.ToString) 47
End Try 48
End Sub最後,將此程式與上述的 WiiMote程式做整合,就可以透過 WiiRemote 控制 RoCar 遙控車

Private
Private