本發(fā)明屬于電子信息領(lǐng)域,尤其涉及一種基于中斷驅(qū)動(dòng)的低功耗跌倒檢測(cè)裝置,進(jìn)一步一種基于中斷驅(qū)動(dòng),能實(shí)時(shí)采集并預(yù)處理3軸加速度和角速度數(shù)據(jù),依據(jù)預(yù)設(shè)3軸加速度、角速度的閾值并應(yīng)用決策樹判斷監(jiān)測(cè)對(duì)象跌倒并報(bào)警。
背景技術(shù):
傳統(tǒng)的基于3軸加速度計(jì)、陀螺儀的可穿戴跌倒技術(shù),忽略了可穿戴設(shè)備的計(jì)算能力和電源受限的客觀約束條件,由可穿戴設(shè)備的主處理單元在線實(shí)時(shí)檢測(cè)3軸加速度計(jì)和陀螺儀,讀取3軸加速度和角速度數(shù)據(jù)并通過無線射頻模塊發(fā)送到接收端的計(jì)算設(shè)備,再由其進(jìn)行跌倒檢測(cè)。由于可穿戴設(shè)備的主處理單元實(shí)時(shí)監(jiān)測(cè)讀取數(shù)據(jù)、射頻單元實(shí)時(shí)發(fā)送數(shù)據(jù),會(huì)產(chǎn)生大量能耗。
技術(shù)實(shí)現(xiàn)要素:
針對(duì)上述問題,本發(fā)明提供一種基于中斷驅(qū)動(dòng)的低功耗跌倒檢測(cè)裝置,利用mpu6050集成了3軸加速度計(jì)、陀螺儀和1kb的fifo(firstinfirstout)緩存,其在休眠狀態(tài)時(shí)可以在無可穿戴設(shè)備主處理單元(mainprocessunit,mpu)支持情況下實(shí)時(shí)讀取3軸加速度、角速度數(shù)據(jù),并按照fifo方式緩存數(shù)據(jù);通過設(shè)置mpu6050中3軸加速度、角速度寄存器的閾值,當(dāng)3軸加速度或角速度值超過閾值時(shí),系統(tǒng)產(chǎn)生中斷請(qǐng)求,由mpu依據(jù)mpu6050緩存的加速度和角速度數(shù)據(jù)按照c45決策樹算法進(jìn)行跌倒監(jiān)測(cè),若檢測(cè)對(duì)象跌倒,mpu通過zigbee向接收端主機(jī)發(fā)送跌倒警告。
為實(shí)現(xiàn)上述目的,本發(fā)明采用如下的技術(shù)方案:
一種基于中斷驅(qū)動(dòng)的低功耗跌倒檢測(cè)裝置包括:用于采集檢測(cè)對(duì)象活動(dòng)的3軸加速度、角速度數(shù)據(jù)mpu6050傳感器、以及cc2530mcu;其中,采用有限狀態(tài)機(jī)對(duì)跌倒過程建模,該模型有6個(gè)狀態(tài),每個(gè)狀態(tài)的任務(wù)及狀態(tài)之間的關(guān)系如下:
1.f0狀態(tài):初始狀態(tài),即復(fù)位狀態(tài),此狀態(tài)對(duì)系統(tǒng)進(jìn)行初始化;
2.f1狀態(tài):自由下落狀態(tài),將是否出現(xiàn)自由下落現(xiàn)象作為判斷跌倒的第一個(gè)依據(jù),當(dāng)出現(xiàn)自由下落現(xiàn)象時(shí)會(huì)觸發(fā)mpu6050的自由下落中斷,自由下落中斷的工作過程如下:
a)mpu6050的fifo緩存被觸發(fā),緩存按照fifo的模式保存了自由下落中斷觸發(fā)前2秒鐘內(nèi)采樣到的3軸加速度、角速度數(shù)據(jù);
b)cc2530啟動(dòng)定時(shí)器,該定時(shí)器是遞歸的,即當(dāng)前一個(gè)定時(shí)器到期時(shí),它將啟動(dòng)另一個(gè)特定時(shí)長(zhǎng)的定時(shí)器;
c)如果自由下落中斷被斷言超過150ms,進(jìn)入f2狀態(tài),否則進(jìn)入f1狀態(tài);
3.f2狀態(tài):撞擊狀態(tài),通過設(shè)置mpu6050的運(yùn)動(dòng)中斷可以檢測(cè)這個(gè)撞擊狀態(tài),運(yùn)動(dòng)中斷的工作過程如下:
a)設(shè)置運(yùn)動(dòng)中斷為非使能狀態(tài);
b)cc2530檢索fifo緩存中前0.5秒鐘的數(shù)據(jù),并計(jì)算它們的平均值作為檢測(cè)對(duì)象身體姿勢(shì)的初始值;
c)如果在運(yùn)動(dòng)中斷產(chǎn)生后2秒內(nèi)非運(yùn)動(dòng)中斷被激活,則系統(tǒng)進(jìn)入f3,否則返回f0;
4.f3狀態(tài):非運(yùn)動(dòng)狀態(tài),通過mpu6050的非運(yùn)動(dòng)中斷來檢測(cè),非運(yùn)動(dòng)中斷的工作過程如下:
a)cc2530檢索fifo緩存中最后0.5秒鐘的數(shù)據(jù),并計(jì)算它們的平均值作為檢測(cè)對(duì)象身體姿勢(shì)的最終值;
b)在活動(dòng)中斷產(chǎn)生2秒鐘后,如果發(fā)生非運(yùn)動(dòng)狀態(tài)斷言,算法進(jìn)入f4;
5.f4狀態(tài):比較身體姿勢(shì)的初始值與最終值,依據(jù)f3獲得的檢測(cè)對(duì)象身體姿勢(shì)的最終值與f2獲得的初始值對(duì)比值作為檢測(cè)是否跌倒的第4個(gè)依據(jù),此狀態(tài)的工作過程如下:
a)計(jì)算身體姿勢(shì)的最終值與初始值之間的差值,若差值大于設(shè)定閾值,系統(tǒng)產(chǎn)生跌倒警報(bào),并將活動(dòng)中斷設(shè)置為使能狀態(tài),同時(shí)進(jìn)入f5;
b)將非活動(dòng)中斷的檢測(cè)時(shí)間設(shè)成10秒,進(jìn)而判斷檢測(cè)對(duì)象跌倒后是否存在較長(zhǎng)時(shí)間無法運(yùn)動(dòng)的狀態(tài);
c)若在f4時(shí),系統(tǒng)再次檢測(cè)到活動(dòng)中斷,這表明跌倒撞擊給檢測(cè)對(duì)造成的傷害較小,不影響其正常生活,檢測(cè)對(duì)象的跌倒地否則算法進(jìn)入f0;
6.f5狀態(tài):報(bào)警狀態(tài)
d)cc2530控制蜂鳴器產(chǎn)生蜂鳴報(bào)警;
e)cc2530通過內(nèi)置zigbee模塊將檢測(cè)對(duì)象跌倒?fàn)顟B(tài)發(fā)送給zigbee接收端主機(jī),以便作進(jìn)一步的處理。
作為優(yōu)選,f0狀態(tài)的工作狀態(tài)如下:
a)、初始化i2c接口,復(fù)位mpu6050,設(shè)置mpu6050內(nèi)部的寄存器的初始值;
b)、設(shè)置加速度傳感器的最大量程為16g,配置陀螺儀最大測(cè)量范圍±2000deg/s,關(guān)閉中斷,設(shè)置3軸加速度、陀螺儀的采樣率并采用數(shù)字低通濾波器去噪,設(shè)置系統(tǒng)時(shí)鐘源,并將3軸加速度和角速度傳感器設(shè)置為使能狀態(tài);
c)、設(shè)置運(yùn)動(dòng)中斷和非運(yùn)動(dòng)中斷的閾值分別為2.25g和0.5g,以及其檢測(cè)時(shí)間窗口的默認(rèn)值為1s;
d)、設(shè)置自由下落中斷的閾值為0.5625g,及其檢測(cè)時(shí)間窗口默認(rèn)值為50ms;
e)、對(duì)mpu6050傳感器的fifo緩存初始化,將其設(shè)置為觸發(fā)模式,并由自由下落中斷觸發(fā);
f)、當(dāng)從其他狀態(tài)返回時(shí),cc2530定時(shí)器計(jì)時(shí)器將停止,并系統(tǒng)重新初始化。
附圖說明
圖1為本發(fā)明的低功耗跌倒檢測(cè)裝置的結(jié)構(gòu)示意圖;
圖2為本發(fā)明的低功耗跌倒檢測(cè)裝置工作流程圖。
具體實(shí)施方式
針對(duì)mpu6050模塊、cc2530芯片,led,蜂鳴器的大小和針腳特征,本發(fā)明提供一種基于中斷驅(qū)動(dòng)的低功耗跌倒檢測(cè)裝置,設(shè)計(jì)了核心芯片組的排列與布線方法;設(shè)計(jì)相應(yīng)的pcb電路板以集成mpu6050加速度計(jì)、cc2530芯片、ft232rq串口通信芯片、lp2992鋰電池控制芯片和max1555充電控制器。本發(fā)明不僅能根據(jù)采集檢測(cè)對(duì)象活動(dòng)的3軸加速度、角速度數(shù)據(jù),并通過cc2530芯片內(nèi)置的zigbee射頻模塊發(fā)送數(shù)據(jù)。同時(shí),開發(fā)人員可以采用iarembeddedworkbench開發(fā)環(huán)境針對(duì)該模塊編寫程序,針對(duì)不用應(yīng)用需要設(shè)置傳感器的采樣頻率(由于人體運(yùn)動(dòng)頻率小于20hz,本發(fā)明默認(rèn)采樣率為50hz,即采樣間隔為20ms)、zigbee數(shù)據(jù)傳輸?shù)乃俾屎托诺溃⑼ㄟ^usb電纜將程序下載至本模塊。模塊設(shè)計(jì)布局如圖1所示。
本發(fā)明采用invensense公司生產(chǎn)的集成了3軸加速度、陀螺儀的mpu6050傳感器采集檢測(cè)對(duì)象活動(dòng)的3軸加速度、角速度數(shù)據(jù)。該傳感器中加速度計(jì)測(cè)量范圍最大為±16g,陀螺儀可測(cè)范圍為±2000deg/sec(dps),這類傳感器具有體積小、功耗低等特點(diǎn)。采用ti公司(德州儀器)的cc2530作為中央處理單元mcu,該芯片的晶振主頻為16mhz;cc2530內(nèi)置zigbee射頻單元,傳輸距離10-100米,數(shù)據(jù)傳輸速率最高為250kbit/s;采用ft232rq串行通信芯片為本模塊提供usb接口和串行通信支持;采用lp2992鋰電池控制芯片和max1555充電控制器,使模塊即能通過3~5v鋰電池供電,也可以通過usb接口電路供電,并可通過usb接口為鋰電池充電。
下面結(jié)合本發(fā)明的算法對(duì)于本發(fā)明做進(jìn)一步的說明。
如圖2所示,本發(fā)明采用有限狀態(tài)機(jī)對(duì)跌倒過程建模,該模型有6個(gè)狀態(tài),每個(gè)狀態(tài)的任務(wù)及狀態(tài)之間的關(guān)系如下:
1、f0:初始狀態(tài),即復(fù)位狀態(tài)。此狀態(tài)對(duì)系統(tǒng)進(jìn)行初始化,主要任務(wù)包括:
a)、初始化i2c接口,復(fù)位mpu6050,設(shè)置mpu6050內(nèi)部的寄存器的初始值;
b)、設(shè)置加速度傳感器的最大量程為16g,配置陀螺儀最大測(cè)量范圍±2000deg/s,關(guān)閉中斷,設(shè)置3軸加速度、陀螺儀的采樣率并采用數(shù)字低通濾波器去噪,設(shè)置系統(tǒng)時(shí)鐘源,并將3軸加速度和角速度傳感器設(shè)置為使能狀態(tài);
c)、設(shè)置運(yùn)動(dòng)中斷(motioninterrupt)和非運(yùn)動(dòng)中斷(zeromotioninterrupt)的閾值(默認(rèn)值分別為2.25g和0.5g),以及其檢測(cè)時(shí)間窗口(默認(rèn)值為1s);
d)、設(shè)置自由下落中斷(freefallinterrupt)的閾值(默認(rèn)值為0.5625g),及其檢測(cè)時(shí)間窗口(默認(rèn)值為50ms);
e)、對(duì)mpu6050傳感器的fifo緩存初始化,將其設(shè)置為觸發(fā)模式,并由自由下落中斷觸發(fā);
f)、當(dāng)從其他狀態(tài)返回時(shí),cc2530定時(shí)器計(jì)時(shí)器(在f1中啟動(dòng))將停止,并系統(tǒng)重新初始化。
2、f1:自由下落狀態(tài)。跌倒開始時(shí)會(huì)出現(xiàn)一定的失重現(xiàn)象,尤其在自由下落過程,這個(gè)現(xiàn)象更加明顯。此時(shí),加速度的矢量合會(huì)降低到接近0g,此現(xiàn)象持續(xù)的時(shí)間與自由下落的高度有關(guān)。對(duì)于一般的跌倒,其加速度矢量和雖然不會(huì)像自由下落時(shí)下降那么明顯,但其加速度矢量合通常會(huì)小于1g(正常情況下加速度矢量合應(yīng)大于1g)。因此,可以將是否出現(xiàn)自由下落現(xiàn)象作為判斷跌倒的第一個(gè)依據(jù),當(dāng)出現(xiàn)自由下落現(xiàn)象時(shí)會(huì)觸發(fā)mpu6050的自由下落中斷。自由下落中斷主要任務(wù)如下:
a)、mpu6050的fifo緩存被觸發(fā),緩存按照fifo的模式保存了自由下落中斷觸發(fā)前2秒鐘內(nèi)采樣到的3軸加速度、角速度數(shù)據(jù);
b)、cc2530啟動(dòng)定時(shí)器(默認(rèn)時(shí)長(zhǎng)為50ms)。該定時(shí)器是遞歸的,即當(dāng)前一個(gè)定時(shí)器到期時(shí),它將啟動(dòng)另一個(gè)特定時(shí)長(zhǎng)的定時(shí)器;
c)、如果自由下落中斷被斷言超過150ms(即3個(gè)計(jì)時(shí)器滴答),算法進(jìn)入f2狀態(tài)。否則進(jìn)入f1狀態(tài)。
3、f2:撞擊狀態(tài)。失重狀態(tài)即將結(jié)束時(shí),即監(jiān)測(cè)對(duì)象自由下落至與地面或其他較低的物體發(fā)生沖撞時(shí),會(huì)導(dǎo)致3軸加速度、角速度發(fā)生激烈變化。此時(shí),通過設(shè)置mpu6050的運(yùn)動(dòng)中斷可以檢測(cè)這個(gè)撞擊狀態(tài)。因此,自由落體中斷之后,緊接著產(chǎn)生運(yùn)動(dòng)中斷是判斷跌倒是否發(fā)生的第二個(gè)依據(jù)。運(yùn)動(dòng)中斷主要任務(wù)如下:
a)、設(shè)置運(yùn)動(dòng)中斷為非使能狀態(tài)。在撞擊期間,運(yùn)動(dòng)中斷可能被斷言多次。而依據(jù)一個(gè)運(yùn)動(dòng)中斷的斷言就可以判斷撞擊是否發(fā)生,因此可以屏蔽隨后產(chǎn)生的運(yùn)動(dòng)中斷斷言;
b)、cc2530檢索fifo緩存中前0.5秒鐘的數(shù)據(jù),并計(jì)算它們的平均值作為檢測(cè)對(duì)象身體姿勢(shì)的初始值;
c)、如果在運(yùn)動(dòng)中斷產(chǎn)生后2秒內(nèi)非運(yùn)動(dòng)中斷被激活,則系統(tǒng)進(jìn)入f3,否則返回f0。
4、f3:非運(yùn)動(dòng)狀態(tài)。通常檢測(cè)對(duì)象在跌倒后(即撞擊發(fā)生后),不會(huì)馬上起來,而會(huì)有短暫的非運(yùn)動(dòng)狀態(tài)產(chǎn)生(如果檢測(cè)對(duì)象因?yàn)閲?yán)重跌倒而導(dǎo)致昏迷,有可能較長(zhǎng)時(shí)間的靜止),此時(shí)的3軸加速度、角速度曲線會(huì)表現(xiàn)出一段時(shí)間的平穩(wěn)狀態(tài),而這可以通過mpu6050的非運(yùn)動(dòng)中斷來檢測(cè)。因此,運(yùn)動(dòng)中斷之后的非運(yùn)動(dòng)中斷是判斷跌倒是否發(fā)生的第三個(gè)依據(jù)。非運(yùn)動(dòng)中斷的主要任務(wù)如下:
a)、cc2530檢索fifo緩存中最后0.5秒鐘的數(shù)據(jù),并計(jì)算它們的平均值作為檢測(cè)對(duì)象身體姿勢(shì)的最終值;
b)、在活動(dòng)中斷產(chǎn)生2秒鐘后,如果發(fā)生非運(yùn)動(dòng)狀態(tài)斷言,算法進(jìn)入f4。
5、f4:比較身體姿勢(shì)的初始值與最終值。跌倒之后,監(jiān)測(cè)對(duì)象會(huì)發(fā)生身體翻轉(zhuǎn)等運(yùn)動(dòng),因此人體的方向會(huì)與初始狀態(tài)不同。此時(shí),跌倒后非運(yùn)動(dòng)狀態(tài)下的3軸加速度、角速度數(shù)值與初始狀態(tài)下數(shù)值不同。因此,可以依據(jù)f3獲得的檢測(cè)對(duì)象身體姿勢(shì)的最終值與f2獲得的初始值對(duì)比值作為檢測(cè)是否跌倒的第4個(gè)依據(jù)。此狀態(tài)的主要任務(wù)如下:
a)、計(jì)算身體姿勢(shì)的最終值與初始值之間的差值,若差值大于設(shè)定閾值(例如,加速閾值通常為0.5g),系統(tǒng)產(chǎn)生跌倒警報(bào),并將活動(dòng)中斷設(shè)置為使能狀態(tài),算法進(jìn)入f5;
b)、將非活動(dòng)中斷的檢測(cè)時(shí)間設(shè)成10秒,進(jìn)而判斷檢測(cè)對(duì)象跌倒后是否存在較長(zhǎng)時(shí)間無法運(yùn)動(dòng)的狀態(tài);
c)、若在f4時(shí),系統(tǒng)再次檢測(cè)到活動(dòng)中斷,這表明跌倒撞擊給檢測(cè)對(duì)造成的傷害較小,不影響其正常生活,檢測(cè)對(duì)象的跌倒地否則算法進(jìn)入f0。
6、f5階段:報(bào)警狀態(tài)。
a)、cc2530控制蜂鳴器產(chǎn)生蜂鳴報(bào)警;
b)、cc2530通過內(nèi)置zigbee模塊將檢測(cè)對(duì)象跌倒?fàn)顟B(tài)發(fā)送給zigbee接收端主機(jī),以便作進(jìn)一步的處理。