[VB.NET]運用WiiRemote控制遙控車

  • 10875
  • 0
  • 2010-08-02

利用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

以下為程式
 

 

01     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 遙控車