【導讀】跌倒可以導致老年人身體組織挫傷、骨折甚至危及生命,并從心理上給老年人造成了壓力和恐懼感。實際上很多傷亡并不是由于意外跌倒本身造成的,而是由于跌倒發(fā)生后,老年人沒有得到及時的救治造成的。尤其現(xiàn)在社會上存在很多訛詐現(xiàn)象,導致人們不敢輕易伸出援助之手。
隨著人類生活水平的不斷提高,人口老齡化成為一個全球性的發(fā)展趨勢。目前,我國已經(jīng)進入了老齡化社會,老年人的身心健康問題得到人們更多的關注。老年人因生理結(jié)構(gòu)衰老和身體機能減退,發(fā)生意外跌倒的概率和頻率非常高。
因此,在老年人發(fā)生跌倒后,如何盡早被發(fā)現(xiàn),并發(fā)出求救信號進行及時救治變得格外重要。為了老年人更健康地生活,研究設計一個老年人的跌倒檢測與報警系統(tǒng)具有十分重要的研究價值和實際意義。
目前,研究開發(fā)人體跌倒檢測系統(tǒng)方面的技術有很多種,最常見的是圖像分析和加速度分析法。都是基于視頻圖像分析的室內(nèi)跌倒自動檢測系統(tǒng),這種技術準確性高,人體動作清晰可見,但需要多部攝像機同時工作,且暴露了用戶的個人隱私,監(jiān)測范圍有限,受環(huán)境的影響也很大。另一種加速度分析方法,主要基于微機電系統(tǒng)(Micro-Electromechanical System,MEMS)傳感器。MEMS技術近幾年得到了快速發(fā)展,廣泛應用在跌倒檢測、狀態(tài)檢測、運動檢測等方面。都是利用MEMS技術進行人體跌倒檢測的,目前國內(nèi)一些基于MEMS技術的跌到檢測雖可較好實現(xiàn)跌倒檢測,但大多計算量較大、設計復雜、價格昂貴,難以得到廣泛的應用。
設計一種基于Arduino和三軸加速度傳感器的跌倒檢測報警系統(tǒng),實時采集人體加速度參數(shù)和地理位置信息,應用于老年人意外跌倒后及時報警,兼具了性價比高、設計簡單、實時性高、低功耗、可擴展的特點,實驗證明了該系統(tǒng)的可行性和準確性。
1 系統(tǒng)總體設計
跌倒檢測報警系統(tǒng)由Arduino最小系統(tǒng)、加速度參數(shù)采集模塊、GPS定位模塊、GSM通信模塊組成,其系統(tǒng)框圖如圖1所示。
圖1 跌倒檢測報警系統(tǒng)框圖
Arduino實時接收加速度參數(shù)采集模塊傳來的人體加速度參數(shù)值,單片機通過接收來的加速度值,經(jīng)過跌倒檢測算法來判斷穿戴者的體態(tài),如果檢測出跌倒的發(fā)生,便觸發(fā)跌倒報警機制。當?shù)拱l(fā)生時,通過GPS定位模塊能捕獲到穿戴者的具體地理位置,然后發(fā)出包含跌倒位置的報警求救信息,通知佩戴者的監(jiān)護人或醫(yī)療機構(gòu),進行后續(xù)的救治。本系統(tǒng)在考慮這些功能需求的前提下,采用Arduino為控制核心,外圍連接加速度參數(shù)采集模塊、GPS定位模塊、GSM通信模塊,來完成整個系統(tǒng)的功能。
2 硬件設計
硬件部分主要包括微控制器最小系統(tǒng)的選取、加速度參數(shù)采集模塊、GPS定位模塊、GSM通信模塊,以及各個模塊之間的連接。
2.1 Arduino平臺
Arduino是一款基于開源的電子原型設計平臺。Arduino包含兩個主要的部分:硬件部分是可以用來做電路設計的電路板,基于AVR系列單片機和ARM微控制器,有豐富的外設接口和硬件資源;軟件部分則是Arduino IDE,是在計算機中的程序開發(fā)環(huán)境[10]。Arduino的模塊化設計,大大簡化了電子系統(tǒng)的設計過程。
其中,微控制器最小系統(tǒng)選用Arduino Uno,它是基于ATMEL公司的ATmega328P單片機的硬件平臺,具有32KB Flash、1KB EEPROM、14路數(shù)字輸入輸出口(其中6路可用于PWM輸出)、6路模擬輸入接口。同時,Uno預置了Bootloader程序,不需要其他外部燒寫器,可以直接通過USB下載程序。
2.2 加速度傳感器ADXL345
ADXL345是ADI公司最近推出的基于iMEMS技術的3軸、數(shù)字輸出加速度傳感器。ADXL345具有多種可變的測量范圍,高分辨率,高靈敏度,超小的封裝,超低的功耗,標準的I2C或SPI數(shù)字接口,32級FIFO存儲,以及內(nèi)部多種運動狀態(tài)檢測和靈活的中斷方式等特性[11]。所有這些特性,使得 ADXL345有助于大大簡化跌倒檢測算法,使其成為一款非常適合用于跌倒檢測器應用的加速度傳感器。圖2為ADXL345功能框圖。
圖2 ADXL345功能框圖
ADXL345標準的I2C數(shù)字接口可以和Arduino Uno的I2C接口方便通信,將ADXL345采集到的人體三軸加速度數(shù)據(jù)傳給單片機進行跌倒檢測算法處理,圖3給出了ADXL345和單片機之間的I2C總線典型連接圖。ADXL345的(CS) ?管腳接高電平,表示ADXL345工作在I2C模式。SDA和SCL是I2C總線的數(shù)據(jù)線和時鐘線,分別連接到Arduino Uno相應的I2C總線接口(A4和A5)。ADXL345的INT1管腳連接到Arduino Uno的INT0(Pin 2),用來產(chǎn)生中斷信號。
圖3 ADXL345和單片機之間的I2C典型連接圖
2.3 GPS定位和GSM通信模塊SIM908
SIM908是一款集成了高性能GSM/GPRS引擎和GPS引擎的芯片。其中的GSM/GPRS引擎可以工作在GSM 850MHz,EGSM 900MHz,DCS 1800MHz和PCS 1900MHz四個頻段;GPS引擎具有一流的采集和跟蹤靈敏度、TTFF(Time-To-First-Fix)和準確度[12],這些特性可以很好地完成跌倒位置定位和發(fā)送報警信號的任務。在SIM908芯片上可以同時完成GPS定位和GSM通信功能,可以大大減少系統(tǒng)芯片的數(shù)量和功耗。圖4為SIM908的功能框圖。SIM908通過UART口與Arduino Uno進行通信,RXD和TXD分別與Uno的TXD和RXD相連,完成跌倒位置的GPS數(shù)據(jù)的捕獲和發(fā)送GSM報警短信功能。
圖4 SIM908功能框圖
3算法設計與實驗
3.1 跌倒檢測算法
對跌倒檢測原理的研究主要是找到人體在跌倒過程中的加速度變化特征。圖5給出的是加速度在不同運動過程中的變化曲線,包括(a)步行上樓、(b)步行下樓、(c)坐下、 (d)起立。其中紅色的曲線是Y軸(垂直方向)的加速度曲線,其正常靜止狀態(tài)下應該為-1g;黑色和黃色的曲線分別是X軸(前后方向)和Z軸(左右方向)的加速度曲線,其正常靜止狀態(tài)下應該為0g;綠色的曲線是三軸加速度的矢量和,其正常靜止狀態(tài)下應該為+1g。
圖5 不同運動過程中的加速度變化曲線
由于老年人的運動相對比較慢,所以在普通的步行過程中,加速度變化不會很大。最明顯的加速度變化就是在坐下動作中Y軸加速度(和加速度矢量和)上有一個超過3g的尖峰,這個尖峰是由于身體與椅子接觸而產(chǎn)生的。而跌倒過程中的加速度變化則完全不同。圖6給出的是意外跌倒過程中的加速度變化曲線。通過圖6和圖5的比較,可以發(fā)現(xiàn)跌倒過程中的加速度變化有4個主要特征,這可以作為跌倒檢測的準則。這4個特征在圖6中以紅色的方框標注,下面將對其逐一進行詳細介紹。
圖6 意外跌倒過程中的加速度變化曲線
失重:在跌倒的開始都會發(fā)生一定的失重現(xiàn)象。在自由落體的下降過程,這個現(xiàn)象會更加明顯,加速度的矢量和會降低到接近0g。對于一般的跌倒,也會發(fā)生合加速度小于1g的情況。因此,這可以作為跌倒狀態(tài)的第一個判斷依據(jù)??梢杂葾DXL345的Free_Fall中斷來檢測。
撞擊:失重之后,人體發(fā)生跌倒的時候會與地面或其他物體發(fā)生撞擊,在加速度曲線中會產(chǎn)生一個很大的沖擊。這個沖擊可以通過ADXL345的Activity中斷來檢測。因此,F(xiàn)ree_Fall中斷之后,緊接著產(chǎn)生Activity中斷是跌倒狀態(tài)的第二個判斷依據(jù)。
靜止:人體在跌倒后,也就是撞擊發(fā)生之后,不可能馬上起來,會有短暫的靜止狀態(tài)(如果人因為跌倒而導致昏迷,甚至可能是較長時間的靜止)。表現(xiàn)在加速度曲線上就是會有一段時間的平穩(wěn)。這可以通過ADXL345的Inactivity中斷來檢測。因此,Activity中斷之后的Inactivity中斷是跌倒狀態(tài)的第三個判斷依據(jù)。
與初始狀態(tài)比較:跌倒之后,人體會發(fā)生翻轉(zhuǎn),因此人體的方向會與原先靜止站立的姿態(tài)不同。這使得跌倒之后的靜止狀態(tài)下的三軸加速度數(shù)值與初始狀態(tài)下的不同,如圖5所示。因此,跌倒檢測的第四個依據(jù)就是跌倒后的靜止狀態(tài)下加速度值與初始狀態(tài)發(fā)生變化,且矢量變化超過一定的門限值。
這四個判斷依據(jù)綜合在一起,構(gòu)成了整個的跌倒檢測算法,可以對跌倒狀態(tài)給出報警。
另外,如果跌倒造成了嚴重的后果,比如,導致了人的昏迷。那么人體會在更常的一段時間內(nèi)都保持靜止。這個狀態(tài)仍然可以通過Inactivity中斷來檢測。也就是說,如果發(fā)現(xiàn)在跌倒之后的很長時間內(nèi)都保持Inactivity狀態(tài),可以再次給出一個嚴重報警。算法的流程圖如圖7所示。
圖7 算法流程圖
3.2 實驗結(jié)果
本文設計了一個實驗方案對算法進行驗證。實驗對向前跌倒,向后跌倒,向左、右兩側(cè)跌倒等不同跌倒姿勢以及跌倒后是否有長時間靜止狀態(tài)的情況分別進行了10次測試,表1中給出的是相關測試結(jié)果。
表1 實驗結(jié)果
本設計將加速度傳感器ADXL345、GPS和GSM模塊SIM908與Arduino Uno平臺結(jié)合在一起,通過加速度傳感器采集人體三軸加速度值,實時檢測人體體態(tài),完成對人體跌倒的檢測和報警。整體設計成本低、可靠性高、算法復雜度低、檢測準確度高和可擴展的優(yōu)點,具有很高的實用性,可以滿足對人體跌倒檢測報警的需要。
推薦閱讀: