加速度計姿態與運動檢測
加速度傳感器可以用來檢測物體的加速度,這個加速度包括了物體本身運動的加速度以及由于重力產生的加速度,前者主要用于檢測物體的運動,而后者主要用于檢測物體的姿態。
我們在上一篇里面詳細介紹了加速度計的關鍵性能指標以及應用選型,本篇中我們會介紹如何通過加速度計內部集成的功能實現更理想的超低功耗電池供電設備的姿態與運動檢測,以便能更好的平衡性能與耗電這個電池供電設備的重要需求。
軟的還是硬的,電池供電物聯網設備設計初始的抉擇
典型的電池供電的物聯網設備一般包含了感知單元(各種傳感器),邊緣計算單元(微控制器),無線連接單元(藍牙BLE,NBIOT,LPWLAN等)以及相應的人機界面和電源管理部分,電池視使用場景需要工作十年或者數天,傳感器本身的超低功耗以及數據處理的超低功耗有助于延長電池壽命,減少帶寬用量并因此降低成本,是智能物聯網設備方案設計中的重要考量。
圖1. 典型物聯網系統框圖
電池供電的物聯網產品,部分采用不可充電的紐扣電池,而部分需要更強運算功能的需要采用可充電鋰電池,在有限的電池資源下如何延長電池壽命,對于傳感器部分,常用的方式通常有兩種:
● 采用超低功耗的微處理器,通過利用傳感器本身自帶的FIFO功能,減少微處理器周期喚醒的次數和喚醒時間。
● 利用傳感器本身的搭載的低功耗邊緣計算功能,最大限度的降低微處理器的功耗。
圖2. 常用電池電壓和容量
以上兩種方式取決于系統的需求,得益于微處理器能耗比的提高特別是近年來亞閾值電壓(低于0.5V)微處理器的推廣以及傳感器Always on需求下的大容量FIFO的普及,純軟件的方式,可以在保證低功耗的情況下靈活處理數據應對需求的變化和算法的改進。而針對特定需求在傳感器內部采用硬件實現的功能,比如靜止檢測、運動檢測、屏幕翻轉、失重、位置識別、單雙擊,計步,抬手亮屏,睡眠監測等等,用戶只需簡單配置算法對應的寄存器即可開始檢測,一旦檢測到目標事件,傳感器通過中斷管腳喚醒微處理器進行相應的處理,這種方式可以用戶無需自行開發驗證算法,可以更簡便的使用傳感器實現相應的功能,并能獲得更低的功耗。
下圖解釋了微處理器配合加速度計的32級FIFO進行雙擊檢測和微處理器配合硬件雙擊檢測的加速度計的工作時序,由于加速度計硬件實現雙擊檢測,微處理器只需要在獲得加速度計中斷后很短的時間確認,而無需周期喚醒去讀取FIFO數據并進行雙擊的計算判別。
圖3. 雙擊FIFO模式和中斷模式處理器工作時序
上海矽睿科技的加速度傳感器可以提供靜止檢測、運動檢測、屏幕翻轉、位置識別、單雙擊,計步,抬手亮屏等等功能,我們將針對姿態和運動檢測需要的運動檢測,靜止檢測以及用于無按鍵人界界面響應的雙擊進行介紹,并補充如何利用這些硬件特性配合微處理器軟件在低功耗下更好的檢測姿態的改變以及位移的改變。
圖4. 雙擊/計步器/抬手亮屏功耗對比
運動和靜止檢測
加速度計的運動和靜止檢測可以判定搭載加速度計的物件是靜止的,還是從靜止轉換到移動狀態,以及是如何移動的,物體感受到的震動的方式,物體的姿態是什么樣的,以及物體被旋轉了多少角度或者被移動了多遠的距離。所有的方向、搖晃、單擊、雙擊、下落、傾斜、運動、定位、沖擊的識別都可以依據加速度計的相關數據來判定。
加速度計的運動狀態檢測常見的用途有:
● 檢測由靜到動,比如車輛防盜系統中可以用加速度計判定異常的震動;電表水表汽表檢測非法打開測量設備;手機里面依據震動加上角度判斷識別手機是否被用戶拿起了;車載視頻監控檢測到車輛啟動自動錄像操作,遙控器被拿起后進入快速連接狀態等等;
● 檢測由動到靜,主要是用于依靠這個狀態信息進行相應的控制,比如玩具如果在設定時間內是靜止的,自動關機節省電源等等;
● 檢測動的方式,比如TWS耳機或者電子煙上使用敲擊的方式來實現無按鍵控制,比如計步檢測,撞擊檢測,雙擊實現類似電源開關或者打開費電的射頻單元等等。
運動檢測(motion detection)主要包含了Anymotion detection(有效運動檢測),Signification Motion Detection(大幅度有效運動檢測),no motion(靜止檢測)以及Tap(單擊/雙擊/三擊),Pedometer(計步器) 。
除了Pedometer(計步器)之外,其他的幾種運動檢測都依賴于加速度計在相鄰兩個時間點的變化值,實現的計算量很小,功耗很低,另外由于加速度計在相鄰兩個時間點的間隔時間很短(4ms~100ms),由于重力產生的加速度不會快速變化,因此信號斜率檢測的方式對于設備的初始姿態不敏感,而且對于芯片本身的零偏不敏感,而且可以指定任意的XYZ軸作為檢測軸,是一種很方便高效的檢測方式。
下圖為Anymotion detection(有效運動檢測),no motion(靜止檢測)的示意圖。
圖5. Anymotion detection 時序圖
斜率定義為兩個相鄰時間點的加速度計值:Slope(t2)=(acc(t2)?acc(t1)),輸入允許是XYZ的任意一軸或者多軸的組合,需要設置斜率的閾值(Threshold)以及超過該閾值需要持續的時間(Duration),如果芯片檢測到符合這個設置的波形,將會提供一個中斷給微處理器,微處理器可以通過讀取相關的中斷寄存器確認是Anymotion detection中斷,并可以讀取狀態寄存器獲取下面信息:
1) 最先滿足觸發條件的是哪個軸 ;
2) 觸發的信號是正方向的還是負方向的。
閾值(Threshold)與持續時間(Duration)的設置依賴于芯片的ODR,對于Anymotion detection的檢測,可以以較低的ODR實現,而較低的ODR可以獲得良好的功率控制。Duration可以選擇的點數目最多4個點,閾值最小為16LSB(3.9mg@FS+/-2G),閾值最大為4G@FS=+/-8G,因此該檢測器可以檢測很小的運動,也可以設置為檢測很強烈的撞擊,可以根據應用的需求進行相應的設置。
no motion detection(靜止檢測)的設置與Anymotion detection的設置類似,需要使能檢測軸,設置閾值以及檢測時間,任何一個軸滿足條件后,都會有no motion的中斷。
圖6. QMA7981在不同模式下和ODR下的功耗
Signification Motion Detection(大幅度有效運動檢測)是Anymotion detection的加強版,主要應用于持續的震動檢測場景,以排除偶爾的震動導致的系統喚醒。取決于應用類型,這個大幅度有效運動檢測可以直接使用加速度計內置的Signification Motion Detection亦或計步器數據。
圖7. Signification Motion Detection時序圖
圖7為Signification Motion Detection(大幅度有效運動檢測)的時序圖,檢測到Anymotion 后,間隔T-skip時間后,如果在一個設定的檢測時間內又有Anymotion信號,則認為是Significant Motion。
利用加速度計響應敲擊動作來做人機界面控制或者系統功耗管理也是一種常用的方式,考慮到系統的容錯性和易使用性,雙擊和三擊是較常用的操作。
圖8. TAP時序圖
TAP有幾個重要的參數:
● ShockTime:在該時間內,加速度計的斜率必須超過閾值Shock Threshold。
● QuietTime:在該時間內,加速度計的斜率必須小于閾值Quiet Threshold。
對于雙擊,還需要保證后面的一擊出現的時間必須在Duration time之內。由于加速度計對于敲擊的響應,與設備的外型和敲擊動作有關,因此不同的設備,有些參數需要做細微的調整(比如TWS耳機的敲擊的加速計輸出值要遠大于手機敲擊時加速度計的輸出值)。常用的設置如下:
姿態與位移檢測
利用加速度計可以得到準確的靜態姿態信息,利用去除重力加速度后的線性加速度分量,可以粗略的計算位移信息。在僅依靠加速度計的情況下,動態的姿態和位移的檢測的精度都是比較有限的,難點在于動態特別是快速情況下如何有效的獲取準確的重力加速度,利用多傳感器數據融合可以較好的解決這個問題,要求高的應用,可以考慮上海矽睿科技的慣性單元IMU QMI8610。
加速度計用于測量物體的姿態,主要是包括俯仰角(Pitch ,按照安卓的定義是繞X軸旋轉的角度)和橫滾角(Roll,按照安卓的定義是繞Y軸旋轉的角度),用于水平檢測或者傾斜檢測,有要求精度很高的應用如傾角儀,設備的水平檢測等,也有簡單的應用比如電子價簽需要根據擺放的方向自動旋轉屏幕,攝像頭的圖像圓轉,比如車輛的傾倒檢測,上坡檢測,設備的姿態變化的識別也可以用于無按鍵模式下的輸入,用于取代低功耗磁傳感器的開關作用。
圖9. 安卓Pitch/Roll定義
需要準確的Pitch/Roll的角度可以按照下面的方法計算av=sqrtf(acc_data[x]*acc_data[x]+acc_data[y]*acc_data[y]+acc_data[z]*acc_data[z]);
計算 pitch 俯仰角度、roll 翻滾角度:
#define R2D 57.2957795131f
pitch = asinf(-acc_data[1]/av)*R2D;
roll = asinf(acc_data[0]/av)*R2D;
運動狀態下的姿態角的計算,需要將線性加速度去除后再進行計算,常用的方法是對加速度計數據進行低通濾波(例如gravity[x] = alpha * gravity[x] + (1 - alpha) * acc_data[x];),從而獲取與重力加速度相關的Gravity的值,然后再計算Pitch/Roll角度。在復雜運動狀態下,僅僅依靠加速度計估算線性加速度從而獲得真實的重力值,目前尚無性能特別好的辦法,要求高的可以采用IMU慣性單元做數據融合,依靠陀螺儀數據確認夾角。(詳細軟件算法包:請找QST FAE申請)
利用加速度計傳感器,測量物體沿著某個平面的移動距離,可以采用低通濾波器去除重力加速度后獲得線性加速度,然后通過對線性加速度進行二次積分獲取設備的移動位置,從而判斷設備是否被移動,在車輛的防盜應用中有應用需求,在該種應用中,考慮到加速度計的采樣速率,震動噪聲以及加速度計二次積分的誤差,需要增加一個啟動閾值判斷和終值零速判斷,從而提高精度減小誤差。
結束語
電池供電設備通過加速度計進行姿態與運動檢測,充分利用加速度傳感器內部集成的硬件算法,能更好的平衡性能與耗電這個電池供電設備的重要需求,在直接使用內部的硬件集成的算法無法實現的需求,可以通過采用硬件觸發檢測配合軟件獲取加速度傳感器的原始數據進行附加計算,通過減少微控制器喚醒的時間和頻率的方式,可以降低功耗,延長電池使用壽命。
責任編輯:gt
-
傳感器
+關注
關注
2548文章
50740瀏覽量
752144 -
物聯網
+關注
關注
2904文章
44306瀏覽量
371464 -
電池
+關注
關注
84文章
10476瀏覽量
129064
發布評論請先 登錄
相關推薦
評論