理論上,當人跌倒經過一段時間后,人體會處于靜止狀態,此時人體和地面應處于水平狀態,Z軸加速度為0。同時當人體向前或向后跌倒后,人體X軸角度應在-90o和90o附近;當人體向左或向右跌倒后,人體Y軸角度應在-90o和90o附近浮動。通過實驗,我們選取±70o作為第二個判定條件閾值。從圖7和圖8可以看出雖然人體正常姿態有時能在劇烈運動時達到閾值,但是肯定不能持續維持這個值。所以我們選取要求3s內都保持這個值,這樣就可以短時間內判斷跌倒情況且不耽誤營救。
圖7 ?跑步的三軸角度曲線圖
圖8 ?跌倒后靜止狀態下的三軸角度
2.2、算法實現
系統通過IIC形式將數據從MPU6050傳送到STM32單片機,STM32單片機對接收到的數據進行跌倒算法運算和判斷。整個的實現過程可分為以下三個部分:
(1)檢測當前和加速度SVM是否大于閾值2.5g,若小于2.5g,則返回繼續采樣測量;若大于2.5g,則認為疑似跌倒。
(2)若檢測到疑似跌倒,延時3s,進入二次判斷,檢測人體角度是否在閾值范圍內。若在這個范圍
內,同時要求3s內保持這個范圍。
(3)如果系統檢測到人體運動狀態同時滿足以上兩個條件,此時蜂鳴器鳴叫,提醒老人和老人身邊行人。接著延時等待30s,如果30s內用戶沒有按鍵取消報警,則認為老人跌倒。此時將報警信號通過藍牙4.0設備傳送給手機,手機進行語音報警,并打開GPS定位,打電話和發消息通知醫院和家人。