• 沒有找到結果。

第一章 簡介

1.3 目的

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

1.3 目的

本篇論文的目的,希望在這次研究開發出的感測裝置,能夠在舞台上參與演出。

但演出者對設備品質有相當程度的要求。為了能達成參與演出的目標,就必需讓演出 者接受、願意使用這次研發出的穿戴式裝置,因此訂定了下列 5 個目標:

1.方便穿戴:製作出無線式的穿戴式裝置,能夠方便快速穿戴脫下,能夠適合不同身 材的人穿戴,不會因身材大小不同而導致無法穿戴。

2.低耗電量:由於此套系統需在身上長時間使用,所以需能長時間連續運作不需中斷 充電,至少能足夠一次即時展演演出的時間。在本次研究中,設定目標為 4 小時。

3.系統穩定:系統能持續長時間運作,不會因為無線訊號干擾而導致系統中斷需重新 開機。一場演出從穿戴、測試到正式演出會經歷數小時時間。因此將裝置穿上身上後,

至少要能足夠運行數小時不需要重新開機。在本次研究中,設定目標為 4 小時。

4.修正方便:因長時間運行,而累積的偏差數值,需能在極短時間內,迅速且方便的 歸零修正完成,不能影響到舞台上的舞者。在本次研究中,設定目標為 5 秒。

5.更新率高:每秒的更新速率需能達到 30 次以上,讓投影出的動畫看起來流暢自然。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

第二章

硬體評估

由於此次研究的最終目的是要製作出穿戴式裝置實體,因此硬體相關的評估相當 重要,在這次研究剛開始時,硬體評估花費了相當多的時間。下面列出了在本次研究 中所評估過的重要硬體裝置。

2.1 Arduino 開發板

Arduino 是非常方便好用的開發板,從硬體線路、程式庫,均為公開的,在設計 上,有許多擴充腳位,藉由這些擴充接腳,就能加入其他的感測器擴充系統的功能。

這樣的開發板,符合我們對於公開、方便擴充的需求。

Arduino 開發板有相當多的型號,如 UNO[3]、Mega[4]、Nano[5]、Lilypad[6]等。

圖 2:Arduino UNO 及 Arduino mega 實拍圖

圖 3:Arduino Nano 及 Arduino Lilypad 實拍圖

各型號規格及價格略有差異,主要考量的重點在於:體積尺寸、輸入電壓、CPU

供電方面,Nano 供電方式能透過 GPIO 腳位來做供電,也優於 lilypad。而其他規格也 足夠使用,所以最後期則採用 Nano。

了解 Nano,詳閱規格後,得知 Nano 上的微處理器為 Atmel 公司的 ATmega328P,而 ATmega328P 規格[7]上有標示了運作電壓為 1.8V 至 5.5V。所以可以得知 ATmega328P 的運作電壓是介於 1.8V 至 5.5V,那麼輸入低於 Nano 所標示的電壓,Nano 也是有可

Raspberry Pi[8]中文名稱為樹莓派,能夠安裝簡易版本的 linux,且有數個 USB 介 面,尺寸面積和一張信用卡相當。我們計畫由 Raspberry Pi 當做數據轉接中心,負責 收集使用者身上數個 Arduino 透過藍牙所傳送出來的姿態資料,整合出人體姿態資料 傳送到訊息交換中心供其他系統存取使用。

Raspberry Pi 主要有兩個型號,Model A+與 Model B+,Model B+相較於 Model A+

而言,Model B+有 4 個 USB 介面,因為我們需要外接多個藍牙 USB Dongle,於是我 們決定採用 Model B+。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

圖 4:Raspberry Pi Model A+及 Model B+實拍圖

2.3 低功耗藍牙 BLE 4.0 感測器

低功耗藍牙 BLE 4.0 所耗用的電力相當的低,且裝置裝透過 BLE 4.0 連線,不需 像過去的藍牙還需要配對。裝置間的連線更為方便快速,若遇到斷線問題,還能在極 短的時間內重新建立連線,於是我們計畫採用 BLE 4.0 感測器來為我們的系統資料收 送資料。

由於各款商品所採用的晶片不同,使用效果、特性也不一樣,此系統需依特性效 果,來決定所要採用的款式。以下為所測試過款式的比較表。

表 2:USB 型式藍牙接收器評估結果比較表

商品名稱 晶片商 動畫流暢度 評估結果

Esense D704 CSR 差 不採用 SEEHOT SBD-40 CSR 差 不採用 WED-210V4 Broadcom 佳 採用

在使用數款藍牙 USB DONGLE 後,發現第三款產品傳輸速率較為優異,而使用 前兩款產品時,動畫影像會有嚴重延遲的現象,因此決定採用第三款產品做為安裝在 pi 上面的藍牙 USB DONGLE。

組,如 RedBearLab[9] BLE mini、RedBearLab BLE Shield、上海移摩通 MBTV4。

圖 5:三款藍牙感測器 BLE mini、BLE Shield 及 MBTV4 實拍圖

每款的功能及特性皆有不同,我們系統需要的模組需能支援 Central role,又已內 建 AT-指令以方便使用。因此評估試用了相當多款,才做出最後選用的款式。下表列

Central role

在實驗初期,是使用 RedBearLab 公司的產品 Ble mini,雖然這款有支援 Central role,但並沒有內建 AT-指令,內建韌體指令不足,其他功能如偵測 rssi,就得自行開 發。於是遍尋了多款藍牙模組,最終發現一款藍牙模組『MBTV4』,這款模組和 RedBearLab 的 mini 都是使用相同的晶片 TI CC2540[10],但還內建了豐富的 AT-指令,

次,速率相當的快,而售價又低了數倍,約為 RedBearLab 產品的四分之一至五分之 一,於是最終決定採用此款模組。

最後由於 MPU6050[11]具有加速計及陀螺儀,並內建 DMP[11]能自動融合出姿態 資料,無需再額外撰寫程式來推算人體姿態,功能上符合要求,市售價格又是相當的 低廉,大約只需新台幣 50 元左右,因此決定採用 MPU6050 這款姿態感測器。並將評 估數款感測器的結果整理如下表。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

圖 6:9V 電池及 3.7V 鋰電池實拍圖

另外在一些演出活動,因劇情設計的關係,讓玩家攜帶筆電一同移動遊玩,但筆 電電池電量不足以供應一整天的演出使用,因此需額外準備行動電源供筆電使用,我 們選用的筆電功耗相當高,約 100 瓦以上,遍尋市面上的行動電源,大多無法提供足 夠的功率,能提供足夠功率的行動電源,費用又過於昂貴,不符合我們的預期低成本 的要求,於是我們在筆電電源供應方面,選擇使用汽車電池。

圖 7:12V 汽車電池實拍圖

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

第三章

系統架構與實作過程

3.1 評估六軸姿態感測器可行性

為了評估六軸感測器的可行性,以 Arduino uno 模組再加上六軸姿態感測器 MPU6050(三軸陀螺儀+三軸加速計)不斷的收集人體姿態資料,並透過 USB 傳輸線,

將 Arduino uno 上的資料傳輸到電腦,如下圖所示。

圖 8:六軸感測器姿態收集系統架構圖

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

圖 9:六軸感測器姿態收集系統實拍圖

透過這個方式,在筆電上每秒約能收集到 100 至 110 次姿態資料,速率遠高於原 先期望的每秒 30 次。每次感應到的數據為感測器偵測到 x 軸、y 軸、z 軸相對於原點 的角度。於人體重要肢體關節附近安置感測器,同時間將多點的資料傳至筆電,即可 知道這些節點的 3 軸目前的角度資料,進而得知人體的姿態。

再做進一步測試,一次安裝多個感測器,確定同時運作起來速率也沒問題。先於 人體四肢各安裝一個感測器,每一個節點與腰部的 USB 集線器間以一條 USB 傳輸線 連接。再於 USB 集線器上,透過一條 USB 傳輸線,與做為資料收集中心的筆電連接。

設計架構如下圖所示。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

圖 10:人體姿態感測收集系統架構圖

圖 11:人體姿態感測收集系統實拍圖

同時在身上穿戴了四個感測器,在筆電上收集到的四個感測器的偵測速率依然維 持在每秒 100 次至 110 次,正確性也無誤,符合設定標準,因此確定以六軸感測器做 為姿態偵測是沒有問題的。

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

為從端,而數據收集中心樹莓派為主端。由做為主端的樹莓派向做為從端的 Arduino 發出建立連線請求,建立連線後,由做為從端的 Arduino 對樹莓派不斷的傳送 3 軸姿 態資料。系統設計如下圖。

圖 12:六軸感測器姿態收集系統-無線傳輸版架構圖

圖 13:六軸感測器姿態收集系統-無線傳輸版實拍圖

人體穿戴的 Arduino 每一次收到的資料為表示三個軸的轉動角度資料,數值範圍 介於正負 180 之間,Arduino 再將這三個資料加上 360,使得產生的數值皆為正整數,

並以 16 個位元來表示一個軸的轉動角度資料,48 個位元為一筆表示三個軸的轉動角

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

度資料。再使用藍牙感測器傳出這一筆姿態資料。

在 Arduino 的姿態資料傳出頻率方面,由於 Arduino 每秒可從 MPU6050 收到 110 次,但為了減低頻寬的使用量,又因為要使動畫看起來流暢,每秒的傳輸率還是必需 高於 30 次。為了同時符合這兩個條件,所以在 Arduino 程式中做了控制,將程式設計 為每收到 3 筆資料,才傳送出 1 筆姿態資料,如此就可將姿態資料傳出頻率控制在每 秒 37 次左右,每 1 次傳出 48 個位元,換算為每秒傳輸量則為 1776 個位元,傳輸速率 同時符合每秒高於 30 次及降低傳輸量的兩項標準。

圖 14:人體姿態感測收集系統-無線傳輸版架構圖

與前一版雛型差異在於這一版著重在資料傳輸無線化,設計在身上裝置了少 USB 線和 USB 傳輸線。穿戴於人體上的實際照片:

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

圖 15:姿態感測系統無線傳輸版-人體實際穿戴實拍圖

樹莓派收集身體各節點數據後,透過網路線,將資料傳送到負責顯示資料的 PC 上,再由 PC 上的 UNITY 動畫程式,依所收到的各節點三軸資料,繪製成人體骨架動 畫並呈現在螢幕上。架構如下圖所示

圖 16:人體姿態感測收集系統-完整版架構圖

‧ 國

立 政 治 大 學

N a tio na

l C h engchi U ni ve rs it y

樹莓派系統在開始接收 Arduino 資料前,需預先設定要感測的所有節點的資料,

包含這個節點所要表示的人體部位名稱以及負責傳送這個節點的藍牙感測器代號。如 此才能在每一次收到資料後,依據這筆資料傳送者的藍牙裝置代號,得知這是表示哪 一個人體部位的資料。

圖 17:人體關節部位名稱圖

在樹莓派資料傳出方面,由於樹莓派上的藍牙接收器會在不同的時間點,分別收 到許多人體節點所傳來的資料,沒有固定的順序與頻率,因此樹莓派必需收集彙整資 料,再定時將整理好的資料傳輸出去。由於動畫品質的要求,所以輸出頻率設計為每 秒 30 次,也就是每隔 0.033 秒傳送一次,每次會傳出所有節點的三軸資料。

在樹莓派上,會以一個列表記錄所有的節點,並記錄每個節點最新的姿態資料,

只要收到資料,就更新該節點的姿態資料。在無窮迴圈中,不斷的更新每個節點的姿

只要收到資料,就更新該節點的姿態資料。在無窮迴圈中,不斷的更新每個節點的姿

相關文件