第三章 研究方法
第五節 系統開發
一、穿戴裝置開發的前置作業
我們使用電腦連結至Kinetis KL26系列穿戴裝置要進行軟體開發時,必須透
過 Freescale 的 Universal Multilink 開發接口裝置連結至穿戴裝置進行開發如圖
25。當Universal Multilink開發接口裝置與穿戴裝置進行連結時,圖26為Universal
Multilink 的Ping 角必須連結到相對應的圖27 穿戴裝置 Ping角才能進行連結,
例如:Universal Multilink Ping 角 TMS/SWD_DIO 必須連結到穿戴裝置 Ping 角
SWD_DIO、Universal Multilink Ping角TCK/SWD_CLK必須連結到穿戴裝置Ping
角SWD_CLK、Universal Multilink Ping角RESET 必須連結到穿戴裝置Ping角
RST_KINETIS、Universal Multilink Ping 角TVCC 必須連結到穿戴裝置 Ping 角
3V3及Universal Multilink Ping角GND任一角必須連結到穿戴裝置Ping角接地。
圖 28 說明當 Universal Multilink 開發接口裝置成功抓取到穿戴裝置的訊號
時,Universal Multilink開發接口裝置會亮起黃色的LED燈,接下來就能透過電 腦對穿戴裝置進行軟體開發。
圖25 Universal Multilink開發接口裝置
圖28 Universal Multilink 訊號燈 圖26 Universal Multilink Ping角
圖27 穿戴裝置Ping角
二、穿戴裝置的三軸加速器(步數、運動距離、速度、消耗的卡路里)、運動軌跡 與運動相關資料回傳至後端系統(雲端伺服器中的遠距健康照護管理系統)的開 發
我們使用Freescale提供的CodeWarrior Development Studio 10.6開發平台進
行穿戴裝置的運動管理開發如圖 29,此開發平台可對穿戴裝置進行程式碼編譯 及程式碼燒入,程式碼編譯所使用的程式語言為C語言。
(一)宣告穿戴裝置的三軸加速器初始值
開發運動管理軟體時,必須宣告身高、體重、步數、運動距離、速度及卡路 里的變數,將所有變數裡的參數值初始化歸為零如圖 30所示,以便我們日後在 運算步數、距離、速度及卡路里的變數為零開始向上遞增如圖 31所示,且在裝 置上設定身高及體重參數,從零開始往上做設定如圖32所示。
圖29 CodeWarrior Development Studio 10.6開發平台
圖30 宣告變數初始值
圖32 身高及體重的初始值
圖31 變數為零
(二)步數、速度、運動距離、消耗的卡路里開發
第二章文獻探討第二節有提到三軸加速器在運算步數、速度、運動距離及消 耗的卡路里的數值時,它們這之間是有相連的。然而身高及體重的參數則會影響 運動距離與消耗的卡路里換算。下圖 33所示,首先我們會將個人的身高及體重 參數輸入後,會把輸入的身高參數儲存至ConfigBuffer[8]的位置及輸入的體重參
數儲存至ConfigBuffer[6]的位置,以便三軸加速器在演算運動相關資料時,可以
提取這兩個參數進行換算。
當三軸加速器有身高與體重參數後,接下來進行三軸加速器的步數、速度、
運動距離及消耗卡路里的程式開發。在開發三軸加速器抓取步數時,我們為了能 夠抓到更精準的步數,所以要將不規則的晃動所產生的雜訊進行Debounce count 如圖34 所示,避免在不規則的晃動也算成步數。關於三軸加速器在計算步數、
圖33 身高及體重參數儲存位置
DataBuff[8]、DataBuff[9]、DataBuff[10]、DataBuff[11]、DataBuff[12]、DataBuff[13]
的資料欄位,我們必須用程式呼叫出資料欄位裡的演算法進行套用。下圖 35說 明如何用程式呼叫出資料欄位裡的演算法進行計算步數、運動距離、速度及消耗 的卡路里。例如:計算步數StepCount = ((DataBuff[6]<< 8) + DataBuff[7]); 說明 在計算步數時,我們必須抓取資料欄位DataBuff[6]裡面的資料並且向左位移8個 位元,再加上DataBuff[7]裡面的資料,就能算出步數的值。
圖34 Debounce count
(三)運動軌跡開發
因為本研究所使用的穿戴裝置沒有 GPS 晶片,穿戴裝置必須透過藍芽外接
ASUS PadFone2 手機的 GPS 晶片作為本研究運動軌跡的追蹤硬體,ASUS
PadFone2手機作業系統採用Android系統,所以在開發運動軌跡程式時,開發的
平台需要使用Eclipse平台如圖36,此開發平台可對Android系統的手機進行程 式碼編譯及程式碼燒入,程式碼編譯所使用的程式語言為Java語言。
圖35 呼叫資料欄位裡的演算法
我們在開發運動軌跡需要 GPS 與網路作為追蹤的方式,在程式開發必須宣 告GPS標記與網路標記,且還要宣告經緯度的變數如圖37。開始進行運動軌跡 追蹤時,一定要先取得 GPS 連線及網路連線的狀態如圖 38所示。當 GPS 及網 路連線完成後,GPS就會開始抓取經緯度的位置資料如圖39所示,就能得知個 人的運動軌跡。為了裝置能夠省電,我們在程式裡寫入可以自行選擇運動相關資 料上傳的時間間隔如圖40所示,例如:15秒運動相關資料上傳、30秒運動相關 資料上傳、1分鐘運動相關資料上傳、5分鐘運動相關資料上傳。
圖37 宣告GPS標記、網路標記與經緯度變數
圖38 GPS連線及網路連線狀態
圖39 GPS抓取經緯度的位置資料
圖40 運動相關資料上傳的時間間隔設定
(四)運動相關資料回傳至後端系統(雲端伺服器中的遠距健康照護管理系統)
接下來要將三軸加速器得到的運動資料(步數、速度、運動距離、消耗的卡路 里)與GPS晶片抓到的經緯度位置資料透過穿戴裝置的3G網路回傳至後端(雲端 伺服器中的遠距健康照護管理系統)進行儲存,所以在資料回傳程式開發上必須 加入後端(雲端伺服器中的遠距健康照護管理系統)的IP位置如圖41所示,才能 將數據傳送至目的地。
三、後端系統開發(雲端伺服器中的遠距健康照護管理系統)
雲端伺服器中的遠距健康照護管理系統主要是由網頁以及資料庫所組成,網 頁的開發我們使用Microsoft visual studio 2010開發平台如圖42,編譯的程式語
言為 C#,資料庫設計是針對儲存穿戴裝置回傳的運動相關資料,開發資料庫的
平台我們使用 MYSQL 如圖 43。在雲端伺服器中的遠距健康照護管理系統的開 發上,為了接收到穿戴裝置回傳的運動相關資料,除了在穿戴裝置的資料回傳程 式開發上加入雲端伺服器中的遠距健康照護管理系統的 IP 位置外,我們還會在 雲端伺服器中的遠距健康照護管理系統註冊配戴者的手機號碼,以配戴者的手機 號碼當作資料傳遞的帳號因而進行穿戴裝置的綁定如圖44所示。
當然在穿戴裝置初次開啟運動管理軟體時,就要輸入與雲端伺服器中的遠距 健康照護管理系統相同的註冊手機號碼才能進行資料的回傳。所以在穿戴裝置的 資料回傳程式碼裡比須加入對照機制如圖 45所示,意思是說當我們在穿戴裝置 上初次開啟運動管理軟體輸入手機號碼時,穿戴裝置裡的程式會自動抓取輸入的
圖41 數據回傳程式
手機號碼,透過3G網路去跟雲端伺服器中的遠距健康照護管理系統資料庫對照 此號碼是否為註冊的手機號碼,是的話穿戴裝置才能將運動相關資料回傳至雲端 伺服器中的遠距健康照護管理系統資料庫進行儲存中。第四章會介紹完成的系統 展示說明。
圖42 Microsoft visual studio 2010
圖44 穿戴裝置綁定
圖45 對照機制