錢玉斐++宋宇飛



摘 要:本課題結合市場的實際需求,論述了一種基于STM32的智能手表系統的設計方案。本設計基于STM32硬件開發平臺,通過移植C/OS-III實時操作系統以及emWin圖形軟件庫設計了手表的GUI界面。整個系統采用MPU6050模塊實現計步器功能,采用藍牙模塊進行手表與安卓手機的雙向通訊,以實現來電短信提示、防丟功能以及短信報警定位功能。此外,該手表可以手勢識別,當手臂抬起時屏幕自動變亮,放下時則自動變暗,設計十分人性化。
關鍵詞:可穿戴;嵌入式;計步器;藍牙通信;手勢識別
中圖分類號:TP393 文獻標識碼:A 文章編號:2095-1302(2016)11-0-02
0 引 言
隨著移動設備技術的日益發展,可穿戴設備愈加受到重視。可穿戴設備具有各種類的產品形態,可佩戴于人體的多個部位,比如服飾、手表、眼鏡、手環、飾品等。而可穿戴電子外套也正在研發,隨著日后研發的深入,嵌入到人體皮膚內的電子文身、佩戴的眼鏡都有機會用到可穿戴技術。得益于各種新技術的發展,可穿戴設備將愈發不被人感知,將以更加自然的狀態進行數據搜集,為用戶更好的提供服務。
智能手表是可穿戴設備最重要的發展方向之一,它是一種內置操作系統,具有手機來電、短信提醒、釋放音樂等功能,并且可以配備各種傳感器的手表形態的智能穿戴設備。
1 系統設計
本系統包含硬件工作系統與軟件功能系統,其中硬件系統包含MCU(STM32)主控模塊、電源供電充電模塊、藍牙模塊、陀螺儀MPU6050模塊等。軟件系統則包含下位機嵌入式軟件程序與上位機(安卓App)軟件程序。圖1所示為系統組成框圖。
2 功能實現
本次設計的智能手表主要實現以下幾個功能:
(1)時間功能。具有RTC實時時鐘功能,可以通過手表看時間。
(2)手勢識別。加入手勢識別功能,當人的手臂抬起時屏幕會自動變亮,而放下時則自動熄滅。
(3)計步器。通過陀螺儀MPU6050與濾波、計步算法得出較為準確的步數,同時算出距離與消耗的卡路里。
(4)藍牙通信。手表與安卓手機通過藍牙進行雙向通信。在安卓手機上編寫App應用軟件,該App軟件里包含3個小功能單元,可以分別實現來電短信提醒的手機助手功能、防丟功能以及在發生危險情況時可通過按下手表按鍵的方式向指定的手機號發送實時更新的定位信息功能。
3 硬件設計
硬件框圖如圖2所示。硬件組成框圖主要介紹了智能手表的硬件系統基本構成,包括基于Cortex_M3架構的意法半導體的CPU芯片STM32F103ZET6的STM32最小系統、電源模塊、3.2寸液晶觸摸屏、陀螺儀以及藍牙模塊。
4 嵌入式軟件設計
軟件設計包含了C/OS-III實時操作系統的移植、應用程序的界面設計、STM32嵌入式軟件設計以及安卓App的相關設計等內容。其中還有系統運行流程、計步器算法、與手機藍牙通信以及手勢識別等部分。嵌入式軟件框圖如圖3所示。
5 安卓App設計
App界面運用WindowsPhone的經典風格,整體以方塊形式出現,界面簡潔清爽,內含必要的提示信息。App主要實現手機助手、防丟功能以及安全衛士三種功能。
5.1 藍牙通信
利用“藍牙”技術能夠有效簡化移動通信終端設備之間的通信。從智能手表與手機終端通信的短距離和簡易性考慮,我們選擇藍牙通信方式。主要處理以下內容:
(1)藍牙連接線程。
(2)藍牙連接與斷開廣播,在重寫的方法里做特定處理。
(3)“呼吸監測”代碼,由于手表端較難檢測藍牙是否斷開,所以我們采用一種特殊的方式,一旦藍牙連接上,便向下位機以一定頻率發送特定字符,當下位機收到字符信息時代表藍牙連接,一旦無法接收到字符則代表藍牙斷開。
5.2 GPS定位
現在的安卓智能手機大多帶有GPS模塊,通過GPS我們可以獲取當前位置。這個功能主要用于發生危情時能將帶有當前位置與地圖的信息發出,對于得到及時援救有重要作用。主要處理以下內容:
(1)實例化LocationManager打開GPS。
(2)獲得最佳搜索條件。
(3)獲取最后獲得的位置。
(4)請求實時更新Location數據。
5.3 短信和來電提示
采用廣播方式檢測新的短信和來電,采用監聽數據庫的方法來判斷短信和來電是否已讀。主要步驟如下:
(1)注冊接收到新短信和未接來電的廣播,在重寫方法中發送特定字符給下位機。
(2)廣播判斷是否有短信。
(3)監聽數據庫判斷是否有未接來電。
(4)發送短信的方法。
6 性能測試
6.1 與手機通信功能測試
與手機進行通信時需測試如下幾項:
(1)手表與手機通信響應時間小于0.1 s。
(2)藍牙斷開后自動連接所需時間小于0.5 s。
(3)手表觸發后,手機以30 s間隔實時更新地圖位置并將其以短信形式發出。
6.2 計步器和手勢識別測試
計步器和手勢識別需測試如下幾項:
(1)如果以標準的步伐動作和手臂擺動動作計步,計步誤差在5%以內。
(2)手勢識別控制手表屏幕顯示反應時間小于0.5 s。
6.3 其它功能測試
其他測試包含如下兩項:
(1)手表顯示時間功能誤差幾乎為0。
(2)手表溫度顯示誤差在2攝氏度以內。
7 結 語
本文從市場需求出發,設計融合了嵌入式技術、通信技術、Android應用技術以及硬件設計技術,介紹了一種基于嵌入式的智能手表的設計方法。實際性能測試結果表明,該系統性能穩定、工作可靠、功能強大,基本可以滿足設計要求。
參考文獻
[1]廖義奎.Cortex-M3之STM32嵌入式系統設計[M].北京:中國電力出版社,2012.
[2]姚文祥.ARM Cortex-M3權威指南[M].北京:清華大學出版社,2014.
[3]劉火良.STM32庫開發實戰指南[M].北京:機械工業出版社,2013.
[4]宮輝.嵌入式實時操作系統μC/OS-III[M].北京:北京航空航天大學出版社,2012.
[5]莊嚴.嵌入式C/C++系統工程師實訓教程[M].北京:清華大學出版社,2011.
[6]李悅城,野火.C/OS-III源碼分析筆記[M].北京:機械工業出版社,2015.
[7]黃永麗,王曉,孔美云.Android應用開發完全學習手冊[M].北京:清華大學出版社,2015.
[8]郭霖.第一行代碼—Android[M].北京:人民郵電出版社,2014.