叢一凡,王成龍,胡 旭,宋新瑞,黃 超
(大連理工大學(xué)城市學(xué)院,遼寧 大連 116600)
隨著國民生活水平的不斷提高與人口老齡化程度的逐漸加重,越來越多的人關(guān)注自身運(yùn)動機(jī)能的健康狀況。而運(yùn)動機(jī)能的下降是危害人們?nèi)粘I畹闹饕蛩兀纾喝狈\(yùn)動量導(dǎo)致的肥胖問題、老年人的心率問題、運(yùn)動狀態(tài)監(jiān)測和熱量消耗問題、心率和運(yùn)動量的測量問題、遠(yuǎn)程服務(wù)器數(shù)據(jù)顯示問題等。為了更好地解決上述問題,本文設(shè)計(jì)一款基于藍(lán)牙無線傳輸?shù)闹悄芙】凳汁h(huán),系統(tǒng)以STM32F103RC單片機(jī)為主控器芯片,配有心電測量模塊(ADS1292)、溫度傳感器模塊(LMT70)以及步數(shù)測量模塊(MPU6050),能夠穩(wěn)定采集和記錄使用者的心電信息、體表溫度和運(yùn)動狀況,并通過藍(lán)牙模塊將測量數(shù)據(jù)實(shí)時傳送到手機(jī)APP以便觀察,起到了通過數(shù)據(jù)指導(dǎo)健康生活的作用。
本文設(shè)計(jì)以STM32F103RC芯片為核心,基于ADS1292芯片的心電檢測模塊用于采集并記錄使用者的心電信號,實(shí)現(xiàn)動態(tài)心電圖實(shí)時顯示;基于LMT70溫度傳感器模塊測量并記錄使用者體表溫度;基于陀螺儀傳感器模塊MPU6050檢測使用者的運(yùn)動信息,記錄步數(shù)與活動距離等。通過藍(lán)牙模塊將上述傳感器采集到的數(shù)據(jù)無線上傳到手機(jī)APP端實(shí)時顯示,方便用戶隨時隨地查看并了解自己的健康狀況。
本文總體設(shè)計(jì)方案圖如圖1所示。
圖1 總體設(shè)計(jì)方案圖
本文設(shè)計(jì)的系統(tǒng)采用STM32F103RC為主控芯片,該芯片由意法半導(dǎo)體(ST)公司出品,其內(nèi)核是以Cortex-M3為核心的32 bit系列的單片機(jī)。相比其他類型的單片機(jī),STM32F103RC的內(nèi)部資源(如寄存器和外設(shè)功能)更加豐富,運(yùn)行速率更快。除此之外,STM32單片機(jī)具有高性能、外設(shè)接口及內(nèi)存資源豐富、低成本、低功耗等特點(diǎn),得到廣泛的應(yīng)用。
ADS1292R是TI公司早在2012年就出產(chǎn)的一款醫(yī)用級ADC芯片,具有32位引腳,其引腳電路如圖2所示。它主要應(yīng)用在醫(yī)療儀器(心電圖ECG),可以監(jiān)護(hù)患者以及護(hù)理和健身監(jiān)視器。該模塊具有2個低噪聲可編程增益放大器(PGA)和2個高分辨率模數(shù)轉(zhuǎn)換器(ADC),集成了心電采集所需要的部件,方便設(shè)備小型化。它的功耗極低,使得可以作為長時間監(jiān)控成為可能,而且輸入?yún)⒖荚肼暤停材R种票雀?,足以進(jìn)行心電采集。
圖2 ADS1292R引腳圖
LMT70是一款帶有輸出使能引腳的超小型、高精度、低功耗互補(bǔ)金屬氧化物半導(dǎo)體(CMOS)模擬溫度傳感器,幾乎適用于所有高精度、低功耗的經(jīng)濟(jì)高效型溫度感測應(yīng)用,例如:物聯(lián)網(wǎng)(IoT)傳感器節(jié)點(diǎn)、醫(yī)療溫度計(jì)、高精度儀器儀表和電池供電設(shè)備。該溫度傳感器模塊也是RTD和高精度NTC/PTC熱敏電阻的理想替代產(chǎn)品,多個LMT70可利用輸出使能引腳來共用一個模數(shù)轉(zhuǎn)換器(ADC)通道,從而簡化ADC校準(zhǔn)過程并降低精密溫度感測系統(tǒng)的總成本。LMT70還具有一個線性低阻抗輸出,支持與現(xiàn)成的微控制器(MCU)/ADC無縫連接。
LMT70具有較寬的溫度測量范圍,溫度與輸出電壓具有很好的線性關(guān)系,測量精度高。LMT70溫度-輸出電壓關(guān)系如圖3所示。
圖3 LMT70溫度-輸出電壓關(guān)系
MPU6050是一個整合性的6軸運(yùn)動傳感器,它集成了16位的三軸加速度傳感器和16位三軸陀螺儀傳感器,可以分別監(jiān)測到模塊的加速度和角速度。通過數(shù)據(jù)融合算法可以很好地解決組合陀螺儀與加速器時間軸之差的問題,它的量程范圍較大,對角速度的感測范圍較為寬泛,數(shù)字運(yùn)動處理引擎可減少復(fù)雜的融合演算數(shù)據(jù)、感測器同步化、姿勢感應(yīng)等的負(fù)荷。通過確定歐拉角的基準(zhǔn)軸,定義抬手角度為一步。手握陀螺儀擺臂行走,經(jīng)實(shí)驗(yàn)確定邁出一步手臂擺出的角度范圍并確定閾值,當(dāng)擺動角度小于設(shè)定值并且降下的角度大于閾值,步數(shù)累加,距離等于0.55步數(shù)。這時與上次所存儲的加速度方向比較,若相同則舍棄;若相反則通過計(jì)步邏輯計(jì)步(此時剛過峰值),對峰值累加可得到運(yùn)動步伐。由于人體正常抖動、低幅度、手抖或反復(fù)搖晃等原因,會對準(zhǔn)確計(jì)步造成干擾。最后要通過去干擾,即給檢測加閾值和步頻判斷來過濾解決。
將HC-05藍(lán)牙串口通信模塊連接到微控制器的串行端口,允許微控制器通過藍(lán)牙連接與其他設(shè)備通信。模塊本身可以在主模式和從模式下運(yùn)行,并且可以用于各種應(yīng)用,例如:智能家居應(yīng)用、遠(yuǎn)程控制、數(shù)據(jù)記錄應(yīng)用、機(jī)器人、監(jiān)控系統(tǒng)等。當(dāng)藍(lán)牙設(shè)備與藍(lán)牙設(shè)備配對連接成功后,可以忽略藍(lán)牙內(nèi)部的通信協(xié)議,直接將藍(lán)牙當(dāng)作串口用。當(dāng)建立連接之后,2個設(shè)備共同使用一個通道也就是同一個串口,一個設(shè)備發(fā)送數(shù)據(jù)到通道中,另外一個設(shè)備便可以接收通道中的數(shù)據(jù)。
藍(lán)牙串口通信模塊具有兩種工作模式:命令響應(yīng)工作模式和自動連接工作模式,在自動連接工作模式下模塊又可分為主(Master)、從(Slave)和回環(huán)(Loopback)三種工作角色。當(dāng)模塊處于自動連接工作模式時,將自動根據(jù)事先設(shè)定的方式連接數(shù)據(jù)傳輸;當(dāng)模塊處于命令響應(yīng)工作模式時能執(zhí)行下述所有AT命令,用戶可向模塊發(fā)送各種AT指令,為模塊設(shè)定控制參數(shù)或發(fā)布控制命令。通過控制模塊外部引腳(PIO11)輸入電平,可以實(shí)現(xiàn)模塊工作狀態(tài)的動態(tài)轉(zhuǎn)換。
本文總體設(shè)計(jì)程序流程如圖4所示。系統(tǒng)首先開始并初始化,采集信號(溫度數(shù)據(jù)、心電數(shù)據(jù)、步數(shù)與距離數(shù)據(jù)等),并判斷是否檢測到采集的數(shù)據(jù),再通過數(shù)值計(jì)算及A/D轉(zhuǎn)換將數(shù)據(jù)通過藍(lán)牙無線發(fā)送至服務(wù)器端并顯示。
圖4 主程序流程
2.2.1 心率檢測子程序
ADS1292啟動后,ADC初始化并開始采集信息,將檢測到的值經(jīng)過計(jì)算并比較后,通過藍(lán)牙發(fā)送并顯示數(shù)值。ADS1292心電檢測流程如圖5所示。
圖5 ADS1292心電檢測流程
2.2.2 溫度檢測子程序
LMT70啟動并初始化后,進(jìn)行采樣并判斷是否接觸物體,再將讀取的溫度值進(jìn)行模數(shù)轉(zhuǎn)化,最后通過藍(lán)牙發(fā)送顯示端顯示。LMT70溫度檢測流程如圖6所示。
圖6 LMT70溫度檢測流程
2.2.3 運(yùn)動檢測子程序
MPU6050啟動并初始化后,設(shè)定所需傳感器的范圍及系統(tǒng)時鐘,檢測人物是否運(yùn)動,再通過計(jì)算獲得所需數(shù)值,最后通過藍(lán)牙發(fā)送至顯示端顯示。MPU6050陀螺儀運(yùn)動檢測流程如圖7所示。
圖7 MPU6050陀螺儀運(yùn)動檢測流程
本文針對缺乏運(yùn)動量導(dǎo)致的肥胖問題、老年人的心率問題、運(yùn)動狀態(tài)監(jiān)測和熱量消耗問題、心率和運(yùn)動量的測量問題、遠(yuǎn)程服務(wù)器數(shù)據(jù)顯示問題等,設(shè)計(jì)一款基于藍(lán)牙無線傳輸?shù)闹悄芙】凳汁h(huán),能夠穩(wěn)定采集和記錄使用者的心電信息、體表溫度和運(yùn)動狀況,并通過藍(lán)牙模塊將測量數(shù)據(jù)實(shí)時傳送到手機(jī)APP以便觀察,起到了通過數(shù)據(jù)指導(dǎo)健康生活的作用。