• 沒有找到結果。

第一章 緒論

3.2 系統架構

3.2.2 智慧型手機資料處理單元

立 政 治 大 學

Na tiona

l Ch engchi University

所使用之程式,乃將兩個 H48C 所感測到的資料,透過 Easy Bluetooth 以藍牙接口 傳送至智慧型手機資料處理單元。

3.2.2 智慧型手機資料處理單元(Smartphone data processing Unit)

3.2.2.1 Android 程式設計

(1)Android 帄台

Android 是一組行動裝置軟體,包含了作業系統、中介軟體及一些必要的應用 程式,架構圖如圖 3。

圖 3 Android 架構[14]

取用各種行動裝置上的軟、硬體資源。Android 提供給應用程式使用的框架,包括了 各式的服務及系統(Services and systems)。其中,"View System"包括了使用者 介面所需要的一些元件、"Content Providers"讓應用程式間可以互相分享資料…

等。Android 也包含了一組用 C/C++所開發的函式庫(library),其中 SQLite 提供一 個強而輕量化的關聯式資料庫,供應用程式使用。Android 使用 Linux 2.6 作為核心 系統服務,使用如記憶體管理、電源管理等驅動程式模組。

(2)Android 應用程式

應用程式可使用 Android 軟體開發套件(Software Development Kit,SDK)提 供之工具軟體及應用程式介面(Application Program Interface,API)進行開發,

且均使用 Java 程式語言進行開發。組譯後 JAVA 程式碼與程式所需之資料及資源,

將被包裝進一個附檔為.apk 的檔案,即為應用程式之安裝檔。

Android 應用程式最大的特色是其中的元件(Component)可以在應用程式間互 相分享,沒有單一的程式進入點(Single-entry point),只要系統需要,即可初始 化必要的元件,並且開始執行。Android 包含的四種元件,分別說明如下:

(A)Activities:呈現一個可見的使用介面,而其內容是以階層式的 View 類別為基 礎的一些現成物件,如文字、按鈕…等,並藉著這些物件與使用者互動。一個應 用程式可能包含一個或多個 activities,但其一必頇標示為程式啟動時首先執行 者。Activities 的生命週期如圖 4,有 onCreate()、onStart()、onRestart()、

onPause()、onStop()、onDestroy()、onResume()等狀態,從 onCreate()開始、

onDestroy()結束,此時,系統亦將收回所有分配給 activity 的資源。

‧ 國

立 政 治 大 學

Na tiona

l Ch engchi University

圖 4 Activities Life Cycles.[14]

(B)Services:此元件於背景執行,不提供視覺化的使用介面,但可以透過一些程式 介面讓使用者控制 Service,如音樂播放。

(C)Broadcast Receivers:專門接收或回應廣播知會的元件,應用程式可透過一個 或多個 Broadcast Receivers 去回應其認為重要的廣播知會。如搜尋可用的藍牙 裝置時,即頇要使用到此元件。

‧ 國

立 政 治 大 學

Na tiona

l Ch engchi University

(D)Content Providers:應用程式可透過此元件指定與其他應用程式可分享之資料 集合。

3.2.2.1 使用流程

因 Android 帄台在 2.0 版本以後,始提供藍牙相關功能供應用程式開發使用,

故本系統使用 Android 2.1 帄台之智慧型手機進行軟體開發。軟體架構如圖 5:

圖 5 智慧型手機處理單元

本程式提供兩個主要功能,一為學習行為感測及記錄,二是學習行為資料統計 及匯出,使用及軟體流程分別描述如下:

甲、學習行為感測及記錄:學習者使用系統時,系統將感測學習者行為,並記錄到 Android 手機內建之 SQLite 資料庫。使用流程詳細描述如下:

(1)程式開啟:程式開啟時,將會確認手機藍牙是否已開啟。若未開啟,將會引導 使用者進行設定;若已開啟,則呈現主要使用者介面。

‧ 國

立 政 治 大 學

Na tiona

l Ch engchi University

圖 6 BTClientActivity 處理流程

如圖 6 所示,在 BTClientActivity 這個程式啟動 activity 處於 OnCreate 狀態時,首先會先初始化選單中的功能:連接 Sensor、互動區、匯出資料、離 開程式。接著進入 OnStart 狀態時,立即確認裝置是否有開啟藍牙。

(2)藍牙連線:主要使用者介面將會引導學習者點選 Menu 中之藍牙連接功能,並列 出已配對之藍牙裝置供選擇,點選裝置即建立手機與藍牙間之連線,並開始接 收感測器資料。同時,亦將開始感測麥克風音量、記錄開始學習時間,並進行 即時的資料預處理及存入資料庫等作業。

圖 7 為 DeviceListActivity activity 的流程,主要是將手機已配對之裝 置顯示於浮動式窗中,當使用者點選任一裝置,程式將取得手機藍牙接頭 (adapter)以及該裝置位址(address),接下來 DeviceListActivity 即完成此 activity 之任務,進入 onDestroy 狀態。

圖 8 為 Connectedthread()函式之主要執行流程,首先將針對 DeviceListActivity 取得之裝置位址及藍牙接頭建立 RFCOMM 藍牙接口

‧ 國

立 政 治 大 學

Na tiona

l Ch engchi University

(Socket),並透過接口建立藍牙連線,開始接收、處理 BS2 傳來的資料,此外 亦開始進行音量量測。環境音量量測使用 Android 提供的 AudioManager 及 AudioRecord 類別,取用手機麥克風收錄之聲音,再透過開放原始碼的 SignalPower 類別計算出聲音分貝值。

圖 7 DeviceListActivity 處理流程

‧ 國

立 政 治 大 學

Na tiona

l Ch engchi University

圖 8 ConnectedThread 處理流程

(3)使用互動區:開始學習後,主要使用介面也會引導學習者使用互動區功能。一 旦學習者開始使用互動區,系統即會暫停感測資料的預處理及存入資料庫等作 業,開始記錄學習者於互動區之行為,包括:開始使用時間、新增討論時間、

新增回應時間。當學習者離開互動區、返回程式主要使用介面,系統將恢復感 測資料的預處理及存入資料庫等作業,並記錄學習者離開互動區時間。

(4)學習結束:當學習者按下"學習結束"按鈕,系統將會記錄學習結束時間,並 停止手機與 BS2 之藍牙連線,以及手機麥克風音量感測。

‧ 國

立 政 治 大 學

Na tiona

l Ch engchi University

圖 9 智慧型手機資料處理單元使用介面示意圖

乙、學習行為資料統計及匯出:學習者使用完畢後,提供資料匯出功能以利後續處 理及預測。

設定統計開始及結束時間後,系統將依照指定區間查詢資料庫,以針對下 列各項統計值進行計算:

器(Classifier)所需之輸入格式匯出,格式如下列範例:

1:6 2:3 3:4 4:12 5:4 6:5 7:0.026786197 8:0.016837463 9:0.028399484 10:0.03683096 11:0.021274064 12:0.026965443 13:-37.193214 14:26.888802 15:11 16:1 17:3 18:0 19:1 20:6 21:18 22:1 23:1 24:0 25:6 26:10

27:0.024007715 28:0.014430743 29:0.024046257 30:0.0 31:0.02442387 32:0.033474635 33:0.028356822 34:0.0129286945 35:0.01200385 36:0.0 37:0.030742532 38:0.048057992 39:421 40:1 41:0

‧ 國

立 政 治 大 學

Na tiona

l Ch engchi University

每個向量冒號後方接其屬性值,然後以空格分隔。以此範例而言,共有 41 個向量,第一個向量之屬性值為 6、第二個向量屬性值為 3…依此類推。

另一種匯出檔則是依感測值產生時的時間戳記(Timestamp)匯出所有記錄。

如下方範例即為三軸加速度感測器之記錄,包含時間戳記、資料來源及兩個 H48C 之感測值。

16:36:19,bt,0.05,0.03,0.04,0.01

16:36:20,bt,0.00,0.07,0.02,0.00

16:36:20,bt,0.00,0.05,0.02,0.04

16:36:21,bt,0.03,0.00,0.07,0.12

16:36:21,bt,0.04,0.01,0.06,0.08

相關文件