強 威,張鈞杰,劉 凱,王亞龍,靳全峰,高宏峰
(河南科技大學(xué) 信息工程學(xué)院,河南 洛陽 471023)
基于STM32的智能看護系統(tǒng)*
強 威,張鈞杰,劉 凱,王亞龍,靳全峰,高宏峰
(河南科技大學(xué) 信息工程學(xué)院,河南 洛陽 471023)
闡述了一種基于STM32的智能防跌倒看護系統(tǒng),由主機和從機組成,二者通過藍牙通信。主機主要實現(xiàn)了計步、跌倒檢測、定位等功能,從機主要實現(xiàn)了發(fā)送求助短信、測心率、一鍵呼救、接電話和顯示等功能。本文給出了基于陀螺儀MPU6050和微控制器STM32F103C8T6的系統(tǒng)總體框架、硬件和軟件設(shè)計,以及一些檢測算法的設(shè)計。實驗表明,該系統(tǒng)的誤判率極低、實時性高、數(shù)據(jù)準確,可廣泛應(yīng)用。
跌倒檢測;計步;GSM;MPU6050;GPS定位;STM32F103C8T6;心率檢測
目前,我國的老年人數(shù)量在世界上排名第一,老年人的照看已經(jīng)成為一個大問題[1]。如今,老年人跌倒、突發(fā)疾病無人知曉,存在一些慢性疾病隱患,家人卻毫不知情,迷路無法求助等等問題越來越嚴重,老年人安全問題出現(xiàn)的頻率也越來越高,很多老年人都迫切需要一種能夠?qū)崟r檢測自身安全狀態(tài)和身體健康指標的系統(tǒng)。而目前很多老年人看護系統(tǒng),如老人居家看護系統(tǒng),它們的設(shè)計和實現(xiàn)的跌倒檢測算法都有很大的弊端[2],存在誤判率較高的問題。
本文介紹的是一種低功耗、實時性強、設(shè)計新穎、實用性強的防跌倒看護系統(tǒng),主要用在老年人群體。利用STM32處理數(shù)據(jù)速度快的優(yōu)點,將檢測數(shù)據(jù)進行實時檢測、處理、反饋,實現(xiàn)了對老年人身體狀況的實時檢測?,F(xiàn)在主流的微控制器STM32F103C8T6經(jīng)過分頻倍頻后,實現(xiàn)了主頻可選,最高頻率可達72 MHz,在微控制器中屬于速度較快的芯片。內(nèi)嵌128 kB的FLASH存儲器、20 kB的SRAM。豐富的外設(shè)也深得工程師們的喜愛,多個12位的雙精度快速ADC通道。串口資源非常豐富,STM32F103C8T6有三個可用串口,STM32F1xx系列的有更多的串口資源,更是有快速的IIC通道、SPI通道、DMA通道等等。本系統(tǒng)充分利用了STM32的串口、ADC模數(shù)轉(zhuǎn)換、定時器、IIC通道等資源。本系統(tǒng)的跌倒檢測算法采用三重判斷,分別是加速度判斷、角度判斷和人工關(guān)閉警報判斷,解決了市場上產(chǎn)品誤判率較高的問題,并且增加了較多的附加功能,除了檢測跌倒以外還具有計步、檢測心率、GPS定位、一鍵呼救、接聽電話等功能。
系統(tǒng)的主機和從機佩戴在人體不同的部位以實現(xiàn)更加精準的檢測,主機系統(tǒng)佩戴在腰間,從機系統(tǒng)佩戴在手腕上。主機主要由以下部分組成:STM32F103C8T6,藍牙HC-05、陀螺儀模塊MPU6050、GPS模塊等,圖1為主機系統(tǒng)框圖,其中GPS和藍牙都是通過串口與主控通信,MPU6050通過IIC通道與主控通信。
圖1 主機系統(tǒng)框圖
圖2為從機系統(tǒng)框圖,從機系統(tǒng)主要包括STM32F103C8T6,藍牙HC-05、GSM模塊、心率傳感器、有機發(fā)光二極管(Organic Light-Emitting Diode,以下簡稱OLED)、按鍵、蜂鳴器、麥克風、揚聲器等部分。其中OLED通過IIC通道與主控進行通信,主控通過ADC通道采集心率模塊輸出的模擬信號進而轉(zhuǎn)化為數(shù)字信號,藍牙和GSM通過串口與主控通信。
圖2 從機系統(tǒng)框圖
主機主要功能是定位、計步和檢測老人是否摔倒。通過精確的算法將返回的數(shù)據(jù)進行處理和判斷,經(jīng)算法確定老人摔倒后,啟動第三重判斷,老人身上佩戴的從機系統(tǒng)蜂鳴器啟動,發(fā)出摔倒警報。若15 s后老人未手動關(guān)閉蜂鳴器則確定老人摔倒,主機系統(tǒng)則會立刻對老人進行定位,通過藍牙將位置信息發(fā)給從機。從機系統(tǒng)把老人位置以短信形式發(fā)給看護人,并提醒看護人對老人進行救治。從機系統(tǒng)配有心率檢測模塊,實時檢測老人心率,并在OLED上顯示出來。本系統(tǒng)還有計步功能,可將老人一天走的步數(shù)顯示在OLED上,實現(xiàn)了對老人運動量的監(jiān)測。老人可通過從機系統(tǒng)自主撥打電話給監(jiān)護人(當老人迷路或者遇到危險時),也可以接聽電話??梢姡瑥臋C系統(tǒng)的主要功能是發(fā)送短信、接打電話和心率檢測。
圖3為主機系統(tǒng)硬件接口電路圖,主機系統(tǒng)中使用了STM32F103C8T6的6個可編程I/O,其中MPU6050模塊與STM32F103C8T6的PB8和PB9連接,GPS模塊與主控芯片的PA2和PA3連接,藍牙與主控芯片的PA9和PA10連接。跌倒檢測和計步的硬件組成主要是主控和MPU6050,其中PB8為IIC通信的SCL時鐘引腳,PB9為IIC通信的SDA數(shù)據(jù)引腳。
圖3 主機系統(tǒng)硬件接口圖
3.1 檢測跌倒算法
跌倒檢測的硬件主要包括陀螺儀MPU6050和主控STM32F103C8T6,其中MPU6050是一款9軸運動傳感器。它集成了3軸(X,Y,Z)MEMS陀螺儀,3軸加速度計,以及一個可擴展的數(shù)字運動處理器DMP(Digital Motion Processor),可用IIC接口連接一個第三方傳感器,比如磁力計。擴展之后就可以通過它的IIC接口輸出一個9軸的信號[3]。在本系統(tǒng)中我們只用了其中6軸,即角度和加速度。
設(shè)ax表示人體左右的加速度,ay表示人體前后的加速度,az表示人體上下的加速度,SVM表示人體合加速度,是區(qū)分人體運動的重要參數(shù)[4],計算公式如下:
經(jīng)過觀察和分析可知,首先跌倒發(fā)生時人體的重力加速度會有一個瞬間下降的過程,隨后人體在與地面接觸的時候會與地面產(chǎn)生一個激烈的沖擊,接下來人體的角度會發(fā)生變化。整理分析志愿者測得的數(shù)據(jù)可知,每次摔倒都會有一個SVM<2的過程,所以將SVM<2作為第一個判斷跌倒的依據(jù)。當人體向前摔倒時y軸角度大于70,當人體向后摔倒時y軸角度小于-70,人體向左摔倒x軸角度大于70,人體向右摔倒時x軸角度小于-70。所以我們想要判斷老人是否跌倒只需要判斷X ,Y兩軸角度的絕對值是否大于70便可。
圖4為跌倒檢測算法流程圖,合加速度SVM一直進行更新和判斷。一旦滿足SVM<2后,延時兩秒鐘再判斷X,Y兩軸的角度是否滿足條件。當前兩項都滿足條件后,從機便會發(fā)出警報,做最后一項判斷。若老人在15s內(nèi)通過按鍵將警報關(guān)閉,則判斷老人未跌倒,系統(tǒng)繼續(xù)正常運行。若老人在15s內(nèi)未解除警報 ,則判斷老人跌倒,主機系統(tǒng)會馬上對老人進行定位,并通過藍牙將位置發(fā)給從機,從機通過GSM把老人位置發(fā)送給監(jiān)護人,并通知監(jiān)護人對其進行救治。
圖4 跌倒檢測算法流程圖
3.2 計步算法
經(jīng)整理和分析志愿者測得的數(shù)據(jù)可知:人在走路時合加速度有規(guī)律的變化,并且接近正弦波形,每走一步合加速度就會出現(xiàn)一個波峰,所以只需要計算波峰的個數(shù)便可。
1) 波峰檢測:每隔5ms就把合加速度的值記錄下來,保存在變量SVM1中,并把上次的合加速度值保存在SVM2中,并將SVM1和SVM2進行比較。若SVM1>SVM2,則還沒有到達波峰,繼續(xù)對數(shù)據(jù)進行更新。若SVM1 2) 去除干擾:計步的過程中主要有兩種干擾,一是雜波干擾,即小幅度抖動不計步。經(jīng)測試人在走路過程中SVM值最小為12。所以將每次達到波峰狀態(tài)時將波峰數(shù)值保存下來,若大于12計算一步,否則不計算。二是高頻抖動干擾,如某個惡作劇用戶想通過短時快速反復(fù)搖動設(shè)備來模擬人走路。人體最快的跑步頻率為5Hz,也就是說相鄰兩步的時間間隔的至少為0.2s[5],頻率超過50Hz的抖動稱之為高頻抖動。解決方案是利用定時器中斷將每次出現(xiàn)波峰的時間記錄下來,相鄰兩次的時間進行比較,若時間小于0.2s則不計步,這樣就慮去了高頻噪聲干擾。 3.3 其他功能實現(xiàn) 本系統(tǒng)用的是反射式心率傳感器,輸出模擬信號,即正弦波,通過從機的12位ADC采樣并轉(zhuǎn)化為數(shù)字信號并進行計數(shù),估算出一分鐘的心跳數(shù),得到心率。 本系統(tǒng)中用的GSM模塊是SIM800模塊,串口通信模式,利用主控的串口2給GSM模塊發(fā)送AT指令來實現(xiàn)發(fā)短信和接打電話的功能,由于GSM模塊只能識別Unicode碼,所以發(fā)短信前首先要將中文轉(zhuǎn)化為Unicode碼格式GSM才能發(fā)送和接收。 本文介紹了一種老年人看護系統(tǒng),分為主機和從機系統(tǒng),主機系統(tǒng)的功能主要是檢測跌倒、計步、定位等功能,從機系統(tǒng)的主要功能是發(fā)送短信、接打電話、實時檢測心率等功能。本系統(tǒng)的跌倒檢測功能相對于市場上的跌倒檢測產(chǎn)品有較大的改善,三重跌倒檢測算法,大大降低了誤判率。通過實際測試得到人走路的過程中SVM的變化曲線,整理分析最終得到一套獨特的計步算法,計算波峰、去除低幅干擾、去除高頻干擾,實現(xiàn)了精確的計步功能。本系統(tǒng)功能較為齊全、功耗較低、實時性較高,相比市場上功能單一的可穿戴設(shè)備有較大優(yōu)勢。 [1] 陸杰華,王偉進,薛偉玲.中國老齡產(chǎn)業(yè)發(fā)展的現(xiàn)狀、前景與政策支持體系[J].城市觀察,2013(4):5-21. [2] 汪冬,葛萬成,王云光,等.老人居家看護系統(tǒng)的設(shè)計和實現(xiàn)[J].中國組織工程研究與臨床康復(fù),2009(35):6923-6926. [3] 劉莉,鄭冬云,劉曉軍.基于MPU6050的老年人跌倒監(jiān)測系統(tǒng)設(shè)計[J].中國醫(yī)療器械雜志研究與論著,2015,39(5):327-330. [4] 卓從彬,楊龍頻,周林,等.基于MPU6050加速度傳感器的跌倒檢測與報警系統(tǒng)設(shè)計[J].電子器件,2015,38(4):821-825. [5] 劉程,陽洪.自適應(yīng)計步檢測算法研究[J].壓電與聲光,2015,37(2):258-270. Intelligent Care System Based on STM32 Qiang Wei, Zhang Junjie, Liu Kai, Wang Yalong, Jin Quanfeng, Gao Hongfeng (CollegeofInformationEngineering,HenanUniversityofScienceandTechnology, LuoyangHenan471023,China) An intelligent device of care system based on STM32 is introduced in this article. The device is made up of host system and the slave system. The communication mode between the two parts is based on blue-tooth. Functions like steps-counting, falling detection, satellite positioning etc are realized on the master system and the functions like message sending, calling, alerting and pulse monitor are realized on the slave system. This article shows the hardware and software designs of the system based on MPU6050 and STM32F103C8T6. The experiments show that this system has a lower rate of erroneous judgment; it also has advantages of real-time processing and accurate data, so it can be widely used in our life. fall detection; steps-counting; GSM; MPU6050; GPS; STM32F103C8T6; heart rate monitoring 2016-10-19 2016年度河南科技大學(xué)大學(xué)生研究訓(xùn)練計劃資助(2016036);2015年河南科技大學(xué)教學(xué)改革項目(2015YBZD-004);2016年國家級大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練項目(201610464020) 強 威(1995- ),男,河南駐馬店人,本科生,主要研究方向為嵌入式開發(fā)。 1674- 4578(2017)01- 0003- 03 TP273 A4 結(jié)束語