基于 STM32F103C8T6 單片機的多功能智能手表設計
引 言
體溫是機體不斷新陳代謝的結(jié)果,同時體溫又是機體功能活動正常進行的重要保障。在正常情況下,人體溫度不隨外界環(huán)境溫度的變化而變化,保持在 37 ℃左右。但是當人體內(nèi)的某些機能發(fā)生變化或某些部位產(chǎn)生病變時,恒定的體溫將會發(fā)生改變。在臨床醫(yī)學中,體溫是一個重要的生理參數(shù),病人的體溫為醫(yī)生提供了了解生理狀況的重要信息,同時還可以對某些重大疾病或隱藏于身體內(nèi)部的健康問題起到積極的預防和警示作用 [1]。所以人們需要并有必要實時了解自身的體溫狀況,使自己的體溫維持在一個相對穩(wěn)定的狀態(tài)。
針對人們對自身體溫實時監(jiān)測的需求,本文設計了一個擁有 128×64 大小 OLED 顯示屏的智能多功能手表,主要采用 STM32F103C8T6 單片機作為系統(tǒng)主控單元,將德州儀器設計生產(chǎn)的 TMP100 作為溫度采集傳感器。該手表可實時記錄采集的數(shù)據(jù)與每日運動量,并對人體溫度進行實時監(jiān)控。當用戶獲得自身的健康數(shù)據(jù)后便可以采取相應措施使自己保持健康的狀態(tài)。在這基礎之上,本文采用更低功耗的主控芯片與外圍器件,提高設備的續(xù)航能力,優(yōu)化用戶操作界面, 使設備能真正運用到生活中,為實時健康監(jiān)測提供可能。
1 系統(tǒng)功能介紹
本文設計的智能手表主要具有時鐘功能、體溫實時檢測功能和計步功能,系統(tǒng)功能結(jié)構(gòu)如圖 1 所示。
(1) 在時鐘功能界面下,用戶可以選擇手動校準時間。
(2) 在體溫檢測功能界面下,用戶可以查看此刻自身的體溫,也可以查看當天自身體溫的變化情況。
(3) 在計步功能界面下,用戶可以查看當天的累計步數(shù),了解自身運動量。
圖 1 系統(tǒng)功能結(jié)構(gòu)圖
此外,用戶在使用設備的過程中一旦體溫下降或者上升, 低于或超過閾值,則系統(tǒng)會向用戶發(fā)出警告,提醒用戶此刻體溫處于非正常狀態(tài),用戶可根據(jù)自身情況及時處理。
2 系統(tǒng)硬件設計
2.1 系統(tǒng)硬件組成及原理
多功能智能手表系統(tǒng)硬件主要由電源管理模塊、主控芯片模塊、溫度傳感器模塊、加速度傳感器模塊和 OLED 液晶顯示器與按鍵組成,硬件系統(tǒng)的組成及連接關系如圖 2 所示。電源管理模塊將不穩(wěn)定的電池電壓轉(zhuǎn)換成系統(tǒng)需要的 3.3 V 穩(wěn)定電壓,并輸送給各個模塊。主控芯片從溫度傳感器和加速度傳感器獲取采集數(shù)據(jù)并對數(shù)據(jù)進行算法處理,最終通過人機交互模塊顯示出來。
2.2 系統(tǒng)主要硬件模塊設計
STM32F103C8T6 是一款基于 ARM 32 位 Cortext M3 內(nèi)核的單片機,具有 2.0 ~ 3.6 V 的寬電壓供電范圍,CPU 工作頻率最大可達 72 MHz,具有單周期乘法指令和硬件除法功能,以及優(yōu)先級可編程的中斷系統(tǒng) [2]。同時它還具有 64 KB 的 FLASH 存儲器與 20 KB 的 SRAM 存儲器, 集成了豐富的片內(nèi)外設,如看門狗,定時器,GPIO 口,DMA 控制器, ADC,UART,SPI 接口,I2C 接口等,具有成本低、速度快、性價比高等優(yōu)點 [3]。
圖 2 系統(tǒng)硬件框圖
人體溫度采集傳感器采用德州儀器生產(chǎn)的 TMP100。TMP100 是一個 SOT23-6 封裝的兩線串行輸出溫度傳感器, 無需其他元器件,精度可達 0.062 5 ℃。此外 TMP100 具有系統(tǒng)管理總線以及 I2C 接口的兼容性,可在總線上掛載 8 個設備。工作溫度為 -55 ~ 125 ℃,測量精度可通過程序編程選擇。TMP100 的器件地址由 ADD0 和 ADD12 個引腳決定, 引腳輸入與器件地址的關系見表 1 所列。根據(jù)設計原理與圖中 ADD0 和 ADD1 引腳接地可知,TMP100 的器件地址應為0x48。
加速度傳感器模塊采用飛思卡爾,這是一款比較新的MMA8452 加速度傳感器。飛思卡爾是具有 12 位分辨率的智能低功耗、三軸、電容式微機械加速度傳感器,其主要特性如下 :
可以感受 X,Y,Z三個自由度的加速度信號,全方位感知人體運動信息。
具有 ±2g/±4g/±8g的可選量 程。 傳感器的靈敏度在 ±2g量程時為 1024個數(shù)字 /g, 靈敏度精度為±2.5%。
采集的加速度數(shù)據(jù)可以通過傳感器內(nèi)部的高通濾波器實時輸出,濾波器的截止頻率可以通過軟件設置,也可以不經(jīng)過濾波器直接輸出。輸出信號被轉(zhuǎn)換為 12 位數(shù)字量信號, 經(jīng)I2C接口輸出,輸出數(shù)據(jù)速率在1.25~800 Hz之間,可調(diào)[4]。電源管理芯片采用德州儀器設計生產(chǎn)的 TPS79333,其具有超低噪聲、高 PSRR、快速射頻、高電平啟用的 200 mA低壓降穩(wěn)壓器,可將 3.7 ~ 5 V 的電源電壓穩(wěn)定在 3.3 V,具有體積小、效率高、噪聲小等特點 [5-7]。
3 系統(tǒng)軟件設計
3.1 程序主框架搭建
本文設計采用主循環(huán)和定時器中斷相結(jié)合的運行框架。主循環(huán)中實現(xiàn) OLED 顯示功能。定時器可定時對溫度、加速度傳感器進行數(shù)據(jù)采集和算法處理。程序主框架如圖 3 所示。
圖 3 程序主框架圖
時鐘功能設計與實現(xiàn)
時鐘模塊主要以定時器中斷為主,打開一個定時器中斷, 中斷時間為0.1 s,累計600 次加1 分鐘,累計60 分鐘加1 小時,效果如圖 4 所示。
圖 4 時鐘界面圖
3.3 體溫監(jiān)測功能設計與實現(xiàn)
TSP100 溫度傳感器是一款數(shù)字傳感器,為 I2C 通信方式。ADD0 和 ADD1 同時接地,查表可知,器件地址為 0x90,初始化STM32F103C8T6 的I2C 后就可得到TSP100 采集的數(shù)據(jù)。相比其他等價傳感器,TSP100 溫度傳感器的精度較高,但也會因為環(huán)境等因素產(chǎn)生一些噪音(噪音可控),本文采用中位值濾波解決該問題。體溫檢測界面效果如圖 5 所示。
圖 5 測溫界面圖
3.4 記步功能設計與實現(xiàn)
MMA8452 加速度傳感器是一款數(shù)字輸出傳感器,與采集溫度的方式相同,不同之處在于加速度傳感器是慣性傳感器,在靜態(tài)狀態(tài)下能表現(xiàn)出良好的穩(wěn)定性,但運動后其數(shù)據(jù)變化較大。如果將處于運動中的加速度計的返回值以時間為X 軸,值為 Y 軸,靜態(tài)時會呈現(xiàn)一條平滑的曲線,運動時將會是雜亂無章的噪點,所以對加速度傳感器的采集值進行濾波十分必要。本文設計采用低通濾波和防脈沖干擾平均濾波相結(jié)合的方式 [8-12]。
當對加速度傳感器采集到的數(shù)據(jù)進行處理后,默認當前獲得的數(shù)值即實際數(shù)值,之后對數(shù)據(jù)進行分析,使之轉(zhuǎn)化為需要的步數(shù)。據(jù)研究,距離、速度、加速度等都可以作為描述人體行走狀態(tài)的參數(shù)。近年來,由于 MEMS 加速度傳感器的快速發(fā)展和其優(yōu)越特性,被廣泛用于人體運動檢測。行走時腳、腿、腰、手臂都在運動,會產(chǎn)生相應的加速度,垂直方向的加速度信號變化最大。人行走的過程分析 :腳蹬地離開地面是一步的開始,此時由于地面的反作用力,垂直加速度開始增大,身體重心上移,當腳要達到最高位置時垂直加速度達到最大,然后腳向下運動,垂直加速度開始減小,直至腳著地,加速度減小至最小值,接著下一次邁步發(fā)生。利用腰部的垂直加速度來檢測步數(shù)是可行的,通過對加速度的峰值檢測可以得到行走的步數(shù) [13-15]。
一對連續(xù)的波峰和波谷代表了人體行走的一步,本文采用統(tǒng)計波峰的方法來統(tǒng)計步數(shù)。由于人體運動一般不會超過5 步 /s,即在 1 s 內(nèi)理論上不會出現(xiàn)多于 5 個波峰,連續(xù)兩個波峰之間的時間差也不會小于0.2 s。設定采樣頻率為50次/s,記錄采樣時間 t 和 Z 軸的加速度信息 Acc。如果一個點的 Acc值比前后各兩次采樣值都大,則視為一個極大值并將該信息與前一個極值的時間差 Δt 及 Acc 值存入一個二維鏈表。時間差 Δt 代表兩個假定步伐之間的時間差,如果 Δt 小于 0.2 s,則將兩個極大值中 Acc 較小者視為采樣噪點,從二維鏈表中去掉,并將剩下的數(shù)據(jù)重新與鏈表中前一記錄比較,大于0.2 s 且 Acc 值比前后 Acc 值都小 20% 或者更多,也視為噪點去掉。剩下的極大值就確定為一個有效步伐 [10]。最后系統(tǒng)可獲得比較精準的計步結(jié)果,如圖 6 所示。
4 結(jié) 語
本文設計了一個可實現(xiàn)對人體溫度實時監(jiān)測、運動步數(shù)實時統(tǒng)計的智能可穿戴多功能手表。通過理論與實踐的結(jié)合,從硬件實現(xiàn)與軟件實現(xiàn)切入,清晰展現(xiàn)了軟硬件的設計流程,并提供了解決辦法。從實現(xiàn)結(jié)果可以看出,本文的設計方案可行,能實現(xiàn)對人體溫度的實時監(jiān)控和對個人每日運動量的實時記錄,當體溫處于不正常數(shù)據(jù)值時,智能手表又能給出相應的提示警告,從而方便用戶根據(jù)獲取的體溫及運動數(shù)據(jù)對自身的健康狀況及時做出處理。