三軸加速度傳感器在跌倒檢測中的應(yīng)用
利用ADXL345簡化跌倒檢測算法
本節(jié)將給出以上解決方案的具體算法實現(xiàn)。表1中簡要說明了每個寄存器的作用以及在本算法中的設(shè)置值。對于各個寄存中每一位的具體含義,請參考ADXL345的數(shù)據(jù)手冊。
需要指出的是,表1給出的設(shè)置值中,某些寄存器會給出兩個數(shù)值,這說明在算法中會切換使用這兩個數(shù)值,來達(dá)到不同的檢測目的。算法的流程圖如圖6所示。
圖6 算法流程圖
算法中,關(guān)于各種中斷的門限以及時間參數(shù)的設(shè)置如下所述。
1. 初始化后,系統(tǒng)等待Free_Fall中斷(失重),這里把THRESH_FF設(shè)為0.75g,把TIME_FF設(shè)為30ms。
2. Free_Fall中斷產(chǎn)生之后,系統(tǒng)開始等待Activity中斷(撞擊),這里把THRESH_ACT設(shè)為2g,Activity中斷為DC coupled工作模式。
3. Free_Fall中斷(失重)與Activity中斷(撞擊)之間的時間間隔設(shè)置為200ms。如果超過200ms,則認(rèn)為無效。200ms計時需要通過MCU中的定時器來實現(xiàn)。
4. Activity中斷產(chǎn)生之后,系統(tǒng)開始等待Inactivity中斷(撞擊后的靜止),這里把THRESH_INACT設(shè)為0.1875g,把TIME_INACT設(shè)為2s,Inactivity中斷為AC coupled工作模式。
5. 在Activity中斷產(chǎn)(撞擊)生之后的3.5s時間之內(nèi),應(yīng)該有Inactivity中斷(撞擊后的靜止)產(chǎn)生。如果超時,則認(rèn)為無效。3.5s計時需要通過MCU中的定時器來實現(xiàn)。
6. 如果Inactivity中斷之后的加速度值與初始狀態(tài)(假設(shè)已知)下數(shù)值的矢量差超過0.7g,則說明檢測到一次有效的跌倒,系統(tǒng)會給出一個報警。
7. 當(dāng)檢測到跌倒狀態(tài)之后,為了判斷是否在跌倒之后人體有長時間的靜止不動。需要繼續(xù)檢測Activity中斷和Inactivity中斷。這里把THRESH_ACT設(shè)為0.5g,Activity中斷為AC coupled工作模式。把THRESH_INACT設(shè)為0.1875g,把TIME_INACT設(shè)為10s,Inactivity中斷為AC coupled工作模式。也就是說,如果在10s之內(nèi),人體一直沒有任何動作,則會產(chǎn)生Inactivity中斷,使系統(tǒng)給出一個嚴(yán)重報警。而在此期間一旦人體有所動作,則會產(chǎn)生Activity中斷,從而結(jié)束整個判斷過程。
8. 本算法還可以檢測出人體從較高的地方跌落。如果Free_Fall中斷連續(xù)產(chǎn)生且之間的間隔小于100ms,可以認(rèn)為,人體處于連續(xù)的跌落狀態(tài)。如果Free_Fall中斷(失重)連續(xù)發(fā)生300ms,則說明人體是從超過0.45m的高度跌落,系統(tǒng)會給出一個跌落的報警。
本算法已在ADuC7026微控制器中以C語言實現(xiàn)(見附錄)。本文設(shè)計了一個實驗方案對算法進(jìn)行驗證。實驗對向前跌倒,向后跌倒,向左、右兩側(cè)跌倒等不同跌倒姿勢以及跌倒后是否有長時間靜止?fàn)顟B(tài)的情況分別進(jìn)行了10次測試,表2中給出的是相關(guān)測試結(jié)果。
表2 測試結(jié)果
跌倒姿勢 | 跌倒后長時間靜止 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
向前跌倒 | 否 | P | P | P | P | P | P | P | P | P | P |
是 | P* | P* | P* | P* | P* | P* | P* | P* | P* | P* | |
向后跌倒 | 否 | P | P | P | P | P | P | P | P | P | P |
是 | P* | P* | P* | P* | P* | P* | P* | P* | P* | P* | |
向左側(cè)跌倒 | 否 | P | P | P | P | P | P | P | P | P | P |
是 | P* | P* | P* | P* | P* | P* | P* | P* | P* | P* | |
向右側(cè)跌倒 | 否 | P | P | P | P | P | P | P | P | P | P |
是 | P* | P* | P* | P* | P* | P* | P* | P* | P* | P* | |
注:符號√表示檢測到跌倒,符號*表示檢測到跌倒后的長時間靜止。 |
注:符號√表示檢測到跌倒,符號*表示檢測到跌倒后的長時間靜止。
從這個實驗中可以看出基于ADXL345的解決方案能夠有效地對跌倒?fàn)顟B(tài)進(jìn)行檢測。當(dāng)然,這里只是一個簡單的實驗方案,仍需要進(jìn)行更加全面、有效和長期的實驗來驗證該解決方案的可靠性。
結(jié)論
ADXL345是ADI公司的一款功能強(qiáng)大的加速度傳感器產(chǎn)品。本文利用ADXL345內(nèi)部的多種運動狀態(tài)檢測功能和靈活的中斷功能,提出一種新的跌倒檢測解決方案。經(jīng)驗證,該解決方案具有算法復(fù)雜度低,檢測準(zhǔn)確度高的優(yōu)點。
評論