- Advertisement -
首頁 技術頻道 腳底互動裝置助力 VR遊戲體驗身歷其境

腳底互動裝置助力 VR遊戲體驗身歷其境

- Advertisement -

因此,如果有了踩腳的壓力大小就可以分辨出在遊戲的過程中,是否以正常的走路亦或是躡手躡腳方式前進;再者,如果有了腳底各點的力大小,亦可形成一個方向的標示,也就可以得知使用者的行徑方向。

而作為一個熱衷於遊戲的玩家,多了一個感測器就像是多了一顆按鍵的鍵盤,只要有越多的不同的訊號輸入就可以越來越貼近人體操作。換言之,只要多了一對腳部感測裝置,就可以使VR裡的角色做出更多符合現實人體所做出的相對應動作。這也意味可讓遊戲往下一個真人模擬世代前進。

添加肢體感應強化VR遊戲體驗

隨著科技的進步,人們漸漸地意識到身體健康的重要性,但是工作的繁忙,使得大部分的人只有少數的假日,以至於沒有多餘的時間去安排一些運動活動。而這少數的假期又因為工作的勞累或是需要待在家裡陪伴親愛的家人,甚至是因為天氣太熱,變成了不想出門運動的理由。

因此,本文想利用薄膜壓力感測器製作可偵測腳底壓力的互動VR裝置,再配合遊戲的互動操作。這樣不僅可以和家人一起遊玩,也可以抒發工作所累積的壓力,更不用擔心因為天氣太熱而中暑,或是因為下雨而掃了興致。

同時,以往的遊戲是利用鍵盤滑鼠在螢幕上做操控,現在則是轉為手把及搖桿來當輸入裝置,並且螢幕輸出改為虛擬實境頭戴裝置,進而將遊戲產業提高的一個不同的層次。

不過,對遊戲玩家來說,虛擬實境遊戲雖能夠讓使用者以肉眼感受到遊戲世界,但跟現實的感知相比還是略有不足。例如,玩家只能在定點上玩遊戲,被追趕時,不能用使用現實雙腳來驅動遊戲內的角色跑步。因此,此設計將腳底壓力感測裝置加入操控器的一部分,藉此來實現可以與遊戲內的角色同步腳部動作,增添遊戲的樂趣。

換句話說,現在的VR遊戲日益增加,但市面上的遊戲使用介面大多以雙手感應來體驗遊戲,較少有其它的肢體感應。因此,為了追求更完善的體驗感覺,因而做出可以讓使用者使用雙腳的壓力與互動操控方式來提升遊戲樂趣的作品。以下列出本產品之相關特色:

.以往的VR裝置都是手部或頭穿戴裝置,腳部裝置很少。

.腳部感測裝置體積小且輕,可方便使用者穿戴。

.使用的感測器體積較薄,穿戴時不易有感覺異物。

.透過HID技術將感測結果轉為鍵盤的指令,不必再安裝其他程式分析指令。

.藉由九軸和腳底壓力感測器來感測使用者行走的方向、速度或模式。

.Unity遊戲內的角色透過接收裝置的指令作出與使用者相似的行動。

.腳部感測裝置能充電並非一次性使用。

.安裝腳底壓力感測裝置的鞋墊可藉由裁剪符合使用者的腳部大小。

.腳部感測裝置利用RF傳輸資料,方便架設與使用。

腳底互動裝置設計要素

本產品使用盛群旗下的HT66F2390與UART、SPI、I²C、HID、FSR與九軸感測器等元件與技術,以下將一一說明。

UART串列介面

UART是一種通用非同步收發傳輸器,通常稱作UART,是電腦硬體的一部分,可將資料由串列通訊與並列通訊間作傳輸轉換。UART通常用在與其他通訊協定(如EIA RS-232)的連結上。在串列傳輸通訊協定的格式內容,每一個符號由四種資料共11個位元所組成,共分為:

.起始位元(Start Bit)

.資料內容(Data)

.奇偶同位元檢查碼(Priority Bit)

.停止位元(Stop Bit)

如圖1所示,資料透過FIFO(First Input First Output)的方式,由最低有效位元LSB(Least Significant Bit)開始傳輸直至最高有效位元MSB(Most Significant Bit),但奇偶同位元(PB)可以選擇忽略不使用。

圖1 UART資料傳輸格式示意圖

SPI 串列介面

SPI為一主從式架構,通常有一個主機端(Master)和一或多個隨從端(Slave),連接方法及內部硬體構造如下圖2所示;而SPI工作模式一共4種,其詳細的時序圖可參考圖3所示:

圖2 SPI硬體構造圖
圖3 各種工作模式下的SPI時序圖

其中,圖3的SCLK可藉由軟體定義CPOL=0或1,並分別使SCLK在不工作時,準位保持在0或1。而CPHA可控制Master的SPI暫存器讀值或傳值在SCLK的正緣或負緣觸發。

在一般的情況下,Slave只會支援一種工作模式。因此,Master端必須要把工作模式設定成與Slave端一樣,並且事先確認Master與Slave是使用相同的模式進行操作。

目前較常用的操作模式為1或3。此外,還須注意SS訊號負緣對於大多數的Slave晶片使用來識別Master送來的第一個bit,所以盡量不是直接把SS接地。

I2C串列介面

I2C串列傳輸包括四個部分:起始訊號、設備位址發送、數據傳送和停止訊號。相關特性如下所列:

.只能Master<->Slave,無法Slave<->Slave,每個Slave都要有一個特定且唯一的位址。

.START狀態:SCL=High且SDA為負緣。

.STOP狀態::SCL=High且SDA=為正緣。

由Master發送起始訊號來開始通訊,所有的Slave Device接收到起始訊號後會進入接收數據模式。緊接著,Master需要發送通訊目標設備的位址及R/W資訊。目前的規範是提供兩種位址模式:7-bit和10-bit。

此外,須注意的是,只能Master<->Slave,無法Slave<->Slave,每個Slave都要有一個特定且唯一的位址,且由Master發送起始訊號來開起通訊,所有的Slave裝置接收到起始訊號後會進入接收數據模式。緊接著,Master需要發送通訊目標設備的位址及R/W資訊。

Unity軟體

Unity軟體是一套跨平台的遊戲引擎,可開發執行於PC、Mac OS單機遊戲,或是iOS、Android手機或平板電腦的遊戲。Unity也可開發線上遊戲,只需在網頁瀏覽器安裝外掛程式後即可執行Unity開發的遊戲。此外,Unity亦可用於開發PS3、XBox360、Wii遊戲主機上的遊戲。

本團隊利用免付費的模組及資源來設計能與本系統配合之遊戲。其中,Unity能藉由C#抓取鍵盤所傳送的按鍵值,藉由模擬鍵盤來操作遊戲中的角色,並將遊戲中的溫度、振動與電擊等,回傳到具備互動操作的手套,實現超越一般「虛實」體驗與體感互動系統設計的功能。

USB HID人機介面裝置

USB HID設備是直接與人互動的設備,例如鍵盤、滑鼠與搖桿等,具有以下功能。

.模擬鍵盤、滑鼠輸入指令。

.不需加裝其他特殊驅動程式,裝置插上即可使用。

.能遊玩眾多使用鍵盤及滑鼠操作之遊戲。

.可提供跨平台之操作,方便安裝與移植。

腳底壓力感測器

圖4為力敏電阻(FSR)工作原理,腳底壓力感測器是由3片FSR組成,其功能為:

圖4 FSR 工作原理圖

.是一個可以根據受力大小產生不同電阻變化的元件。

.隨著力量的增大,電阻會逐漸變小。

.力量和電導(conductance=1/r)成正比。

九軸感測器

九軸感測器共包括三軸加速度計、三軸陀螺儀、三軸磁力計,其中,三軸加速度計與三軸陀螺儀說明如下。

根據牛頓第二定律,物體加速度(m/s2)與受到的合力(N)成正比,與其質量(kg)成反比,而加速度方向與合力相同。值得注意的是,加速度計的作用力檢測機制擷取了作用力產生的加速度,所以加速度計實際測量的是力,而不是加速度。也即是加速度計是藉由檢測施加在其中一個軸向的作用力來間接測量加速度。

加速度計也是一種包括孔、空腔、彈簧和通道等以MEMS微型製造加工的機電裝置。而加速度計採用多層晶圓製程,以物體重心相對於固定電極的位移來測量加速力。

陀螺儀是一種用來感測與維持方向的裝置,基於角動量不滅的理論設計出來的。陀螺儀主要是由一個位於軸心可以旋轉的輪子所構成,陀螺儀一旦開始旋轉,由於輪子的角動量,陀螺儀有抗拒方向改變的趨向。而陀螺儀多用於導航、定位等系統。

無線收發晶片NRF24L01

NRF24L01是一款工作在2.4~2.5GHz世界通用ISM頻段的收發晶片模組,最大0dBm發射功率,在空曠的地方進行傳輸時,則可以達到100公尺的傳輸距離,並且支援六通道的資料接收。以下,為此模組的基本規格:

.工作電壓(Vcc):1.9~3.6V,建議3.3V。

.發送模式下,電流耗量(0dBm時):11.3mA。

.接收模式下,電流消耗(傳輸率2Mbps時):12.3mA。

.內置2.5G天線,體積輕小。

.當工作在應答模式通訊時,快速的空中傳輸及啟動時間,極大的降低電流消耗。

.具有自動重發功能,可由軟體控制重發次數及重發間隔時間。

.在接收到有效資料後,模組自動發送應達訊號,減少單晶片進行程式檢測時間。

腳底互動裝置結構解析

如圖5所示,是本產品方塊示意圖。本產品採用盛群的HT66F2390 MCU作為腳部感測裝置的核心元件,且在腳部(左腳與右腳)感測裝置有鋰電池可以供電給HT66F2390和NRF24L01模組。

圖5 整體系統方塊示意圖

其中,分別使用HT66F2390的ADC、I2C、GPIO及SPI的介面功能,並且分別讀取腳底壓力感測器、控制九軸感測器與NRF24L01。

如圖6所示,為本系統之硬體架構圖。發送端的腳步裝置包含左右腳部分,都是由HT66F2390、九軸感測器、壓力感測器及NRF24L01元件所組成。

圖6 整體硬體架構示意圖

其中,HT66F2390將會透過I2C介面讀取九軸感測器的數值,以及使用ADC的方式讀取壓力感測器的數值。最後,將這些資料整理存入陣列後,由SPI將資料送給NRF24L01,再由NRF24L01將資料發送給接收端。相對地,接收端則利用NRF24L01來接收從腳底壓力感測裝置所傳出的資料並加以進行判斷,爾後再將相符的鍵值透過USB HID介面傳送至遊戲中控制。

如圖7所示,為腳部感測裝置的電路Layout圖。將NRF24L01置於最右側執行無線傳輸,並將開關、LED、micro USB放置於左下角,便於操作,而實際整體電路板則是放置在鞋墊邊緣,以方便操作。圖8為本作品軟體流程圖。當遊戲一開始,首先判斷玩家所踩踏出之壓力數值來模擬遊戲上的動作,使玩家在遊戲裡的角色得以移動,經過層層闖關及完成挑戰。

圖7 腳底壓力感測裝置的電路layout圖
圖8 腳步感測裝置之NT66F2390系統流程圖

驗證/測試確保腳部感測裝置順利運作

本產品是透過NRF24L01之間互傳資料,並使用HID技術將資料轉為鍵盤的指令,而相關的執行結果先由UART觀察是否正確以避免錯誤的數據傳輸,實際測試方法如下所列。

腳部感測裝置是將九軸感測器與腳底壓力感測器透過NRF24L01傳給PC主機的接收端。而為了確保資料正確接收,於是透過UART將NRF24L01所收到的資料利用XCTU顯示。

圖9為NRF24L01之間互傳資料示意圖,其中,傳送的資料共11bytes,依順序為九軸感測器的加速度計X、Y、Z軸、陀螺儀的X、Y、Z軸、腳底壓力感測器的壓力數值以及左右腳符號與換行符號。

圖9 NRF24L01之間互傳資料示意圖

如圖10所示,使用I2C傳輸協定來對九軸進行讀取與寫入暫存器的動作。首先,要先傳九軸的地址並加上是要讀取還是寫入,緊接著,九軸會回傳一個ACK的訊號,代表它接收到了。緊接著,就可以繼續之後的動作,看是要寫入或是讀取暫存器,並使用孕龍分析儀檢測傳輸的資料是否正確。

圖10 MPU9250傳輸格式示意圖

當PC主機的接收端收到資料後,將進行資料的判斷,並依照判斷的結果透過USB HID將相符合的鍵值送入到遊戲軟體中。其中,如圖11所示,利用XCTU來顯示由USB HID傳入的鍵值。

圖11 USB HID技術模擬鍵盤的指令畫面圖

當腳部感測裝置沒電時,可利用micro USB孔充電,如圖12所示。此時的腳部裝置將顯示出紅燈亮狀態的充電過程,當腳部感測裝置充電完畢後,則會顯示綠燈亮的狀態。

圖12 腳部裝置-充電中實體圖

如圖13所示,開啟Unity遊戲,並打開XCTU監測接收端輸入的鍵值是否正確。此時,同步驗證USB HID所輸入的按鍵值是否正確。

圖13 遊戲和監測按USB HID鍵值合併操作畫面

根據上述的說明與介紹,本產品只要將所設計的九軸感測的鞋墊放入鞋子內,即可操作遊戲內角色的移動,相較於傳統利用手部裝置上的按鍵操作角色更有真實感。而且利用RF無線傳輸使使用者行走上不受到有線的限制。

而本產品的腳部VR裝置的發展經過驗證後,讓VR遊戲提高其趣味性與虛擬操作的娛樂性。亦可透過VR裝置的協助未來的遊戲能更加地貼近現實的感覺。此外,也可應用在醫療方面合作,例如復健的病人們可以藉由穿戴此裝置來判斷自己的腳部動作是否正確。

(本文作者高士弘、張景皓、郭倫廷皆為國立虎尾科技大學學生;指導老師為許永和教授)

相關文章

- Advertisement -
- Advertisement -

最新文章

- Advertisement -

熱門文章

- Advertisement -

編輯推薦

- Advertisement -