王 剛
(北京工業(yè)大學(xué)軟件學(xué)院,北京 100124)
基于Arduino Uno平臺的跌倒檢測報警系統(tǒng)設(shè)計※
王 剛
(北京工業(yè)大學(xué)軟件學(xué)院,北京 100124)
利用基于ATmega328P單片機(jī)的Arduino Uno硬件平臺、三軸加速度傳感器ADXL345和集成GPS導(dǎo)航技術(shù)的四頻GSM/GPRS模塊SIM908,設(shè)計一種老年人跌倒檢測報警系統(tǒng)。傳感器采集的人體三軸加速度值通過I2C總線傳輸?shù)絾纹瑱C(jī)進(jìn)行處理,通過提取人體跌倒過程的特征值設(shè)計跌倒檢測算法。檢測出跌倒發(fā)生后,將跌倒位置通過短信發(fā)送出去進(jìn)行報警。
Arduino;ADXL345;SIM908;跌倒檢測;報警
隨著人類生活水平的不斷提高,人口老齡化成為一個全球性的發(fā)展趨勢。目前,我國已經(jīng)進(jìn)入了老齡化社會[1],老年人的身心健康問題得到人們更多的關(guān)注。老年人因生理結(jié)構(gòu)衰老和身體機(jī)能減退,發(fā)生意外跌倒的概率和頻率非常高[2]。跌倒可以導(dǎo)致老年人身體組織挫傷、骨折甚至危及生命,并從心理上給老年人造成了壓力和恐懼感。實際上很多傷亡并不是由于意外跌倒本身造成的,而是由于跌倒發(fā)生后,老年人沒有得到及時的救治造成的[3]。因此,在老年人發(fā)生跌倒后,如何盡早被發(fā)現(xiàn),并發(fā)出求救信號進(jìn)行及時救治變得格外重要。為了老年人更健康地生活,研究設(shè)計一個老年人的跌倒檢測報警系統(tǒng)具有十分重要的研究價值和實際意義。
目前,研究開發(fā)人體跌倒檢測系統(tǒng)方面的技術(shù)有很多種,最常見的是圖像分析和加速度分析法。參考文獻(xiàn)[4]~[6]都是基于視頻圖像分析的室內(nèi)跌倒自動檢測系統(tǒng),這種技術(shù)準(zhǔn)確性高,人體動作清晰可見,但需要多部攝像機(jī)同時工作,暴露了用戶的個人隱私,而且監(jiān)測范圍有限,受環(huán)境的影響也很大。另一種加速度分析方法,主要基于微機(jī)電系統(tǒng)(Micro-Electromechanical System,MEMS)傳感器。MEMS技術(shù)近幾年得到了快速發(fā)展,廣泛應(yīng)用在跌倒檢測、狀態(tài)檢測、運動檢測等方面。參考文獻(xiàn)[7]~[9]都是利用MEMS技術(shù)進(jìn)行人體跌倒檢測的,目前國內(nèi)一些基于MEMS技術(shù)的跌到檢測雖可較好實現(xiàn)跌倒檢測,但大多計算量較大、設(shè)計復(fù)雜、價格昂貴,難以得到廣泛的應(yīng)用。
設(shè)計一種基于Arduino和三軸加速度傳感器的跌倒檢測報警系統(tǒng),實時采集人體加速度參數(shù)和地理位置信息,應(yīng)用于老年人意外跌倒后及時報警,兼具了性價比高、設(shè)計簡單、實時性高、低功耗、可擴(kuò)展的特點。
跌倒檢測報警系統(tǒng)由Arduino最小系統(tǒng)、加速度參數(shù)采集模塊、GPS定位模塊、GSM通信模塊組成,其系統(tǒng)結(jié)構(gòu)框圖如圖1所示。
Arduino實時接收加速度參數(shù)采集模塊傳來的人體加速度參數(shù)值,單片機(jī)通過接收來的加速度值,使用跌倒檢測算法來判斷穿戴者的體態(tài),如果檢測到跌倒的發(fā)生,便觸發(fā)跌倒報警機(jī)制。當(dāng)?shù)拱l(fā)生時,通過GPS定位模塊捕獲到穿戴者的具體地理位置,然后發(fā)出包含跌倒位置的報警求救信息,通知佩戴者的監(jiān)護(hù)人或醫(yī)療機(jī)構(gòu),進(jìn)行后續(xù)的救治。本系統(tǒng)在考慮這些功能需求的前提下,采用Arduino為控制核心,外圍連接加速度參數(shù)采集模塊、GPS定位模塊、GSM通信模塊,來實現(xiàn)整個系統(tǒng)的功能。
圖1 跌倒檢測報警系統(tǒng)結(jié)構(gòu)框圖
硬件部分主要包括微控制器最小系統(tǒng)、加速度參數(shù)采集模塊、GPS定位模塊、GSM通信模塊,以及各個模塊之間的連接。
2.1 Arduino平臺
Arduino是一款基于開源的電子原型設(shè)計平臺,包含兩個主要的部分:硬件部分是可以用來做電路設(shè)計的電路板,基于AVR系列單片機(jī)和ARM微控制器,有豐富的外設(shè)接口和硬件資源;軟件部分則是Arduino IDE,是計算機(jī)中的程序開發(fā)環(huán)境[10]。Arduino的模塊化設(shè)計,大大簡化了電子系統(tǒng)的設(shè)計過程。
其中,微控制器最小系統(tǒng)選用Arduino Uno,它是基于Atmel公司的ATmega328P單片機(jī)的硬件平臺,具有32KB Flash、1KB EEPROM、14路數(shù)字輸入/輸出接口(其中6路可用于PWM輸出)、6路模擬輸入接口。同時,Uno預(yù)置了Bootloader程序,不需要其他外部燒寫器,可以直接通過USB下載程序。
2.2 加速度傳感器ADXL345
ADXL345是ADI公司推出的基于iMEMS技術(shù)的三軸、數(shù)字輸出加速度傳感器。ADXL345具有多種可變的測量范圍且具有高分辨率、高靈敏度、超小封裝、超低功耗、標(biāo)準(zhǔn)的I2C或SPI數(shù)字接口、32級FIFO存儲,以及內(nèi)部多種運動狀態(tài)檢測和靈活的中斷方式等特性[11]。所有這些特性,使得ADXL345有助于大大簡化跌倒檢測算法,使其成為一款非常適合用于跌倒檢測器應(yīng)用的加速度傳感器。圖2為ADXL345功能框圖。
ADXL345標(biāo)準(zhǔn)的I2C數(shù)字接口可以和Arduino Uno 的I2C接口方便地進(jìn)行通信,將ADXL345采集到的人體三軸加速度數(shù)據(jù)傳給單片機(jī)進(jìn)行跌倒檢測算法處理,圖3給出了ADXL345和單片機(jī)之間的I2C總線典型連接圖。ADXL345的引腳接高電平,表示ADXL345工作在I2C模式。SDA和SCL是I2C總線的數(shù)據(jù)線和時鐘線,分別連接到Arduino Uno相應(yīng)的I2C總線接口(A4和A5)。ADXL345的INT1引腳連接到Arduino Uno的INT0(Pin2),用來產(chǎn)生中斷信號。
2.3 GPS定位和GSM通信模塊SlM908
圖2 ADXL345功能框圖
3 ADXL345和單片機(jī)之間的l2C典型連接圖
SIM908是一款集成了高性能GSM/GPRS引擎和GPS引擎的芯片。其中的GSM/GPRS引擎可以工作在GSM 850MHz、EGSM 900MHz、DCS 1800MHz和PCS 1900MHz四個頻段;GPS引擎具有一流的采集和跟蹤靈敏度、TTFF(Time-To-First-Fix)和準(zhǔn)確度[12],這些特性可以很好地完成跌倒位置定位和發(fā)送報警信號的任務(wù)。在SIM908芯片上可以同時完成GPS定位和GSM通信功能,可以大大減少系統(tǒng)芯片的數(shù)量和功耗。圖4為SIM908的功能框圖,通過UART口與Arduino Uno進(jìn)行通信,RXD和TXD分別與Uno的TXD和RXD相連,完成跌倒位置的GPS數(shù)據(jù)捕獲和發(fā)送GSM報警短信功能。
圖4 SlM908功能框圖
3.1 跌倒檢測算法
對跌倒檢測原理的研究主要是找到人體在跌倒過程中的加速度變化特征。加速度在不同運動過程中的變化曲線略——編者注,包括步行上樓、步行下樓、坐下、起立。
由于老年人的運動相對比較慢,所以在普通的步行過程中,加速度變化不會很大。最明顯的加速度變化就是在坐下動作中Y軸加速度(和加速度矢量和)上有一個超過3g的尖峰,這個尖峰是由于身體與椅子接觸而產(chǎn)生的。而跌倒過程中的加速度變化則完全不同,意外跌倒過程中的加速度變化曲線略——編者注。通過比較,可以發(fā)現(xiàn)跌倒過程中的加速度變化有4個主要特征,可以作為跌倒檢測的準(zhǔn)則。
失重:在跌倒的開始都會發(fā)生一定的失重現(xiàn)象。在自由落體的下降過程中,這個現(xiàn)象會更加明顯,加速度的矢量和會降低到接近0g。對于一般的跌倒,也會發(fā)生合加速度小于1g的情況。因此,這可以作為跌倒?fàn)顟B(tài)的第一個判斷依據(jù),由ADXL345的Free_Fall中斷來檢測。
撞擊:失重之后,人體發(fā)生跌倒的時候會與地面或其他物體發(fā)生撞擊,在加速度曲線中會產(chǎn)生一個很大的沖擊,這個沖擊可以通過ADXL345的Activity中斷來檢測。因此,F(xiàn)ree_Fall中斷之后,緊接著產(chǎn)生Activity中斷是跌倒?fàn)顟B(tài)的第二個判斷依據(jù)。
靜止:人體在跌倒后,也就是撞擊發(fā)生之后,不可能馬上起來,會有短暫的靜止?fàn)顟B(tài)(如果人因為跌倒而導(dǎo)致昏迷,甚至可能是較長時間的靜止)。表現(xiàn)在加速度曲線上就是會有一段時間的平穩(wěn),可以通過ADXL345的Inac-tivity中斷來檢測。因此,Activity中斷之后的Inactivity中斷是跌倒?fàn)顟B(tài)的第3個判斷依據(jù)。
與初始狀態(tài)比較:跌倒之后,人體會發(fā)生翻轉(zhuǎn),因此人體的方向會與原先靜止站立的姿態(tài)不同,這使得跌倒之后的靜止?fàn)顟B(tài)下的三軸加速度數(shù)值與初始狀態(tài)下的不同。因此,跌倒檢測的第4個依據(jù)就是跌倒后的靜止?fàn)顟B(tài)下加速度值與初始狀態(tài)發(fā)生變化,且矢量變化超過一定的門限值。
這4個判斷依據(jù)綜合在一起,構(gòu)成了完整的跌倒檢測算法,可以對跌倒?fàn)顟B(tài)給出報警。另外,如果跌倒造成了嚴(yán)重的后果(比如,導(dǎo)致了人的昏迷),那么人體會在更長的一段時間內(nèi)都保持靜止,這個狀態(tài)仍然可以通過Inactivity中斷來檢測。也就是說,如果發(fā)現(xiàn)在跌倒之后的很長時間內(nèi)都保持Inactivity狀態(tài),可以再次給出一個嚴(yán)重報警。算法流程圖如圖5所示。
圖5 算法流程圖
3.2 實驗結(jié)果
本文設(shè)計了一個實驗方案對算法進(jìn)行驗證。實驗對向前跌倒、向后跌倒、向左跌倒、向右跌倒等不同跌倒姿勢以及跌倒后是否有長時間靜止?fàn)顟B(tài)的情況分別進(jìn)行了10次測試,表1中給出的是相關(guān)測試結(jié)果。
表1 實驗結(jié)果
本設(shè)計將加速度傳感器ADXL345、GPS和GSM模塊SIM908與Arduino Uno平臺結(jié)合在一起,通過加速度傳感器采集人體三軸加速度值,實時檢測人體體態(tài),完成對人體跌倒的檢測和報警。整體設(shè)計具有成本低、可靠性高、算法復(fù)雜度低、檢測準(zhǔn)確度高和可擴(kuò)展的優(yōu)點,具有很高的實用性,可以滿足對人體跌倒檢測報警的需要。
編者注:本文為期刊縮略版,全文見本刊網(wǎng)站www. mesnet.com.cn。
[1]中華人民共和國國家統(tǒng)計局.第六次人口普查[EB/OL]. [2015-01-16].http://www.stats.gov.cn/tjsj/pcsj/rkpc/ 6rp/indexch.htm.
[2]宋岳濤.老年跌倒及預(yù)防保?。跰].北京:中國協(xié)和醫(yī)科大學(xué)出版社,2012.
[3]Tinetti M E.Prevention of falls and fall injuries in elderly persons:a research agenda[J].Preventive Medicine,1994,23(5):756-762.
[4]Na H,Qin S F,Wright D.A smart vision sensor for detecting risk factors of a toddler's fall in a home environment[C]// IEEE International Conference on Networking,Sensing and Control,2007:656-661.
[5]Huang B,Tian G,Wu H.A method for fast fall detection based on intelligent space[C]//IEEE International Conference on Automation and Logistics,2008:2260-2265.
[6]Vaidehi V,Ganapathy K,Mohan K,et al.Video based automatic fall detection indoor environment[C]//IEEE International Conference on Recent Trend in Information Technology,2011:1016-1020.
[7]Bourke A K,O'Brien J V,Lyons G M.Evaluation of a Threshold-Based Tri-Axial Accelerometer Fall Detection Algorithm.Gait&posture[J].2007,26(2):194-199.
[8]Anania G,Tognetti A,Carbonaro N,et al.Development of a novel algorithm for human fall detection using wearable sensors[C]//Sensors,2008:1336-1339.
[9]Ghasemzadeh H,Jafari R,Prabhakaran B.A body sensor network with electromyogram and inertial sensors:multimodal on Information Technology in Biomedicine,2010,14(2):192-206.
[10]Steven F Barrett.Arduino高級開發(fā)權(quán)威指南[M].潘鑫磊,譯.2版.北京:機(jī)械工業(yè)出版社,2014.
[11]Analog Devices.3-Axis,±2g/±4g/±8g/±16g Digital Accelerometer ADXL345,2010.
[12]Sim Technology.SIM908_Hardware Design,2012.
48
圖10 LCL濾波效果仿真和實測波形
本文主要介紹了單相光伏逆變器A/D采樣硬件電路和軟件算法、鎖相環(huán)硬件和編程思路、濾波器設(shè)計方法3項關(guān)鍵技術(shù)。按照文中所提供的參數(shù),研制了一臺300 W的試驗樣機(jī)。圖11為樣機(jī)并網(wǎng)電流跟蹤電網(wǎng)電壓仿真和實測波形,由圖可知,并網(wǎng)電流追蹤電網(wǎng)電壓效果良好。
圖11 電流跟蹤電壓仿真和實測并網(wǎng)波形
參考文獻(xiàn)
[1]李全利,王振春.一種基于DSP的三相交流采樣技術(shù)[J].自動化技術(shù)與應(yīng)用,2008,27(12).
[2]徐科軍.DSP及其電氣與自動化工程應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2010.
[3]原慧軍.光伏并網(wǎng)逆變器的研究與實踐[D].南京:南京農(nóng)業(yè)大學(xué),2007.
[4]周陽.并網(wǎng)/獨立雙模式逆變器LCL濾波器參數(shù)設(shè)計[J].華東電力,2012,40(10):1798-1799.
賈永博(碩士),研究方向為光伏逆變、無功補(bǔ)償。
(責(zé)任編輯:薛士然 收稿日期:2015-01-03)
Fall Detection Alert System Based on Arduino Uno※
Wang Gang
(School of Software Engineering,Beijing University of Technology,Beijing 100124,China)
A fall detection alert system for the older people is designed using Arduino Uno hardware platform based on ATmega328P,triaxial accelerometer ADXL345and quad-band GSM/GPRS module SIM908integrated with GPS navigation.The sensor collects triaxial accelerations on the body and transmits to the microcontroller for processing via I2C bus,then designs a fall detection algorithm by detecting characteristics during the fall.It will send location messages out for an alert after detecting fall.
Arduino;ADXL345;SIM908;fall detection;alert
TP391
A
??薛士然
2015-01-19)