吳 超
(廣州大學(xué)華軟軟件學(xué)院,廣東 廣州 510900)
隨著傳感器、人機交互、柔性傳感器、云計算、大數(shù)據(jù)、物聯(lián)網(wǎng)等技術(shù)的發(fā)展,可穿戴設(shè)備的應(yīng)用和用戶體驗得到不斷豐富[1-2]。除了智能眼鏡、智能手表和智能手環(huán)等產(chǎn)品之外,智能服飾、智能鞋、智能配飾等產(chǎn)品形態(tài)相繼出現(xiàn)[3]。中國人口老齡化程度的逐漸加深,慢性病人群的增多以及健康管理方式的轉(zhuǎn)變推動了中國智能可穿戴設(shè)備的發(fā)展??纱┐鹘】当O(jiān)測設(shè)備改善了用戶的健康管理方式、提高了用戶的健康水平、提高了中國居民的生活質(zhì)量。心率的變化能直接或間接反映人體多方面的健康狀態(tài)[4]。當前使用最廣泛的心率計算方法是光電體積方法[5-6]。血管里的血液體積隨心臟泵血呈周期性變化,血液體積的周期性變化成為利用PPG信號進行心率估計的基礎(chǔ)。光電體積法容易受到干擾,如外界光干擾、手腕運動干擾、溫度干擾、皮膚出汗干擾等。本文將32位處理器STM32F103ZET6作為主控芯片,使用LM386聲音模塊采集數(shù)據(jù),通過低功耗藍牙模塊nRF51822發(fā)送心率數(shù)據(jù)到手機,實現(xiàn)抗干擾性強且成本低的心率監(jiān)測設(shè)備。
設(shè)備包含數(shù)據(jù)采集模塊、數(shù)據(jù)處理模塊、藍牙傳輸模塊。主控芯片為32位處理器STM32F103ZET6,主要功能包括數(shù)據(jù)處理、網(wǎng)絡(luò)傳輸、設(shè)備控制等。數(shù)據(jù)采集模塊為LM386。藍牙傳輸模塊nRF51822可把心率數(shù)據(jù)發(fā)送到用戶手機。心率監(jiān)測設(shè)備通過LED燈顯示工作狀態(tài),有2個按鍵(電源開關(guān)鍵和設(shè)備重啟鍵)。設(shè)備硬件結(jié)構(gòu)如圖1所示。
圖1 設(shè)備硬件結(jié)構(gòu)
STM32F103ZET6由ST公司出品,采用Cortex-M3內(nèi)核,CPU最高達72 MHz,具有512 KB FLASH、多種外設(shè)、USB接口和CAN接口。它適用于高速處理環(huán)境,如圖像處理、飛控等領(lǐng)域。STM32F103ZET6內(nèi)嵌8 MHz的RC振蕩器,多達8個定時器,3個16位定時器,2個看門狗定時器(獨立型和窗口型),3個USART接口,通用同步/異步串行接收/發(fā)送器。STM32F103ZET6芯片原理如圖2所示。
圖2 STM32F103ZET6主控芯片
LM386是一種音頻集成功率放大器,具有功耗低、內(nèi)鏈增益可調(diào)整、電源電壓范圍大、外接元件少和總諧波失真小等優(yōu)點。LM386主要應(yīng)用于低電壓消費產(chǎn)品。微雪聲音傳感器模塊使用LM386對音頻信號進行200倍放大,靈敏度可調(diào)。聲音模塊與STM32F103ZET6的端口連接如圖3所示。
圖3 聲音模塊與STM32端口連接
nRF51822是功能強大的多協(xié)議SoC,適用于Bluetooth低功耗和2.4 GHz超低功耗無線應(yīng)用。nRF51822擁有256 KB FLASH,16 KB RAM的32位ARM Cortex M0 CPU。靈活的31引腳GPIO映射方案可使I/O(例如串行接口、PWM和正弦解調(diào)器)根據(jù)PCB需求映射到任何設(shè)備引腳。nRF51822支持 S110藍牙低功耗協(xié)議堆棧及2.4 GHz協(xié)議堆棧。nRF51822電路原理如圖4所示。
圖4 nRF51822電路原理
主控芯片STM32F103ZET6通過串口1連接到nRF51822的串口,發(fā)送心率數(shù)據(jù)到nRF51822,nRF51822把心率數(shù)據(jù)通過藍牙發(fā)送到用戶手機。
主控芯片STM32F103ZET6通過串口1發(fā)送心率數(shù)據(jù)到nRF51822。串口數(shù)據(jù)傳輸格式為十六進制,消息長度為4字節(jié),第一個字節(jié)表示類型,十六進制表示為0x48(H);第二個字節(jié)表示id號;第三個字節(jié)表示心率數(shù)值;第四個字節(jié)表示換行,十六進制表示為0x0A。消息格式如圖5所示。
圖5 串口消息格式
可穿戴心率監(jiān)測設(shè)備首先進行硬件初始化,包含按鍵、LED燈、ADC轉(zhuǎn)換器、定時器。主控芯片STM32F103ZET6使用定時器控制采集聲音和計算心率值的時間,聲音采集頻率為10 ms/次,心率計算頻率為30 s/次。主控芯片STM32F103ZET6計算心率值后,通過USART1發(fā)送到nRF51822模塊,nRF51822模塊通過藍牙發(fā)送到用戶手機。用戶手機APP可以顯示心率的歷史數(shù)據(jù)。程序流程如圖6所示。
圖6 心率監(jiān)測設(shè)備程序流程
主控芯片STM32F103ZET6通過LM386聲音模塊獲得聲音數(shù)據(jù)。LM386聲音模塊通過AOUT端口輸出模擬信號,經(jīng)ADC轉(zhuǎn)換后獲得聲音對應(yīng)的電壓值。
心率信號是低頻信號,最高值約為150次/min,最低值約為40次/min。設(shè)備通過低通濾波過濾高頻信號,然后通過計數(shù)函數(shù)的波峰個數(shù)獲得用戶的心率值。
計算信號數(shù)值的一階導(dǎo)數(shù),波峰是一階導(dǎo)數(shù)從正數(shù)變?yōu)樨摂?shù)的點。因為心率最高值約為150次/min,設(shè)備的聲音采樣頻率為100 Hz,所以波峰點間的距離不能小于40。
設(shè)備采集的心率聲音信號通過低通濾波可以過濾很多高頻干擾信號,使心率計算更容易。對30 s的心率聲音信號數(shù)據(jù)進行處理,低通濾波保留小于3 Hz的信號,濾波效果如圖7所示。
圖7 心率信號低通濾波
查找函數(shù)的峰值,計算心率數(shù)值,根據(jù)心率數(shù)值的正常范圍過濾異常數(shù)據(jù)點,使心率計算更準確。經(jīng)過計算,當前的心率數(shù)值為68次/min,圖8中的紅色圓點是計算的波峰。圖9數(shù)據(jù)中的干擾點不會影響心率的計算,計算的心率數(shù)值為80次/min。
圖8 心率信號波峰個數(shù)計算
圖9 存在異常數(shù)據(jù)的心率計算
本設(shè)計實現(xiàn)了一個抗干擾性強且成本較低的可穿戴心率監(jiān)測設(shè)備,能夠?qū)崟r監(jiān)視用戶的心率數(shù)據(jù)。設(shè)備通過藍牙與用戶手機進行數(shù)據(jù)傳輸,使用方便。設(shè)備使用的聲音傳感器容易安裝到衣物中,數(shù)據(jù)采集方便。未來,筆者將對本設(shè)備的功耗進行優(yōu)化,以延長該心率監(jiān)測設(shè)備的使用時間。