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