//Logo Image
作者:黃冠穎(2009-05-01);推薦:徐業良(2009-05-01)

Wii Remote操作設定與使用方式

本文敘述如何在遠端臨場機器人(Telepresence Robot for Interpersonal Communication, TRIC)的遠端使用者介面,整合Wii Remote技術。本研究使用任天堂公司(http://www.nintendo.com/countryselector)開發的Wii RemoteWii遊戲機遙控器),並以Visual Basic 2005進行軟體設定。

1.     Wii Remote介紹

Wii是任天堂公司所推出的第七代家用遊戲主機,最主要特色為其所使用的控制器Wii Remote。如圖1所示,Wii Remote的外型如同電視遙控器,除了一般遙控器可以只用單手操控,並配合遙控器上的功能按鍵外,還多了「指向定位」及「動作感應」等兩項功能。「指向定位」如同一般滑鼠可以控制螢幕上的游標,「動作感應」則可偵測三維空間中的移動及旋轉,使用者可利用功能按鍵,搭配揮動、甩動與扭轉等各種方式來操控。

1. Wii Remote

本研究於TRIC遠端使用者介面中針對Wii Remote「動作感應」的特色進行設定,利用Wii Remote內建三軸加速度感測晶片,來量測空間中的加速度,進行動作模擬與力回饋裝置給予手部震動的觸感等功能。本研究中未使用Wii Remote內建紅外線感測的「指向定位」功能。

Wii Remote內建美國ST公司(http://www.st.com/stonline/)開發的三軸加速度感測晶片,如圖2紅色圓圈所示,能感測空間中的加速度。三軸加速度感測晶片依據所感測到的X軸、Y軸與Z軸等三主軸的數值比例,並利用地球重力加速度向下的自然特性,定義出Wii Remote於三維空間中的正、反、上與下等方向,再依照各軸的加速度數值變化,互相配合,推算出Wii Remote在空間中的傾斜角度、旋轉與揮動方向。

2. Wii Remote電容式三軸加速度感測晶片

Wii Remote另設有美國Broadcom公司(http://zh-tw.broadcom.com/company/)開發的藍芽晶片,如圖3紅色圓圈所示,Wii Remote將三軸加速度與紅外線等感測功能所偵測到的數據資料與功能按鍵的指令,統一透過藍芽晶片傳送至主機接收並處理。本研究將電腦作為主機,利用Visual Basic 2005軟體接收Wii Remote的藍芽資訊,從中擷取三軸加速度感測值與功能按鍵指令等資訊,經過數值換算後,將其數據配合真人使用方式進行人體動作模擬。

3. Wii Remote藍芽晶片

2.     Visual Basic 2005軟體設定

美國軟體工程師Brian Peek等人利用Visual Basic 2005軟體,擷取Wii Remote藍芽資訊,進行整體的連結控制,並建立完整的Library,發放於網站上供大眾使用(http://blogs.msdn.com/coding4fun/archive/2007/03/14/1879033.aspx)。本研究直接利用此架設完整的Visual Basic 2005軟體,直接讀取三軸加速度與功能按鍵的感測數值,再做其他數值上的定義與運用。

2.1 Wii Remote原始控制介面

4Brian Peek等人透過電腦,利用Visual Basic 2005軟體讀取Wii Remote的藍芽資訊後,將Wii Remote整體的功能資訊一一擷取出來,所建置的控制介面紅色標示部分為Wii Remote的功能按鍵選單;藍色標示部分為三軸加速度感測晶片的讀取值,從上而下分別為X軸、Y軸與Z軸。擁有此兩部分的功能資訊即可完成本研究對Wii Remote的操作設定,其餘則為Wii RemoteLED燈號、紅外線與電池電量等感測項目

4. Wii Remote整體控制介面

本研究應用Visual Basic 2005讀取的三軸加速度感測值(如圖4藍色標示部分),依據此各軸的數值變化,判別出Wii Remote三軸加速度感測晶片所定義的主軸方向,如圖5所示,並利用此結果,作為本研究日後進行方向判斷與動作定義的依據。

5. Wii Remote三軸方向標示

由圖4Brian Peek等人建置的Wii Remote整體控制介面,已將大部分的功能資訊都擷取出來,而本研究在控制上只需利用三軸加速度感測值與功能按鍵等資訊,便可完成遠端使用者介面的技術需求,故可將介面簡化,減少程式撰寫上的篇幅。本研究將使用Brian Peek等人所建置的Visual Basic 2005程式碼,進行部份修改與刪減。

2.2 Wii Remote控制程式碼

6Brian Peek等人所撰寫的Visual Basic 2005部分原始程式碼,由於此部分的程式內容引用了Brian Peek等人自行建立的Library,若刪除某一部分則會造成Library引用不完全,程式無法執行,故此部份程式不得修改。其內容設定為當程式啟動時,就直接開啟電腦藍芽連接埠,讀取藍芽資訊,若電腦未與Wii Remote連線成功,則讀取失敗,程式偵錯後會自動關閉,故在開啟程式前請先將Wii Remote與電腦連線成功,方可使用。

7Visual Basic 2005軟體引用Library讀取三軸加速度感測值與功能按鍵等資訊的部分原始碼,有此部分程式,即可完成資料讀取,達成本研究的功能所需,圖8為引用了Library內容的程式結束碼。除了圖6、圖7與圖8所提及的程式之外,其餘程式內容皆可省略。

6. 引用Library部分原始碼

7. 部分功能程式碼

8. 程式結束碼

3.     遠端臨場機器人控制介面

本研究一改以往利用滑鼠點擊電腦螢幕按鈕的控制方式,將Wii Remote的操作技術加入遠端臨場機器人的遠端使用者介面之中。因操作介面多了Wii Remote的使用,整體使用流程如圖9所示,遠端使用者使用Wii Remote,透過藍芽將Wii Remote所模擬的動作資訊傳至家中電腦,待電腦利用Visual Basic 2005軟體擷取藍芽訊號與分析處理後,將最後得知的指令透過網際網路傳送至TRIC,控制TRIC的所有行動模式。TRIC亦將影音等資訊透過網際網路回傳至遠端使用者家中的電腦,讓遠端使用者接收TRIC回傳的資訊,並藉此與近端使用者溝通互動。

9. 使用者介面使用流程

本研究將上述Brian Peek等人所建立的功能介面作為範例,利用此範例擷取功能按鍵與三軸加速度感測值等兩項主要功能,將遠端臨場機器人控制介面改寫,以下將介紹此控制介面。

3.1 遠端臨場機器人控制介面與軟體介紹

10為遠端臨場機器人控制介面,其中「Wiimote Accel」部分是將Wii Remote於三維空間中所偵測到的三軸加速度感測值,經過數值運算後,將結果顯示於此欄位中,好利於本研究檢查數值判斷是否正常;右方「功能按鍵」部分則是擷取使用者在操作Wii Remote時所使用的功能鍵指令;「狀態列」中「Wii取樣頻率」提供使用者可調整電腦讀取Wii Remote藍芽資訊的頻率快慢,單位為毫秒,「動作判斷時間」是待電腦讀取完Wii Remote藍芽資訊後,使用者可依照不同的判讀速度,改變電腦對Wii Remote判斷的靈敏度,單位為毫秒,「目前動作狀態」顯示指令內容與動作狀態,方便本研究檢測程式的運作狀態;「網路設定」部分為本研究最後發送指令的IP位址。

10. 遠端臨場機器人控制介面

11至圖13為本研究針對遠端臨場機器人控制介面所撰寫的程式內容。圖11紅色標示部分為本研究設定連結的IP位址,在此即為TRIC系統核心ARM的位址,使用者選取IP後即與之連結,所有的指令也都將發送至此IP位址;綠色標示部分為設定發送的網路指令內容。圖12程式設定軟體利用HTTP網路協定的方式傳送指令。圖13程式定義了Wii Remote的使用方式,依據前述範例程式的內容,利用功能按鍵與三軸加速度感測等兩功能的數值變化,配合程式的邏輯判斷,若符合判斷內容,則程式發送該指令至TRIC,控制遠方TRIC的行動,完成Wii Remote的動作判讀。

11. 遠端使用者介面程式()

12. 遠端使用者介面程式()

13. 遠端使用者介面程式()

3.2 Wii Remote操控方式

本研究在Wii Remote的操作方式上,採用角度判斷的方式。使用者手持Wii Remote,配合功能鍵的使用,將Wii Remote於空間下傾、上仰與側斜,擺放不同的角度(如圖14),並依據三軸加速度感測晶片因不同的傾斜角度,所偵測到不同的數值變化,各軸的數值經過程式邏輯判斷後,模擬手部的各種擺放姿勢,完成動作定義。表1為遠端使用者介面中,Wii Remote的操作方式與TRIC做動模式列表。

14. Wii Remot動作定義方式

1. Wii Remote操作方式與TRIC做動模式

Wii Remote操作方式

TRIC做動模式

按住B 下傾

全向輪-前進

按住B 上傾

全向輪-後退

按住B 右傾

全向輪-順時針旋轉

按住B 左傾

全向輪-逆時針旋轉

按住B與按鍵- 右傾

全向輪-右水平移

按住B與按鍵- 左傾

全向輪-左水平移

按住A 下傾

攝影機鏡頭-向下

按住A 上傾

攝影機鏡頭-向上

按住A 右傾

攝影機鏡頭-向右轉

按住A 左傾

攝影機鏡頭-向左轉

方向鍵上(長壓)

驚訝

方向鍵下(長壓)

難過

方向鍵左(長壓)

生氣

方向鍵右(長壓)

高興

按鍵HOME

攝影機鏡頭-置中

按鍵1(長壓)

影像焦距-放大

按鍵2(長壓)

影像焦距-縮小