• 沒有找到結果。

行政院國家科學委員會專題研究計畫 期末報告

N/A
N/A
Protected

Academic year: 2022

Share "行政院國家科學委員會專題研究計畫 期末報告"

Copied!
110
0
0

加載中.... (立即查看全文)

全文

(1)

行政院國家科學委員會專題研究計畫 期末報告

以主動式 RFID 無線通訊及卡門濾波器技術,將加速儀、電 子羅盤、氣壓式高度計,建築立體圖資訊等進行整合,提

昇定位追蹤性能之家庭式遠端健康照顧監控系統

計 畫 類 別 : 個別型

計 畫 編 號 : NSC 101-2221-E-216-019-

執 行 期 間 : 101 年 08 月 01 日至 102 年 07 月 31 日 執 行 單 位 : 中華大學通訊工程學系

計 畫 主 持 人 : 林君明

計畫參與人員: 碩士班研究生-兼任助理人員:黃吉清 博士班研究生-兼任助理人員:林政宏

報 告 附 件 : 出席國際會議研究心得報告及發表論文

公 開 資 訊 : 本計畫可公開查詢

中 華 民 國 102 年 11 月 10 日

(2)

中 文 摘 要 : 本計畫的研究目標,是設計一套具備室內定位功能,並且能 夠透過智慧型手機的手機應用程式軟體 (App,

Application),進行對照護對象追蹤記錄的遠端健康照護系 統。設計的目標,是使用安卓(Android)作業系統與 App 開發 環境(Eclipse),透過 nRF9E5 RFID 模組得知受照護對象之座 標,再透過電腦解譯出 x、y 座標後,傳遞至 html 網頁。

照護對象的移動及所在位置,可透過 Android App 即時得 知,照護對象的家屬可以不用隨侍在側,便能及時於工作場 所,知道家中受照護對象的健康狀況。這對於需要常時間照 護的慢性病患者、因故傷殘的傷患、與需要密切注意健康與 器官狀態的特殊疾病患者,十分有幫助。也可以減少因為年 輕人上班無法隨侍在側,與難以立即得知健康異狀的病患,

縮短察覺反應時間,可以及時為照護對象健康把關。

根據世界衛生組織統計[1],全球有 8 億 6 千萬慢性病患,而 接近 75-85﹪的醫療照護,都是在此種慢性病管理上。許多 慢性病患者都已年屆 65 歲以上。一份美國商務部人口普查局 的人口統計則估計,到 2030 年,上述患者將佔美國人口的 19%,或相當於大約 7,210 萬人。所以全球社會現在都在持續 尋求各種方式,以降低慢性病患者的醫療照護成本,但同時 也希望提升患者的生活品質。飛思卡爾半導體(Freescale)有 推出「家用醫療中心」(Home Health Hub,HHH)參考平台 [1],是運用 ZigBee 技術進行通訊[2-3],每個節點

(Node),必須隨時將資料上傳給協調器(Coordinator),比較 消耗能量。另一方面,運用 ZigBee 技術進行定位,精度會 受到天候溫度、溼度及環境因素的影響,為最大的缺點。

目前「家庭式遠端健康照顧監控系統」,只能量人體的溫 度,脈搏及心跳次數,並將這些資訊,以無線感測網路[5- 24]及 ZIG-BEE 技術,傳回監控中心[25-38]。這種系統主要 的缺點是不能知道被照顧者的行動狀態,及精確的位置。因 為只靠 ZIG-BEE 技術進行定位,精度一般為 3-5 公尺。

本計畫是研究運用最新的 RFID[39-79],無線通訊及卡 門濾波器技術[80-95],並和加速儀、電子羅盤、氣壓式高度 計,及建築立體圖進行整合,以便能確實掌握被監控者的精 確位置及運動狀態,建立一套較完整的「家庭式遠端健康照 顧監控系統」(Home Health Care Remotely Monitoring Center, HHCRMC)。

這種以 RFID 無線通訊技術,建置而成的家庭式遠端健康照顧 監控系統,較能合乎綠能省電的標準,因為這種 RFID 無線通 訊技術系統工作原理,是可由雙方主動傳送信號。若由讀取 器(READER)發號司令,每隔一個固定的時間,如 1 分鐘或是 5 分鐘,發出微波詢問信號,而本計畫 RFID 上的加速儀、陀

(3)

螺儀、高度計等元件,即被觸發,而將量測結果傳回讀取 器,讀取器端可依據 RFID 信號強度,和加速儀、陀螺儀及高 度計整合,進行卡門濾波器導航運算,並和建築立體圖進行 融合(Data Fusion),即可獲得較精確的位置以利監控,或是 再上傳「大型醫療中心」,進行進一步的統計及分析。

另一方面,RFID 標籤上的加速儀、陀螺儀、高度計等元件,

如果讀到有大變化的輸出信號,也可以主動發出信號給監控 中心,以利精確追蹤目前被監控者的運動狀況及位置。這樣 就可以對家中肢體受傷,或行動不便的人,進行 24 小時,全 天候,全空域的監控。如有任何情況,都可以隨時接受監控 中心的通報,進行搶救,進而提升醫療照護的水準。

本計畫運用此種 RFID 無線通訊技術,進行「家庭式遠端健康 監控」的好處,是不需要隨時將監控的資料上傳,可以依據 肢體受傷,或行動不便人的統計資料,及生活習慣,視需 要,彈性調整每次監控的時間間隔,這樣可以省掉許多人 力、能量及時間。例如早上 7 點以前,或是晚上 10 點之後,

一般人都是躺在床上就寢休息,所以各項加速儀、陀螺儀及 高度計之變動信號大小,應該都有一定的範圍,所以每 10 秒 監控一次。但如有特別的情況發生,如加速儀及陀螺儀輸出 信號,有明顯的變化,顯示家人有在行動,則就要加快監控 的速度,縮小每次取樣的間隔,以便偵測是否有跌落現象。

而 7 點起床後,至中午 12 點用中餐時,或是下午 2 點午休 後,至下午 6 點用晚餐時,加速儀與陀螺儀之輸出信號大 小,應該都有一定的特性,家人隨時都有進行移動行走的現 象,所以就要調高監控的速度,縮小兩次取樣的間隔(每 1 秒 監控一次),而監控中心可以將獲得的相關資料,進行卡門濾 波器導航運算,並和建築平面及立體圖進行整合,則可算出 較精確的位置。

本計畫為達到預期目標,需要用到下列技術,並加以整合:

1. 無線感測網路(WSN)建置 2. RFID 無線傳輸技術

3. 監控中心卡門濾波器整合 RFID 定位信號和加速儀、陀螺 儀及高度計進行之導航系統

4. 將導航系統和建築立體圖進行進行資料融合之室內定位技 術

中文關鍵詞: nRF9E5、Android、室內定位、遠端健康照護系統

英 文 摘 要 : This project proposes an App application for remote home care of indoor positioning, guidance and

monitoring by smart phone, it integrates RFID-based

(4)

accelerometers and rate gyros with the smart phone, such that one can not only apply it for remote home care of indoor positioning and guidance, but be monitored via RFID reader or the web network. The goal of this design is to apply Android operating system and Eclipse platform to embed the App application program on a smart phone. By using an nRF9E5 RFID module to transmit the accelerations and angular turning rates embedded on the person to a RFID receiver and then this monitor station can derive the person's coordinates and orientations to be monitored. Besides, the monitor station can uplink these data to a wireless page to provide the position and guidance information to the mobile phone user. On the other hand, the other people can also monitor the person's motion status on the web, if there is any emergency problem such as falling down, and then they can take proper actions right away to support the person under help and monitoring.

英文關鍵詞: nRF9E5, Android, indoor positioning, remote home care

(5)

行政院國家科學委員會補助專題研究計畫 □期中進度報告

■期末報告

以主動式 RFID 無線通訊及卡門濾波器技術,將加速儀、電子羅盤、

氣壓式高度計,建築立體圖資訊等進行整合,提昇定位追蹤性能之 家庭式遠端健康照顧監控系統

計畫類別:■個別型計畫 □整合型計畫 計畫編號:NSC 101-2221-E-216-019-

執行期間:101 年 8 月 1 日至 102 年 7 月 31 日 執行機構及系所:中華大學通訊工程學系

計畫主持人:林君明 教授 共同主持人:

計畫參與人員:林政宏、黃吉清

本計畫除繳交成果報告外,另含下列出國報告,共 _1_ 份:

□移地研究心得報告

■出席國際學術會議心得報告

□國際合作研究計畫國外研究報告

處理方式:除列管計畫及下列情形者外,得立即公開查詢

■涉及專利或其他智慧財產權,□一年□二年後可公開查詢 中 華 民 國 102 年 10 月 31 日

附件一

(6)

中文摘要

本計畫的研究目標,是設計一套具備室內定位功能,並且能夠透過智慧型手機的手機應用程式軟 體 (App,Application),進行對照護對象追蹤記錄的遠端健康照護系統。設計的目標,是使用安卓 (Android)作業系統與 App 開發環境(Eclipse),透過 nRF9E5 RFID 模組得知受照護對象之座標,再透過 電腦解譯出 x、y 座標後,傳遞至 html 網頁。

照護對象的移動及所在位置,可透過 Android App 即時得知,照護對象的家屬可以不用隨侍在側,

便能及時於工作場所,知道家中受照護對象的健康狀況。這對於需要常時間照護的慢性病患者、因故 傷殘的傷患、與需要密切注意健康與器官狀態的特殊疾病患者,十分有幫助。也可以減少因為年輕人 上班無法隨侍在側,與難以立即得知健康異狀的病患,縮短察覺反應時間,可以及時為照護對象健康 把關。

根據世界衛生組織統計[1],全球有 8 億 6 千萬慢性病患,而接近 75-85﹪的醫療照護,都是在此種 慢性病管理上。許多慢性病患者都已年屆 65 歲以上。一份美國商務部人口普查局的人口統計則估計,

到 2030 年,上述患者將佔美國人口的 19%,或相當於大約 7,210 萬人。所以全球社會現在都在持續尋 求各種方式,以降低慢性病患者的醫療照護成本,但同時也希望提升患者的生活品質。飛思卡爾半導 體(Freescale)有推出「家用醫療中心」(Home Health Hub,HHH)參考平台[1],是運用 ZigBee 技術進行 通訊[2-3],每個節點(Node),必須隨時將資料上傳給協調器(Coordinator),比較消耗能量。另一方面,

運用 ZigBee 技術進行定位,精度會受到天候溫度、溼度及環境因素的影響,為最大的缺點。

目前「家庭式遠端健康照顧監控系統」,只能量人體的溫度,脈搏及心跳次數,並將這些資訊,

以無線感測網路[5-24]及 ZIG-BEE 技術,傳回監控中心[25-38]。這種系統主要的缺點是不能知道被照 顧者的行動狀態,及精確的位置。因為只靠 ZIG-BEE 技術進行定位,精度一般為 3-5 公尺。

本計畫是研究運用最新的 RFID[39-79],無線通訊及卡門濾波器技術[80-95],並和加速儀、電 子羅盤、氣壓式高度計,及建築立體圖進行整合,以便能確實掌握被監控者的精確位置及運動狀態,

建立一套較完整的「家庭式遠端健康照顧監控系統」(Home Health Care Remotely Monitoring Center, HHCRMC)。

這種以 RFID 無線通訊技術,建置而成的家庭式遠端健康照顧監控系統,較能合乎綠能省電的標 準,因為這種 RFID 無線通訊技術系統工作原理,是可由雙方主動傳送信號。若由讀取器(READER) 發號司令,每隔一個固定的時間,如 1 分鐘或是 5 分鐘,發出微波詢問信號,而本計畫 RFID 上的加 速儀、陀螺儀、高度計等元件,即被觸發,而將量測結果傳回讀取器,讀取器端可依據 RFID 信號強 度,和加速儀、陀螺儀及高度計整合,進行卡門濾波器導航運算,並和建築立體圖進行融合(Data Fusion),即可獲得較精確的位置以利監控,或是再上傳「大型醫療中心」,進行進一步的統計及分析。

另一方面,RFID 標籤上的加速儀、陀螺儀、高度計等元件,如果讀到有大變化的輸出信號,也可 以主動發出信號給監控中心,以利精確追蹤目前被監控者的運動狀況及位置。這樣就可以對家中肢體 受傷,或行動不便的人,進行 24 小時,全天候,全空域的監控。如有任何情況,都可以隨時接受監控

(7)

本計畫運用此種 RFID 無線通訊技術,進行「家庭式遠端健康監控」的好處,是不需要隨時將監控 的資料上傳,可以依據肢體受傷,或行動不便人的統計資料,及生活習慣,視需要,彈性調整每次監 控的時間間隔,這樣可以省掉許多人力、能量及時間,如圖 1。例如早上 7 點以前,或是晚上 10 點之 後,一般人都是躺在床上就寢休息,所以各項加速儀、陀螺儀及高度計之變動信號大小,應該都有一 定的範圍,所以每 10 秒監控一次。但如有特別的情況發生,如加速儀及陀螺儀輸出信號,有明顯的變 化,顯示家人有在行動,則就要加快監控的速度,縮小每次取樣的間隔,以便偵測是否有跌落現象。

而 7 點起床後,至中午 12 點用中餐時,或是下午 2 點午休後,至下午 6 點用晚餐時,加速儀與陀螺儀 之輸出信號大小,應該都有一定的特性,家人隨時都有進行移動行走的現象,所以就要調高監控的速 度,縮小兩次取樣的間隔(每 1 秒監控一次),而監控中心可以將獲得的相關資料,進行卡門濾波器導航 運算,並和建築平面及立體圖進行整合,則可算出較精確的位置。

本計畫為達到預期目標,需要用到下列技術,並加以整合:

1. 無線感測網路(WSN)建置 2. RFID 無線傳輸技術

3. 監控中心卡門濾波器整合 RFID 定位信號和加速儀、陀螺儀及高度計進行之導航系統 4. 將導航系統和建築立體圖進行進行資料融合之室內定位技術

圖 1 RFID 無線通訊技術整合家用遠端健康照顧監控之系統流程圖 關鍵字: nRF9E5、Android、室內定位、遠端健康照護系統

(8)

Abstracted

This project proposes an App application for remote home care of indoor positioning, guidance and monitoring by smart phone, it integrates RFID-based accelerometers and rate gyros with the smart phone, such that one can not only apply it for remote home care of indoor positioning and guidance, but be monitored via RFID reader or the web network. The goal of this design is to apply Android operating system and Eclipse platform to embed the App application program on a smart phone. By using an nRF9E5 RFID module to transmit the accelerations and angular turning rates embedded on the person to a RFID receiver and then this monitor station can derive the person’s coordinates and orientations to be monitored. Besides, the monitor station can uplink these data to a wireless page to provide the position and guidance information to the mobile phone user. On the other hand, the other people can also monitor the person’s motion status on the web, if there is any emergency problem such as falling down, and then they can take proper actions right away to support the person under help and monitoring.

Keywords:nRF9E5, Android, indoor positioning, remote home care

(9)

目錄

前言 ... 1

1. 研究目的... 1

2. 文獻探討... 2

3. 研究方法... 3

3.1 Android 系統介紹 ... 7

3.2 Android 系統版本 ... 8

3.3 Android 系統特點 ... 9

3,4 Android 系統架構 ... 9

3.5 Android 硬體設備 ... 12

3.6 Android 軟體介紹 ... 13

3.6.1 Android 軟體開發套件(Software Development Kit, SDK) ... 14

3.6.2 Java 開發套件(Java Development Kit , JDK) ... 14

3.6.3 Android 開發工具(Android Development Tools, ADT) ... 14

3.7 Eclipse(Android 開發環境) ... 15

3.7.1 Eclipse 架構 ... 16

3.8 Android 模擬器 ... 16

3.9 Android 專案架構 ... 17

3.10 Android 應用程式介面設計 ... 19

3.11 Android Java 程式碼編譯 ... 23

3.12 Android 藍芽端與 PC 連接通訊 ... 26

3.13 Android 藍芽通訊介面設計 ... 27

3.14 超文件標示語言(HTML 網頁) ... 34

3.15 網路分享 ... 35

3.16 主動式 RFID 模組設計開發 ... 38

3.16.1 Nordic nRF9E5 發展平台 Tag 模組架構 ... 39

3.16.2 讀取器模組架構 ... 41

3.16.3 Nordic nRF9E5 發展平台 ... 43

3.17 加速儀與陀螺儀應用設計 ... 46

(10)

3.17.1 External Connector ... 47

3.17.2 Power And Boost Up ... 48

3.17.3 MEMS Sensors and Outputs ... 49

3.17.4 GIMU 輸出格式 ... 49

3.18 系統流程 ... 55

3.19 座標換算 ... 57

3.20 nRF9E5 IMU 慣性感測模組系統設計 ... 60

3.20.1 X 軸移動計算 ... 61

3.20.2 X 軸與 Y 軸實際計算 ... 65

3.21.3 Z 軸實際計算 ... 71

4. 結果與討論(含結論與建議) ... 75

5. 參考文獻... 77

5.1 本計畫執行期間之專利著作: ... 78

5.2 本計畫執行期間之論文著作: ... 79

5.3 本計畫執行期間之研討會論文: ... 79

附錄 ... 81

6. 預期完成之工作項目及成果: ... 85

6.1 預期完成之工作項目及具體成果。 ... 85

6.2. 對於學術研究、產業界、國家發展及其他應用方面預期之貢獻。 ... 85

6.3 對於參與之工作人員,預期可獲之訓練。 ... 85

6.4 預期完成之研究成果及績效 ... 86

(11)

前言

隨著智慧型手機的發展,人們對於資訊的需求也越來越大,而在半導體技術的發展,以及電腦軟 硬體的技術進步,電腦的體積逐漸縮小,同時運算效能卻不斷的提升。而 Android 平台是一個攜帶方 便的電子裝置,它的功能就像電腦一樣具有方便的圖形操作介面,而且可以安裝新的程式,也提供程 式開發工具讓程式開發人員撰寫應用程式,同時還能夠上網以及具備強大的影音功能,那麼它的未來 就有很大的潛力,Android 的勢力正快速地從事慧型手機蔓延到平板電腦。

智慧型手機和平板電腦的興起,稱為後 PC 時代,也就是指電腦已經開始走出我們所熟知的框架,

也就是指桌上型電腦和筆記型電腦的框架,進一步深入我們的日常生活當中。在這眾多的競爭著中,

雖然 Android 是最後出現,但是在市佔率以及成長趨勢來看,已成為目前佔有率最高的智慧型手機平 台[1]。

1. 研究目的

近幾年來,隨著智慧型手機的快速發展,許多功能強大的 App(Application,手機應用程式軟體)也 紛紛推出,為人們提供更便利的日常生活性與娛樂性,以及安全性的服務。因此 App 大多以提供系統 工具、日常生活性、多媒體工具、趣味創意、行業軟體、網路資訊以及免費簡訊通訊等這幾樣為主。

相對的,有關於地圖、GPS、定位的系統工具較少。

事實上,一個真正的智慧型系統,並不適單純的整合娛樂與通訊,而是要能夠讓系統本身同時能 與使用者本人的安全緊密結合。目前手機定位是用手機基地台、全球定位系統和 WI-FI 來計算出使用 者的目前位置,再以 Google 地圖來顯示使用者的所在地點,為使用者的路線導引至安全地,以避免危 險。但是一般的定位系統也只能在大型範圍內監控,如街道、住宅區等戶外地區。

根據世界衛生組織統計,全球有 8 億 6 千萬慢性病患,而接近 75-85﹪的醫療照護,都是在此種慢 性病管理上。許多慢性病患者都已年屆 65 歲以上。一份美國商務部人口普查局的人口統計則估計,到 2030 年,上述患者將佔美國人口的 19%,或相當於大約 7,210 萬人。所以全球社會現在都在持續尋求 各種方式,以降低慢性病患者的醫療照護成本,但同時也希望提升患者的生活品質。

目前「家庭式遠端健康照顧監控系統」(Home Health Care Remotely Monitoring Center, HHCRMC),

只能量人體的溫度,脈搏及心跳次數,並將這些資訊,以無線感測網路及 Zig-Bee 技術,傳回監控中 心。這種系統的缺點是不能知道被照顧者的行動狀態,及精確的位置。因為只靠 Zig-Bee 技術進行定 位,精度一般為 3-5 公尺。尚未能建立一套較完整的「家庭式遠端健康照顧監控系統」。

這種以 RFID 無線通訊技術,建置而成的家庭式遠端健康照顧監控系統,較能合乎綠能省電的標 準,因為這種 RFID 無線通訊技術系統工作原理,是可由雙方主動傳送信號。若由讀取器(reader)發號

(12)

司令,每隔一個固定的時間,如 1 分鐘或是 5 分鐘,發出微波詢問信號,而本論文 RFID 上的加速儀、

陀螺儀等元件,即被觸發,而將量測結果傳回讀取器,讀取器端可依據 RFID 信號強度,和加速儀、

陀螺儀整合,並和建築立體圖進行融合(Data Fusion),即可獲得較精確的位置以利監控,進行進一步的 管理及分析。

另一方面,RFID 標籤上的加速儀、陀螺儀等元件,如果讀到有大變化的輸出信號,也可以主動發 出信號給監控中心,以利精確追蹤目前被監控者的運動狀況及位置。這樣就可以對家中肢體受傷,或 行動不便的人,進行 24 小時,全天候,全空域的監控。如有任何情況,都可以隨時接受監控中心的通 報,進行搶救,進而提升醫療照護的水準。

然而室內卻無法進行安全監控,原因是受限於建築物本身的格局,還有建築物自身的遮蔽,無法 接收衛星定位(GPS)的資料,建物內堆放的擺設等等也會影響精確度,即使使用 RSSI(訊號強度)等室內 定位方法,定位精確度也會大大下降。為解決這樣的問題。本論文使用加速儀與陀螺儀組成的慣性導 航系統(Inertial navigation system, INS),搭配 nRF9E5 RFID 發展平台,組成一套全新的室內定位系統,

期待能夠在室內定位這個全新的研究領域,為醫護人員增加協助性、便利性,以達到病患的行動監控,

找出全新的發展方向。

2. 文獻探討

曾經有過兩組團隊,規劃過類似本計畫的系統。例如台北醫學大學所研發佈建的”Location-Base Medicare Serivce(LBMS)[96-97]”系統,佈建於台北醫學大學。以及歐洲系統的研究團隊,所使用的整 合 RFID-WSN 系統之室內定位技術[98-99],該室內定位設計方案,使用擴增型卡門濾波器 Extended Kalman Filter (EKF)”整合處理訊號強度測距法“Received Signal Strength (RSS)”以及無限感測網路

“Wireless Sensor Network (WSN)”。最後再使用(RFID) “Radio Frequency Identification Devices”進行最 的定位確認作業。

但是前者主要著重在醫院分級系統的介面管理,將主要的重心放在使用資料庫系統程式,處理由 RFID 佈建點量測出的龐大醫資料,並進行相對應的安全層級管理,並且強調醫學界於電子技術方面,

仍存在技術瓶頸。實際走訪該醫學單位,可以看見這些 RFID 系統,是以佈建在出通道以及門板上,

主要是進行以門禁為節點的室內空間管理。而且特別強調在 2003 年 SARS 傳染期間做為例證,強調進 行間層級管理的重要性。與本計畫不同的是,本計畫使用卡門濾波器處理訊息,不是使用學習及維護 都較為龐大困難的資料庫管理技術,而搭載加速儀以及陀螺儀,更能接收到於室內空間中,監控對象 的移動姿態和方位,同時因使用加速儀以及陀螺儀降低了定位困難,更同時提升了精確度。現在 MEMS 產品已經大量出品於市面上,獲取價格以及難度都降低很多,相較於資料庫系統,更具有競爭力。而 且台北醫學大學,當時提出的 RFID 概念還處在摸索階段,不像現在 WSN 與 RFID 已經有明確的系統 功能區隔,WSN 有別於 RFID,主要是使用 Zigbee 協定做為通訊基準,RFID 使用 ISM Band (industrial,

(13)

scientific and medical (ISM) radio bands)定規範下操作。兩者於現今是完全不同的系統,但是台北醫學大 學投稿論文的時期(2006 年),此概念區分尚未成形。同時也沒有引入加速儀以及陀螺儀,提升定位精 度。

後者由歐洲團隊所研發的、使用擴增型卡門濾波器,同時整合 WSN、RSS 訊號,最後使用 RFID 進行精確定位的方案,主要的設計研究方針,是針對兩種定位系統(WSN,RFID)進行交叉定位性能比 較,比較單獨使用 WSN 進行室內定位、使用主動式 RFID 進行室內定位、還有兩種系統混合使用的定 位精度提升情況。最重要的是,該歐洲研究團隊,不但沒有同本計畫一樣,使用加速儀以及陀螺儀進 行定位,實際上是處在數值模擬階段,文獻中有提到未來要進行實際佈建測試,目前仍處於數值模擬 階段,不具備立即實際應用潛力。本計畫室使用已經成熟的硬體,搭載便宜的 MEMS 感應器,以及使 用 MEMS 定位感應器修正 RSS 訊號的方法,將相較於上述的研究,更具有競爭力。

3. 研究方法

本計畫的內容是設計一套,具有室內定位之功能的遠端健康照護系統。其設計方法是,利用 Android 智慧型手機作業系統所提供的開放程式原始碼,與 Android 手機應用程式的開發軟體 (Eclipse) 撰寫應 用程式操作介面,以方便能在平板電腦上,進行目標物之移動速度的接收,以此研究能減少看護人員 的照護人力,也能夠有效的在遠端完成監控工作的手機端應用程式。

為求將肢體受傷,或中風家人的移動訊息,即時的送到電腦端分析監控,需要用到室內無線感測 網路作為媒介。在無線網路中,無線感測網路(Wireless Sensor Networks,WSN)是世界上最新的發展趨 勢。使用眾多體積小價格便宜的感測點(Node),密集的散佈在需要感測的區域。使用感測網路,使得 我們得以克服地理上的障礙,在這些特殊的環境下,作即時的監控,並收集有用的資訊(例如:溫度、

溼度等),接著透過無線電波傳送訊息,架構成一個區域網路。區域網路可以透過一個資料收集器(稱為 Sink 或 Gateway),來當作感測網路和外界通訊的橋樑。所有感測器搜集到的資訊,都會先匯集到 Sink,

再由 Sink 將資訊以 Internet、衛星,或是其它方式,傳送給遠方的使用者或伺服器,使用者再根據所收 集到的資訊,作出即時且適當的應變。

無線感測網路可以廣泛地應用在醫療、軍事、商業等各方面。在醫療上,可以利用無線感測網路,

來監測病患的狀況,以便動態的掌握病患的病況,做出最恰當的醫療方式。在另一方面,感測網路可 以有效地運用在人類,所無法到達的區域(例如:地震、火災…等災區),自動搜集所需的資料,而人們 就便可以在遠處了解情況,並做出最適合的分析與處置。無線感測網路在人們的日常生活裡,有亦相 當多的應用,包括災害防治、倉儲管理、品質監控、健康醫療協助、家居應用、動物棲息地的監控、

車輛追蹤及偵測等應用。因此近年來,感測網路上的研究議題,受到廣泛的重視。

隨著資訊化、網路化的風潮,近年來台灣建築業,為提升建築產品的附加價值,也紛紛結合資訊 與通訊業者,推出 e 化建築,創造科技與人文結合的『智慧型大樓』,以提供更便利的設施及服務,提

(14)

高人們生活的便利性與安全性,唯此類建築大多以提供高速網路服務、視訊服務、防盜偵測、對講系 統、門禁管制系統、監視系統、車道管制系統等,保全服務為主要訴求。事實上,一個真正的『智慧 型大樓』,並不是單純整合了許多先進的資訊與通訊設備,而是要能夠成功讓大樓的這些設備,與大樓 使用者的作息(尤其是安全),能緊密結合,其中人工智慧系統、感測器裝置、軟硬體開發技術等,扮演 著重要關鍵角色。以我國內政部消防署,所訂定的法規而言:公共場所需設置 60 平方公分以上之逃生 路線平面圖,其中必須包含消防設備設置,與逃生出口位置,供逃生人員觀看。當大樓內發生火災時,

警報系統能接受由火警警報設備,或緊急通報裝置,所發出之訊號,啟動預先設定之避難方向指示燈。

目前大樓建築物容積越來越大,資訊與通訊內部結構與動線,也相對更加複雜,加上一般使用者,並 無觀看樓層平面圖的習慣,當災害發生時,大樓內受困人員欲迅速離開危險區域,更加需要依賴指示 標誌。但是傳統的靜態指示標誌,只能指示固定方向,並無隨時改變指示方向的功能。若此辦公大樓 內,已部署無線感測網路,管理者或系統得以輕鬆地且有效地,取得大樓指定內區域之有用訊息,例 如聲音、溫度、濕度、瓦斯濃度、影像、室內外照度、空氣品質、煙霧濃度等資訊,將可於第一時間 內,發現火苗地點,加以撲滅;若無法於第一時間內,有效控制火勢,亦可以透過智慧型的資訊系統,

控制指示逃生方向的燈具,規劃出安全的疏散路線,動態地導引人員進行快速、安全的疏散,以避免 人員的傷亡。本計畫為達到預期的目標,採用 Nordic nRF9E5 作為 RF 訊號平台,收取加速度及陀螺儀 的動態資訊,透過無線通訊,傳輸到監控端,而監控端可藉由卡門濾波器之整合,精準監控人員的位 置及方位。

座標訊號則由 nRF9E5 RFID 定位系統發送訊號,透過對應的 RFID 模組連結電腦,得知受照護之 人員的所在位置,經計算後可找出目標的所在座標,之後再編譯成 x、y 座標資料並編譯成資料封包,

傳遞至 html 網頁。Android 硬體設備平台連上 html 網頁後,就可顯示出受照護對象的所在位置。

本計畫的 nRF9E5 RFID 開發模組,是將資料封包以無線方式傳遞資料的傳輸通訊平台,設計架構 如圖 3-1,該平台分為 Tag 與 Reader,Tag 為主動式模組,除了提供傳輸模組外,也負責提供慣性感測 組(IMU)電源。Reader 連接電腦,除了接收資料外,也負責將收到的 RF 封包,通過串列通訊協定(串 列埠),傳遞到電腦端,提供電腦端的介面進行計算與應用。串列埠的封包格式,與 RF 使用的傳輸方 式相同,接使用串列通訊的方式進行傳輸。因此 RF 傳輸的時脈,能夠設定成與傳遞的封包資料時脈相 同,避免產生資料封包堵塞與遺失的問題。

nRF9E5 的 RF 傳輸設定與協定、對應等設定資料,絕大部分都設計在硬體電路中,因此使用者無 須下繁瑣的命令與副程式,就能夠使用簡單的變數對應,使用該 RF 傳輸模組的無線傳輸功能。nRF9E5 的開發環境建立,開發電腦週邊需要的軟硬體模組如下:

1. nRF9E5 開發板至少兩片(一片 Reader 一片 Tag) 2. nRF24E1 燒錄器 Dongle (將程式資料燒錄至 nRF9E5) 3. 燒錄軟體 nRFROG

(15)

4. 程式語言開發環境 Keil C

5. 串列埠驅動程式,或是 USB-Serial 轉接線(沒有足夠的 RS232 連接埠電腦使用) 6. 串列埠偵錯與接收軟體、也可以撰寫成客製的人機介面

圖 3- 1 nRF9E5 RFID 開發模組設計架構

開發時至少手邊需要有一片 Reader 與一片 Tag 能夠使用,才能形成無線傳輸的環境,如圖 3-2。

開發過程使用 Keil C 進行嵌入式系統程式的編譯,該程式使用 C 語言開發環境。因接收與傳輸過程中,

程式資料夾最好使用獨立的 Tx(傳輸端) 如圖 3-3,與 Rx(接收端)作一個區隔,如圖 3-4。並且不時將 有一段進展的程式檔案,放進壓縮資料夾(zip 或是 RAR)進行保存。

圖 3-2 nRF9E5 一對一傳輸之開發模組

(16)

圖 3- 3 nRF9E5 使用的 Keil C 語言開發環境(Tx)

圖 3- 4 nRF9E5 使用的 Keil C 語言開發環境(Rx)

開發過程遵照 Keil C 環境的規則進行編譯後,將編譯完成的程式檔案.HEX,透過 nRFROG 燒錄軟 體與 nRF24E1 燒錄 Dongle,燒錄進 nRF9E5 中,並進行傳輸實驗。傳輸實驗過程中的問題與 debug,

必須透過 LED 燈號反應來進行除錯與驗證。燒錄完成後,資料會自動透過 nRF9E5 的 RF 協定,從 IMU 傳輸到電腦的串列接收介面中。

系統設計是以 Android 智慧型系統為基礎,並結合 nRF9E5 RFID 模組,設計出一套遠端醫療照護 導覽系統,可讓看護人員透過 Android 智慧型平板電腦,觀看受照護對象的移動與所在位置。其設計 架構是以中華大學為基礎,所設計出一套校園版本的遠端導覽系統,其系統工作流程如圖 3-5 所示。

(17)

圖 3-5 系統工作流程圖

3.1 Android 系統介紹

Android 系統是目前全球市佔率高達半數的智慧型手機系統,是 Google 公司基於以 Linux 為基礎 的開放式原始碼作業系統,同時 Google 公司再推出 Android 系統後,緊接著砸下數千萬興辦 Android 應用程式者大賽,使得 Android 迅速吸引大量程式設計者的競爭學習,Google 以免費開放許可的授權 方式,發布了 Android 的原始程式碼。讓開發商推出能搭載 Android 的智慧型手機,Android 作業系統 後來更逐漸拓展到平板電腦及其他領域上。

目前適用 Android 系統的手機數量已超越 iPhone 手機所搭載的 ios 系統,成為全球用量最大的手機 系統。隨著 Android 手機的快速普級化,對於 Android 應用的需求勢必越來越大,其所擁有的市場商機 也將日益龐大。Google 透過官方網路商店平台 Google Play,提供應用程式和遊戲供用戶下載,截止至 2012 年 6 月,Google Play 商店擁有超過 60 萬個官方認證應用程式。同時用戶亦可以通過第三方網站 來下載。2010 年末數據顯示,僅正式推出兩年的 Android 作業系統在市場佔有率上已經超越稱霸逾十 年的諾基亞 Symbian 系統,成為全球第一大智慧型手機作業系統。

Android 原本意思為[機器人], Google 將綠色機器人圖示設為 Android 的代表圖騰,除了表達字面

(18)

意義,並表示 Android 系統是-符合環保概念,是一個輕薄短小、功能強大的行動系統,是第一個真正 為行動手機打造的開放且完整軟體。對於硬體製造商來說,Android 是開放的平台,只要廠商具有足夠 能力,可以在 Android 系統中任意加入自行開發的特殊功能,打造屬於自己的品牌風格,如此就不必 受限於原本的作業系統。同時 Android 是免費平台,如果製造商採用 Android 系統,就不必每出貨一台 手機,就要繳一份權利金給系統商,可大幅節省成本,也不必擔心系統商調高手機系統使用費用。

對於應用程式開發者來說,Android 提供完善的開發環境,支援各種先進的繪圖、網路、相機等處 理能力,方便開發者撰寫應用軟體。市面上手機的型號及規格繁多,器 Android 開發的程式可相容於 不同規格的行動裝置,不需開發者費心。最有利的事 Google 建立了 Android 市集(舊名稱為 Android Market,現已改名為 Google Play),讓開發者可將自己的所撰寫好的應用程式發佈到網路上,以供 Android 用戶下載,同時也是一個很好的獲利管道[1][2]。

3.2 Android 系統版本

Android 作業系統曾有兩個內部版本,分別是原子小金剛(Astro)和發條機器人(Bender)。在這 兩個版本之後,Google 為了避免商標問題,將 Android 作業系統的代號由機器人系列轉變為了現在的 甜點系列。而現時 Android 系統以差不多每半年一次的步伐進行升級,甜點系列的版本名稱是以大寫 英文字母順序命名,以下為 Android 作業系統升級列表與升級內容[3]。

1. 1.5 版 Cupcake(紙杯蛋糕),如附表 1。

2. 1.6 版 Donut(甜甜圈),如附表 2。

3. 2.0/2.1 版 É clair(閃電泡芙,一種法式奶油夾心甜點),如附表 3。

4. 2.2 版 Froyo(霜凍優格),如附表 4。

5. 2.3 版 Gingerbread(薑餅),如附表 5。

6. 3.0 版 Honeycomb(蜂窩),如附表 6。

7. 4.0 版 Ice Cream Sandwich(冰淇淋三明治),如附表 7。

8. 4.1/4.2 版 Jelly Bean(果凍豆),如附表 8。

(19)

3.3 Android 系統特點

Android 系統具備了下列優勢:

1. 開放原始碼:Google 公司公佈 Android 系統的核心原始碼,並且提供軟體開發套件讓程式設計者 可以透過標準 API 存取核心功能,撰寫各式各樣應用軟體,再使用 Android 市集機制快速將軟體傳 遍全世界。Android 的功能與介面可隨自己的喜好而修改美觀

2. 多工系統:Android 系統可同時執行多個應用程式,是完整的多工環境。Android 同時具備獨特的[通 知]機制,應用程式在背景執行,必要時可以產生通知來已起適用者注意。例如開車使用導航裝置 時,如果有電話進來鈴聲會響起,可以接電話,同時導航系統能在運行。

3. 虛擬鍵盤:Android 從 1.5 版開始同時支援實體鍵盤及虛擬鍵盤,可以滿足不同使用者在不同場合 的需求。虛擬鍵盤可在任何要輸入文字的應用程式中使用,包含電子郵件、瀏覽器、文書處理等。

目前許多智慧型手機已沒有實體鍵盤,完全以虛擬鍵盤方式輸入。

4. 完整開發環境:目前最常使用的開發環境為 Eclipse、Á DT 加上 Android SDK,不但具備舒適的程 式撰寫環境,而且有相當強悍的除錯能力,大幅提升專寫應用程式的效率。最有利的地方是 Google 開發了完善模擬器,撰寫程式後可直接在模擬器上執行,而不需要每次都大費周章地安裝到實機 上測試,這樣可節省大量程式修改測試的時程。

充分表現個性:現在的潮流是崇尚個性的表現,那家廠商的手機介面能符合多數人的時尚,其業 績就能創下傲人的成果,Android 系統可使用 Widget 來實現桌面個性化,其預設安裝了五個桌面 Widget,分別為數位時鐘、日曆、音樂播放器、相框及搜索頁面[2]。

3,4 Android 系統架構

在 Android 系統中,系統架構總共是由 5 個部份來組成如圖 3-6。分別是:

(1) Linux Kernel(Linux 核心) ,如圖 3-7。

(2) Libraries(函式庫),如圖 3-8。

(3) Android Runtime(Android 執行環境) ,如圖 3-10。

(4) Application Framework(應用程式架構) ,如圖 3-11。

(5) Applications(應用程式),如圖 3-12。

以下介紹 Android 每一程式層的設計

(20)

圖 3-6 Android 系統架構

1. Linux 核心 (Linux Kernel)

Android 運行在 linux kernel 2.6 之上,但是把 linux 內受 GNU 協定約束的部分做了取代,這樣在 Android 的程式可以用於商業目的。Linux 內核是硬體和軟體層之間的抽象層,如圖 3-7。

圖 3-7 Linux Kernel(Linux 核心)。

(21)

2. 中介軟體(libraries & Android runtime)

中 介 軟 體 包 括 兩 部 分 : 函 式 庫 層 (Libraries) 和 執 行 層 (Android Runtime) , 函 式 庫 層 包 括 , SurfaceManager 顯示系統管理庫,負責把 2D 或 3D 內容顯示到螢幕;Media Framework 媒體庫,負責 支援圖像,支援多種視頻和音訊的錄製和重播;SQlite 資料庫,一個功能強大的羽量級嵌入式關聯式 資料庫;WebKit 流覽器引擎等,如圖 3-8。

圖 3-8 函式庫層(Libraries)

執行層:Dalvik 虛擬機器:區別於 Java 虛擬機器的是,每一個 Android 應用程式都在它自己的進 程中運行,都有一個屬於自己的 Dalvik 虛擬機器,這一點可以讓系統在運行時可以達到優化,程式間 的影響明顯降低。Dalvik 虛擬機器並非運行 Java 位元組碼,而是運行自己的位元組碼,如圖 3-9。

圖 3-9 執行層(Android Runtime)

圖 3-10 Android 執行環境(Android Runtime)。

(22)

3. 應用程式架構(Application Framework)

豐富而又可擴展性的視圖(Views),可以用來構建應用程式, 它包括清單(lists),網格(grids),

文字方塊(text boxes),按鈕( buttons), 可嵌入的 web 流覽器。內容提供者(Content Providers)使 得應用程式可以訪問另一個應用程式的資料(如連絡人資料庫), 或者共用它們自己的資料。資源管 理器(Resource Manager)提供非代碼資源的訪問,如字串,圖形,和佈局檔( layoutfiles )。

通知管理器(Notification Manager) 使得應用程式可以在狀態列中顯示自訂的提示資訊。活動管 理器( Activity Manager) 用來管理應用程式生命週期並提供常用的導航返回功能,如圖 3-11。

圖 3-11 Android 系統應用程式層設計(Applications)。

4. 應用程式 (Applications)

Android 系統會內置一些應用套裝程式包括 email 用戶端,SMS 短消息程式,日曆,地圖,瀏覽 器,連絡人管理程式等。所有的應用程式都是使用 JAVA 語言編寫的[4],如圖 3-12。

圖 3-12 應用程式 (Applications)。

3.5 Android 硬體設備

本論文是使用 ASUS Nexus 7 四核心平板電腦作為硬體設備平台,性能與規格如圖 3-13 與表 3-1。

ASUS Nexus 7 是臺灣華碩電腦與 Google 共同合作所研發出的 7 吋平板電腦,其重量輕巧、使用 時間可長達 9.5 小時,而作業系統是使用 Android 4.1 Jelly Bean 作業系統,是目前最新版本的作業系 統,其功能完善,應用程式在使用上流暢,系統內建 1.2GHz 四核心處理器與 1GB RAM 與 16GB ROM,可以高效率瀏覽網頁以及多工處理。

Google Nexus 7 內建 NFC 近距離無線通訊技術,並搭載多種感測器,包括陀螺儀,加速度計,

(23)

表 3- 1 ASUS Nexus 7 硬體規格 作業系統 Android 4.2.1

顯示 7”WXGA(1280*800) Screen、IPS Panel、10 finger multi-touch Support 處理器 NVIDIA Tegra 3, 1.2GHz

暫存記憶體 1 GB RAM 內建記憶體 16 GB

無線網路 Wi-Fi (802.11b/g/n) 藍芽 Bluetooth V3.0

感應器 G-sensor,Lightsensor,Gyroscope,GPS,NFC

圖 3-13 ASUS Nexus 7 實體機畫面

3.6 Android 軟體介紹

本論文是用 Android 軟體開發套件(Software Development Kit, SDK)、Android 開發環境(Eclipse)、

開發工具 (Android Development Tools,ADT)、JDK(開發套件 Java Development Kit),做為開發環境軟 體,運用此軟體進行編譯、測試及模擬。Android 提供跨平台整合開發環境平台,可供程式開發者撰寫 應用程式的環境,並且免費,以鼓勵程式開發者投入撰寫,開發者只要透過電腦網路,就能將開發環 境下載安裝,也可以隨時更新最新的模擬器版本。

建立 Android 開發環境需要安裝三個套件,分別為 Java、Eclipse 和 Android SDK。Java 是 Android 應用開發的程式語言,而 Eclipse 套件則是編輯環境,Android SDK 為 Android 開發工具。再來 Eclipse 安裝外掛套件 ADT Plugin,最後再下載安裝所需的 Android 版本,就能完成開發環境。

(24)

3.6.1 Android 軟體開發套件(Software Development Kit, SDK)

Android SDK(Software Development Kit, SDK),一般是一些被軟體工程師用於為特定的軟體包、

軟體框架、硬體平台、作業系統等建立應用軟體的開發工具的集合。它或許只是簡單的為某個程式語 言提供應用程式介面的一些檔案,但也可能包括能與某種嵌入式系統通訊的複雜的硬體。一般的工具 包括用於偵錯和其他用途的實用工具。SDK 還經常包括範例代碼、支援性的技術註解或者其他的為基 本參考資料澄清疑點的支援文件。

軟體工程師通常從系統開發者那裡獲得軟體開發包。為了鼓勵開發者使用其系統或者語言,許 多 SDK 是免費提供的。SDK 經常可以直接從網際網路下載。有時也被作為行銷手段。例如,某產品 或許會免費提供 構件 SDK 以鼓勵人們使用它,從而會吸引更多人由於能免費為其編程而購買其構件。

SDK 可能附帶了不能在不相容的許可證下開發軟體的許可證。例如一個專有的 SDK 可能與自由軟體 開發抵觸。而 GPL 能使 SDK 與專有軟體開發近乎不相容。LGPL 下的 SDK 則沒有這個問題。Android SDK 軟體套件中也包含了作業系統、函式庫、應用架構及模擬器,並提供一些教學文件與範例以方便 開發著在 Android 的虛擬平台上編譯及測試模擬[6]。

3.6.2 Java 開發套件(Java Development Kit , JDK)

Java 開發工具包(Java Development Kit , JDK) 是 Sun 公司針對 Java 開發人員發行的免費軟體開發 套件(SDK,Software development kit)。自從 Java 推出以來,JDK 已經成為使用最廣泛的 Java SDK。由 於 JDK 的一部分特性採用商業許可證,而非開源[1]。

因此,2006 年 Sun 公司宣布將發行基於 GPL 協議的開源 JDK,使 JDK 成為自由軟體。在去掉了 少量特性之後,Sun 公司最終促成了 GPL 協議的 Open JDK 發行者。JDK 中還包括完整的 JRE(Java Runtime Environment),Java 執行環境,也被稱為 private runtime。包括了用於產品環境的各種資料庫種 類,如基礎類別庫 rt.jar,以及給開發人員使用的補充庫,如國際化與在地化的類別庫、IDL 庫等等。

JDK 中還包括各種樣常式序,用以展示 Java API 中的各部分[7]。

3.6.3 Android 開發工具(Android Development Tools, ADT)

ADT(Android Development Tools)是提供 Android 城市開發者在 Eclipse 之中專屬的介面工具,讓他 們能夠輕易地在 Eclipse 建立 Android 應用程式專案,並且在 Eclipse 與 Android SDK 中進行專案的編 譯、儲存、測試、除錯等工作[8]。

(25)

3.7 Eclipse(Android 開發環境)

Eclipse 最初是由 IBM 公司開發的替代商業軟體 Visual Age for Java 的下一代 IDE 開發環境,2001 年 11 月貢獻給開放性網路社群,現在它由非營利軟體供應商聯盟 Eclipse 基金會(Eclipse Foundation)

管理,Eclipse 軟體商標如圖 3-14,版本資訊如下:

(1) 2003 年,Eclipse 3.0 選擇 OSGi 服務平台規範為執行時架構。

(2) 2007 年 6 月,穩定版 3.3 發行;

(3) 2008 年 6 月發行代號為 Ganymede 的 3.4 版;

(4) 2009 年 6 月發行代號為 Galileo 的 3.5 版;

(5) 2010 年 6 月發行代號為 Helios 的 3.6 版;

(6) 2011 年 6 月發行代號為 Indigo 的 3.7 版;

(7) 2012 年 6 月發行代號為 Juno 的 4.2 版;[9]

從 2006 年起,Eclipse 基金會每年都會安排同步發佈(simultaneous release)。至今,同步發佈主 要在 6 月進行,更新版本進度如表 3-2 [9]。

圖 3-14 Eclipse 軟體商標與版本資訊。

表 3- 2 Eclipse 更新版本進度

版本代號 平台版本 主要版本發行日期 SR1 發行日期 SR2 發行日期 Callisto 3.2 2006 年 6 月 26 日 N/A N/A

Europa 3.3 2007 年 6 月 27 日 2007 年 9 月 28 日 2008 年 2 月 29 日 Ganymede 3.4 2008 年 6 月 25 日 2008 年 9 月 24 日 2009 年 2 月 25 日 Galileo 3.5 2009 年 6 月 24 日 2009 年 9 月 25 日 2010 年 2 月 26 日 Helios 3.6 2010 年 6 月 23 日 2010 年 9 月 24 日 2011 年 2 月 25 日 Indigo 3.7 2011 年 6 月 22 日 2011 年 9 月 23 日 2012 年 2 月 24 日 Juno 4.2 2012 年 6 月 27 日 2012 年 9 月 28 日 2013 年 2 月 22 日

(26)

3.7.1 Eclipse 架構

Eclipse 的開發介面與環境功能介紹如圖 3-15:

(1) Package Explorer 視圖:顯示專案,專案會依照開頭的數字或英文排列。

(2) Editor 視圖:負責顯示工作區塊,撰寫程式碼、顯示設計界面。

(3) Console 視圖:顯示專案錯誤、模擬器進度。

(4) Tasks 視圖:是 Eclipse 視圖的一部分,用來顯示任務。

(5) Outline 視圖:將 Editor 中的內容以縮圖結構大綱的方式顯示於給使用者

圖 3-15 Eclipse 的開發介面與環境

3.8 Android 模擬器

Android Virtual Device (AVD) 指的就是 Android 模擬器,開發者在將撰寫好的 Android 應用程式在 模擬器上進行模擬與測試,便可知道應用程式在執行後的效果如何。對於應用程式的開發者來說,模 擬器提供了很多開發和測試時的便利。無論在 Windows 下還是 Linux 下,Android 模擬器都可以順利 運行,如圖 3-16。

Android 模擬器功能非常齊全,無論是電話簿、通話等模擬功能都可正常使用,甚至其內置的瀏覽 器和 Google Maps 都可以連至網路。使用者可以使用鍵盤輸入,滑鼠點擊模擬器按鍵輸入文字或數字,

也可以使用滑鼠點擊、拖動螢幕進行操縱。當然模擬器畢竟是模擬器,和實際硬體還是有所差別的,

這些不同之處在開發時必須注意,尤其是當開發專案和目標涉及軟硬體介面整合時,模擬程式就不是 完全適用了。

(27)

Android 模擬器和實機的不同之處:

(1) 不支持呼叫和接聽實際來電 (2) 不支援 USB 連接

(3) 不支援相機/視頻捕捉

(4) 不支援音訊輸入(捕捉);但支援輸出(重放) (5) 不支持擴展耳機

(6) 不能確定連接狀態

(7) 不能確定電池電量水準和交流充電狀態 (8) 不能確定 SD 卡的插入/彈出

(9) 不支持藍芽[10]

圖 3-16 Android 模擬器

3.9 Android 專案架構

在 Eclipse 中建立 Android 專案時,會產生出專案基本架構。程式開發者可在此架構上開發應用程 式,每個資料夾都有其不同功能,如圖 3-17。

(28)

圖 3-17 Android 專案架構

1. src 資料夾:存放程式設計者所設計的專案 JAVA 程式碼,應用程式的功能程式檔案都存放在此資 料夾內。其檔案資料夾則是以程式設計者所設定的套件名稱來做檔案路徑存放。程式設計者在建 立專案時,Eclipse 系統會在 src 資料夾下產生出一個 Activity.java 功能程式檔,是執行應用程式的 初始檔案。

2. gen 資料夾:存放著由系統自動產生的檔案,其檔案名稱為 R.java,R.java 是專案中最重要的檔案。

檔案中記錄著整個專案中所有的圖片名稱、設定元件的檔名、程式字串名稱、XML 文件檔等資源,

為這些檔案建立對應的索引識別碼。

3. res 資料夾:存放著介面程式的相關資源檔案,例如圖片、介面程式檔、參數字串設定檔等。res 資料夾下又細分多個資料夾,如 drawable 資料夾、layou 資料夾、values 資料夾等。

4. drawable 資料夾:在 res 資料夾中 drawable 資料夾有三個,分別為 drawable-hdpi、drawable-mdpi、

drawable-ldpi 三個目錄,所定義的解析度(dpi)皆不同,如表 3-3。

表 3-3 drawable 資料夾規格

圖片大小 目錄資料夾 尺寸大小 圖示

大 drawable-hdpi 72x72

中 drawable-mdpi 48x48 小 drawable-ldpi 36x36

(29)

5. layou 資料夾:存放著介面配置檔,而介面配置檔案是以 XML 格式紀錄介面元件配置。

6. values 資料夾存放著介面配置檔的設定參數,依 XML 檔案存放各類資源資料,如字串、顏色、尺 寸、樣式等等,依照程式設計者使用的功能不同而設定。

3.10 Android 應用程式介面設計

Android 應用程式的人機介面,是由許多顯示組件(View)和顯示組件容器(View Group)所組成,應 用程式是由一個或多個應用介面(Activity)組成,一個 Activity 會有一個相對應的顯示畫面。Android 應 用程式畫面是以 xml 格式來佈局,Eclipes 開發環境成立一個專案時,可以在專案的"res/layou"目錄找到 畫面布局 main.xml。本論文的主要應用程式佈局檔為 main.xml、page2.xml、m.xml。詳細功能介紹如 下:

main.xml 為主程式的介面佈局檔,在 Eclipes 中建立新專案時就一定會產生 main.xml 是應用程式的 最初介面佈局檔,其佈局為畫面介面佈局(Absolute Layou)為主要畫面,利用這畫面介面佈局在畫面中 加進 TextView 檔、ImageView 檔與 Button 元件,製作首頁介面佈局檔,其架構圖如圖 3-18,完成圖如 圖 3-19[11]。

圖 3-18 main.xml 介面佈局架構

(30)

圖 3-19 main.xml 介面佈局顯示畫面

Page2.xml 為第二介面佈局檔,如同 main.xml 檔一樣,運用畫面介面佈局(Absolute Layou)為主要 畫面,在佈局中加入一個 TextView 檔與多個 Button 元件組成,完成圖如圖 3-20,其架構圖如圖 3-21。

圖 3-20 page2.xml 介面佈局顯示畫面

Button

ImageView

AbsoluteLayout

TextView

(31)

圖 3-21 page2.xml 介面佈局架構

m.xml 為第三介面佈局檔,以畫面介面佈局(LinearLayou)為主要畫面,在這畫面介面佈局內以二個 畫面佈局各顯示不同的組件,第一個畫面介面佈局加入多個 Button 元件組成,第二個畫面介面佈局則 加入一個 ImageView 檔,完成圖如圖 3-22,其架構圖如圖 3-23。

圖 3-22 m.xml 介面佈局顯示畫面

ImageView

Linear Layou Button

Text View

(32)

圖 3-23 m.xml 介面佈局架構

第四介面為樓層平面圖,其完成圖如圖 3-24,這個介面與之前的三個介面有所不同,因為第四介 面是連結至網頁來顯示,本論文是希望能顯示受照護對象於大樓中能顯示其定位,所以是以網頁方式 取代藍芽,這樣就能解決藍芽收訊範圍短的問題。

圖 3-24 Android 連結網頁示意圖

(33)

3.11 Android Java 程式碼編譯

Android 程式碼專案的程式碼是放在專案的 scr 資料夾,該資料夾中會根據城市開發者在建立專案 時輸入的 Package Name 建立一個 Package,再把程式檔至於其中。而程式檔的名稱就是在建立專案時 輸入的 Activity 名稱,Android 的程式檔的附加檔名為 java。

在 Android 中介面設計檔與功能程式碼是互相搭配,也就是 HTML 設計跟 JAVA 程式。程式介面 設計是以 XML 設計,功能程式則是用 JAVA 處理,以本論文來說,main.xml 與 MainActivity.java 對應,

page2.xml 與 Map.java 對應,m.xml 與 M.java 對應,而這幾個頁面之間的連結則是運用 Intent 語法做連 結。本論文的主要應用程式功能檔為 MainActivity.java、Map.java、M.java。

MainActivity.java.xml 為主程式的首頁效果執行檔,如同 main.xml 一樣在 Eclipes 中建立應用程式,

就一定會產生 MainActivity.java 是應用程式的最初功能程式檔。其設定為當設定的 Button(其設定為 btn0) 經點選觸發後,首頁將頁面會切換到校園地圖頁面。宣告套件名稱,在 Android 程式碼中,第一列都 是顯示該應用程式套件名稱,避免應用程式在變數名稱、方法名稱、類別名稱重複錯誤,如 package wtf.wyf;

A. 宣告定義

此段程式碼所顯示應用程式在不同的套件空間中,都會先使用 import 來引導元件作為宣告,

android.os.Bundle 與 android.app.Activity;則是在每個 android Activity 都會使用到,所以在應用程式的命 名空間中都會事先引入,而本論文則在宣告上多加了 android. content. Intent、android.widget.Button 來 為之後的程式編譯中作宣告。

import android.app.Activity;

import android.content.Intent;

import android.net.Uri;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.widget.Button;

import android.widget.ImageView;

B. 顯示 Activity.java 名稱

此段程式碼則顯示 MainActivity 為主頁,並繼承了程式開頭導入的 Activity 類別,在 Map.java、

M.java 中亦運用到此語法類別

public class MainActivity extends Activity {

(34)

public class Map extends Activity { public class M extends Activity {

C. 設定指定介面佈局檔

利用 findViewById()取得 R.java 資源檔中 btn0 的介面元件並設定觸發執行 @Override

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.main);

// 取得資源介面元件

Button btn0=(Button)findViewById(R.id.btn0);

// 設定 button 的 myListner btn0.setOnClickListener(myListner);

}

D. 設定按鈕元件

此段程式碼是 Map.java 中 Button 代碼 btnM、btn A、btn E 的設定,利用 findViewById() 取得 R.java 資源檔中尋找 btnM、btnA、btnE 按鈕介面元件並設定觸發執行,如圖 2-16 所示。

public class Map extends Activity {

public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);

setContentView(R.layout.page2);

Button btnM = (Button) Map.this.findViewById(R.id.btnM);

Button btnA = (Button) Map.this.findViewById(R.id.btnA);

Button btnE = (Button) Map.this.findViewById(R.id.btnE);

E. 設定 Intent 切換介面

設定 btn0 為主要觸發指令,此程式碼有運用到 Intent 語法並利用 setClass 設定 MainActivity 為主程 式類別切換到 Map 程式類別,在 Map.java、M.java 中亦運用到此語法類別。

private Button.OnClickListener myListner=new

Button.OnClickListener(){ //設定從首頁切換到校園地圖

(35)

public void onClick(View v){

Intent intent=new Intent();

intent.setClass(MainActivity.this,Map.class);

startActivity(intent);

} };

btnM.setOnClickListener(new Button.OnClickListener(){

public void onClick(View v){

Intent intent = new Intent();

intent.setClass(Map.this, M.class);

Map.this.startActivity(intent);

} });

F. 連結網頁

此段程式碼同樣運用到 Intent 語法並設定指定網址顯示其網頁頁面。

};

private Button.OnClickListener btnm1OnClickLis =new Button.OnClickListener() {

public void onClick(View v){

Uri uri =Uri.parse("https://googledrive.com/host/0BxHoseBChCDWbzVTQ0Q3bm1Ycjg/in dex.html");

Intent it = new Intent(Intent.ACTION_VIEW,uri);

startActivity(it);

} };

G. Android Manifest

設定介面之間的移動轉換,定義切換移動權限,其中 android:label 代表的是顯示的標題名稱,

android:name=”.xxx”則表示 Activity 的路徑與名稱,而[.]表示目前的專案目錄。

</activity>

<activity android:label="Map" android:name=".Map" />

(36)

<activity android:label="M" android:name=".M" />

<activity android:label="MB1" android:name=".MB1" />

<activity android:label="M1" android:name=".M1" />

<activity android:label="M2" android:name=".M2" />

<activity android:label="M3" android:name=".M3" />

<activity android:label="M4" android:name=".M4" />

<activity android:label="M5" android:name=".M5" />

<activity android:label="M6" android:name=".M6" />

</application>

3.12 Android 藍芽端與 PC 連接通訊

Android 智慧型系統有內建藍芽,可以接收外部藍芽設備,比較常見的,就是一般電腦之間的檔案 傳遞,有關於字串訊號傳遞相對的比較少,本論文的實驗方法是利用 Arduino Bluetooth 模組做為媒介 如圖 3-25,透過 AccessPort 軟體發送字串訊號給 Android 硬體裝置如圖 3-26,讓 Android 硬體設備顯 示出桌上型電腦所發送的訊息[12]。

圖 3-25 藍芽模組-Arduino Bluetooth

(37)

圖 3-26 AccessPort 軟體

3.13 Android 藍芽通訊介面設計

撰寫設計 Android 藍芽通訊設備,接收訊息顯示畫面功能之介面,如圖 3-27。

圖 3-27 android 藍芽接收介面設計

uart_scrollview uart_select

uart_button0

uart_button1 uart_button2 uart_button4 uart_button5

uart_button3

(38)

ScrollView : @+id/uart_scrollview:顯示字串視圖 Spinner : @+id/uart_select :顯示出目前所連接之藍芽裝置 Button : @+id/uart_button0 (連接裝置) :連結指定之藍芽裝置

@+id/uart_button1 (搜尋裝置) :顯示周遭可連結之藍芽裝置 @+id/uart_button2 (開/關) :開啟或關閉藍芽功能設定 @+id/uart_button3 (可搜尋) :開始搜尋藍芽裝置之功能 @+id/uart_button5 (清除) :清除接收到的字串

@+id/uart_button6 (EXIT) :離開應用程式

當 Android 藍芽介面要與 Arduino 藍芽模組連接時,Android 藍芽介面會顯示要求開啟藍芽裝置並 開放時間長度為 100 秒,以藉此讓系統裝置搜尋到其他的藍芽裝置。如圖 3-28 所示。

圖 3-28藍芽權限要求

(39)

當 Android 藍芽開放後,畫面會顯示 Android 藍芽介面附近是否有可連接的其他藍芽裝置,

使用者可以選擇指定的藍芽裝置,如圖 3-29。

圖 3-29 藍芽連接裝置選項

Android 藍芽介面與 Arduino 藍芽模組裝置做連線設定,連線成功後,會顯示出成功連結的藍芽裝 置碼,如圖 3-30。

(40)

圖 3-30 Android 應用程式與 Arduino 藍芽模組連結成功

在電腦端設定AccessPort 軟體串列通訊埠,如圖 3-31 所示,設定電腦端與 Arduino 藍芽模組連接,

連接通訊埠為 COM3,連接成功後就可以輸入字串了,如圖 3-32。

(41)

圖 3-31 設定串列通訊埠

圖 3-32 在 AccessPort 輸入文字

當PC端運用AccessPort 軟體輸入字串傳遞到 Arduino 藍芽模組裝置,而 Arduino 藍芽模組裝置接 收到字串後再透過藍芽晶片傳送到 Android 藍芽介面並顯示出PC端所輸入的字串碼,如圖 3-33。

(42)

圖 3-33 Android 應用程式接收到字串畫面

圖 3-34 為第二次發送相同字串碼,但如圖所示,第二次發送字串碼顯示正確,卻多顯示一次,再 發送新的字串碼卻不會有相同問題。

(43)

圖 3-34 Android 藍芽介面 字串接收

本論文在整合 nRF9E5 RFID 模組時,原先計畫是透過藍芽來接收資料封包,再整合 Android 應用 程式。但後來發現藍芽字串接收不穩定,容易造成重複發送,對於本論文的室內定位顯示容易造成座 標重複移動,接收藍芽接收距離範圍短,以及需要外接 Andino 藍芽模組板,這樣在攜帶上會造成不便。

所以後來改以網頁方式取代藍芽,連上 WiFi 後,連結設定好的網頁,就能看到受照護對象在室內移動 的情況。在學校或是一般家庭通常都有安裝無線網路,同時 WiFi 的接收距離長,這樣就能解決藍芽收 訊範圍短的問題。

(44)

3.14 超文件標示語言(HTML 網頁)

本論文的室內定位照護系統是以 HTML 網頁作為顯示系統,HTML 是超文件標示語言(HyperText Markup Language,HTML),是為「網頁建立和其它可在網頁瀏覽器中看到的訊息」設計的一種標示語 言。HTML 被用來結構化訊息,例如標題、段落和列表等等,也可用來在一定程度上描述文件的外觀 和語意。

HTML 檔案最常用的副檔名(副檔名)是.html,但是像 DOS 這樣的舊作業系統限制副檔名為最多 3 個字元,所以.htm 副檔名也允許使用。現在.htm 副檔名使用的比較少一些了,但是仍舊受到支援。

編者可以用任何文字編輯器或所見即所得的 HTML 編輯器來編輯 HTML 檔案[13]。

本論文的 HTML 網頁是以 TXT 文字檔建立,如圖 3-35 所示,並以雲端網頁的方式呈現。使用 Google 雲端服務建立網頁,用來顯示被照護對象於室內空間中的活動情況。

圖 3-35 HTML 以記事本方式編譯程式碼

在記事本裡撰寫好的的程式碼後,另存檔案以副檔名.html 的方式儲存,如圖 3-36 所示,當檔案開 啟後就能在瀏覽器中顯示程式碼所編譯的網頁內容,如圖 3-37 所示。

(45)

圖 3-36 html 副檔名儲存文件檔案

圖 3-37 室內定位網頁

到此已完成室內定位顯示部分,但此網頁並不能顯示在 Android 平板電腦上,因為這網頁只是測 試網頁,並非正式網頁,所以必須將測試網頁放到網路空間並分享。

3.15 網路分享

本論文使用的儲存網頁用雲端空間為 Google 雲端硬碟(Google Drive),是 Google 在網路上的一

(46)

個同步儲存應用功能,同時結合 Google 檔案的線上檔案編輯服務,於 2012 年 4 月 24 日起逐漸開放給 用戶使用。

Google Drive 免費提供用戶 5 GB 的儲存空間,可將檔案全都儲存到網路上,支援的檔案類型包括文件、

相片、影片等等。可以透過 Google Drive 裡的檔案權限設定,讓檔案公開至網路上瀏覽,變成可以顯示

在網路上的一個 HTML 靜態網頁。這個空間可以支援大部分的 HTML 語法,包含引入圖片、使用 javascript 或是 jQuery 等等,用來展示網頁最適合[14]。利用 Google 雲端硬碟將原本的測試網頁,上傳 到雲端硬碟並設定檔案為共享,如圖 3-38 所示,讓測試網頁共享至網路上,成為一個網路分享網頁。

圖 3-38 雲端 Google 雲端硬碟

在設定中,將瀏覽權限設定為公開在網路上,這樣所選取的 HTML 測試網頁就能公開至網路上,

如圖 3-39 所示。

圖 3-39 共享設定

(47)

設定完成後,雲端硬碟中的檔案會顯示出共用項目等狀態,代表檔案已成為網路公開檔案,如圖 3-40 所示。

圖 3-40 顯示共享至網路項目

共享設定完成之後,使用者就可以在任何可以上網的電腦或是行動裝置上,透過網頁檢視照護對 象的活動狀態,如圖 3-41 所示。

圖 3-41 分享至網路之網頁

(48)

3.16 主動式 RFID 模組設計開發

主要利用 Nordic 的 nRF9E5 去實做一個接收和發射模組,此模組可以進行資料的傳遞。同時我們 將 EPCglobal C1G2 的防碰撞機制,實現於模組的韌體中。來增強此接收發射模組在大量 Tag 讀取時,

可以增加其讀取率。

nRF9E5 433/868/915MHz 接收發射模組,基本上是由一個 8051 的控制器,再加上一個 nRF9E5 的 射頻接收模組所組成。另外在內建 AD converter 來增加其 I/O 的擴充性。其硬體功能方塊如圖 3-42 所 示:

圖 3- 42 nRF9E5 硬體功能方塊圖

本計畫利用 nRF9E5 以工作於 ShockBurst (自動處理首碼、位址和 CRC)的方式來進行設計。在 8051 相容微控制器中,我們利用了 5 個擴展中斷源:ADC 中斷、SPI 中斷、RADIOl 中斷、RADIO2 中斷和 喚醒計時器中斷。另擴展了 2 個資料指標,以方便于從 XRAM 區讀取資料。此外我們有利用內建的 3 個計時器中的兩個,用計時器 1 和計時器 2 來作為非同步通信的串列傳輸速率產生器。利用 nRF9E5 工作於 ShockBurst (自動處理首碼、位址和 CRC)的方式來進行設計。在 8051 相容微控制器中我們利 用了 5 個擴展中斷源:ADC 中斷、SPI 中斷、RADIOl 中斷、RADIO2 中斷和喚醒計時器中斷。另擴展 了 2 個資料指標,以方便于從 XRAM 區讀取資料。此外我們有利用了內建的 3 個計時器中的兩個,用 計時器 1 和計時器 2 來作為非同步通信,串列傳輸速率產生器。

參考文獻

相關文件

Since the research scope of industrial structure optimization and transformation strategy in Taiwan is broad and complicated, based on theories of service innovation and

Prioritising improvement of service attributes using impact-range-performance analysis and impact asymmetry analysis. Hospitality and travel

Therefore, a study of the material (EPI) re-issued MO model for an insufficient output of the LED chip manufacturing plant is proposed in this paper.. Three material

Lin, “Automatic Music Genre Classification Based on Modulation Spectral Analysis of Spectral and Cepstral Features”, IEEE Trans.. on

This study collected consumer expectations and perception of medical tourism industry, with Neural Network Analysis and Mahalanobis Distance Analysis found the key to the

因此,本研究發展一套擁有企業資源規劃(Enterprise Resource Planning, ERP)知識的多人線上遊戲學習系統 (Multiplayer Online Game-based Learning System,

The issue of construction surplus soils can be solved by using it for production of CLSM (Soil-based CLSM, S-CLSM), and the effective reclamation of resources can reduce the

The issue of construction surplus soils can be solved by using it for production of CLSM (Soil-based CLSM, S-CLSM), and the effective reclamation of resources can reduce the