專利名稱:一種加速度傳感器傾斜動作的算法的制作方法
技術領域:
本發明屬于移動通信技術領域,具體涉及一種加速度傳感器傾 斜動作的算法。
背景技術:
在個人移動通訊技術不斷發展的環境下,現在手機對人們的作 用是越來越大,而手機的人機交換界面也做的越來越豐富,控制操 作方式也做的越來越人性化。具體到對手機的輸入控制上,現在普 遍的控制輸入方式是按鍵和屏幕觸摸。然而,越來越人性化的控制 方式也不斷的出現,比如當在前/后切換歌曲時希望使用輕輕左/右 傾斜手機的智能方式實現,要實現這樣的功能就必須使用加速度傳 感器等感應器件。
而在對加速度傳感器的實際應用中,現有的應用都是必須先保 持當前手機在水平的方向,使用當前狀態(采樣數據)作為后續動 作的原始參考狀態(原始參考數據),來判斷/定位后面的動作。 然而,這樣會出現原始參考狀態(數據)因不同的手機或不同的環 境而不匹配,造成動作無效或動作錯誤等問題,而且用戶每次使用 時都首先要保持手機水平,在使用中造成很多不便。
發明內容
為了解決上述使用加速度傳感器存在的問題,為此,本發明的 目的在于提供一種加速度傳感器傾斜動作的算法,具體的實現是對 加速度傳感器的軟件低層驅動算法進行重寫并優化,提出一種新的運算方式。在此低層驅動的算法中,將動態的建立加速度傳感器的 動作參考狀態,然后在此參考狀態下進行后續動作的運算/判斷,而 其中,對于參考狀態的建立時間點,可以根據用戶的習慣性動作時
間和當前算法內不同的運算狀態來確定和處理;并且,進一步確定
了傾斜/晃動動作的動作完整性,具體加速度傳感器的反應過程, 排除動作誤識別的可能性。同時,軟件流程中動作消息的處理和發 送等都經過了優化改善。
本發明所提供的一種加速度傳感器傾斜動作的算法,包括下列
步驟
(1) 用戶手機傾斜動作時間模型的建立;
(2) 用戶手機傾斜動作強度模型的建立;
(3) 算法的模型建立;
(4) 算法的軟件實現。
其中,在步驟(1)中,設定三個時間參量空閑狀態下動作 檢測間隔時間;動作過程中動作有效確認間隔時間;動作過程中的 動態參考狀態復位時間。
步驟(2)中,設定下列閥值進入閥值,用以確定傾斜到何 等角度差值作為動作有效;動態歸位閥值,用以確認有效的動作歸 位,該閥值是某一動作歸位時與復位點的差值;歸位確認閥值,用 以區分某一動作是用戶無意識的傾斜或晃動,還是有意識的比較慢 的動作過程。
步驟(3)中,算法的模型建立包括動作査詢調用函數的建 立,啟動系統査詢定時器,將具體算法實現函數注冊進入定時器中 斷處理函數中;在算法處理中使用虛擬按鍵的方式向上層發送動作消息;算法中的定時器的中斷時間受當前動作狀態的改變而重新設 定中斷響應時間,用于切換不同的檢測功能需要;使用傾斜/翻轉 一歸位的完整性動作確認動作完成度;消息以動作整體完成才發 送,模擬按鍵/釋放鍵的動作操作消息發送。
步驟(4)中,算法的軟件實現包括下列步驟-
(a) 定時器中斷函數進入,讀取當次加速度傳感器的采樣值并 記錄;
(b) 判斷是否上一中斷進來已經發送了動作消息,若是,將匹 配的動作消息以虛擬按鍵的形式發送,同時重置參考閥值為檢測進 入閥值,重置定時器查詢間隔為空閑查詢間隔時間;若不是,將采 樣值與復位狀態值的差值與進入閥值進行比較,并確認當前動作狀態 是否為IDLE狀態;如果該差值小于進入閥值并且當前動作作態為IDLE 時,再判斷采樣值與復位狀態值的差值是否小于動態歸位閥值,如果 是,將當前狀態轉變成復位狀態值,否則退出中斷處理返回;
(c) 若采樣值與復位狀態值的差值大于進入閥值或當前動作狀態 為非IDLE,則按順序進入當次動作判別流程處理;
(d) 判斷當前動作是否跟上次中斷的動作一樣并不為空,若非, 記錄當前動作,清空參考狀態復位時間記錄;若是,將參考狀態復 位時間記錄進行累加,并判斷是否大于參考狀態復位時間;
(e) 若大于參考狀態復位時間,清空參考狀態復位時間記錄,將 當前狀態作為復位狀態值,重置參考閥值為檢測進入閥值,重置定時 器査詢間隔為空閑查詢間隔時間后退出中斷處理返回;若小于參考狀 態復位時間,重置參考閥值為歸位確認閥值,重置定時器查詢間隔為 動作確認間隔時間;
(f) 根據按鍵匹配相應的虛擬按鍵消息用于后面的消息發送;
(g) 判斷是否虛擬按鍵消息為非空,且不等于上一中斷動作狀態 和屬于釋放類消息,若非,記錄當前消息后退出中斷返回;若是則將 虛擬按鍵消息以鍵消息發送,,并同時記錄已發送信息,退出中斷處理返回。
圖1是一般加速度傳感器傾斜動作的算法流程圖。
圖2是本發明方法所提供的加速度傳感器傾斜動作的算法流程圖。
具體實施例方式
本發明提供了一個優選實施例來對本發明方法作進一步說明, 本發明實施例是在展訊通信有限公司手機的GSM基帶芯片6600D芯 片平臺上進行的,平臺軟件是使基于該6600D平臺的應用軟件。使 用的加速度傳感器是MEMSIC, Inc公司的MXC6202xJ/K型號,需要 更換IC,沒有特別的要求,只要同是以加速度變化量測試就可以。
本發明所提供的一種加速度傳感器傾斜動作的算法,包括如下 步驟
(1) 用戶手機傾斜動作時間模型的建立;
(2) 用戶手機傾斜動作強度模型的建立;
(3) 算法的模型建立;
(4) 算法的軟件實現。 下面結合附圖對各個步驟進行詳細說明。
(1)用戶手機傾斜動作時間模型的建立
由于加速度傳感器是用于檢測握于用戶手中的手機的傾斜/翻 轉等動作的,而這些動作都有一個動作作用的時間參量。其中有三個時間參量在本發明所提供的算法判斷中處于重要位置。這三個時 間參量是空閑狀態下動作檢測間隔時間a,動作過程中動作有效
確認間隔時間b,和動作過程中的動態參考狀態復位時間c。
空閑狀態下動作檢測間隔時間a:系統程序通常采用定時器 (TIMER)方式來檢測手機是否有相關的動作,這是一個在空閑狀 態下定時查詢是否有動作的方法。查詢的間隔時間應當適宣,如果 查詢的間隔時間太短會對系統資源造成較大的負擔或消耗,不利于 系統的穩定運行和其他任務的正常工作,而如果間隔時間太長,則 會對一些快速的動作檢測不到,造成系統對動作的反應不靈敏。手 機所采用的加速度傳感器一般是以約為17Hz的頻率對其內部的傳 感器件進行采樣的,因此它的采樣間隔是50ms左右;而實驗證明, 手機用戶正常快速的傾斜/翻轉手機的動作時間是1/3S到1.2s之 間,結合傳感器件的采樣率與手機用戶的動作時間,本實施例中, 確定査詢的間隔時間是采樣間隔的5倍,即250ms (50msX5)。因 此,空閑狀態下動作檢測間隔時間a=250ms。這樣可以在保證檢測 到用戶動作的情況下最大程度地降低查詢動作對系統資源的消耗。
動作過程中動作有效確認間隔時間b:該時間是當檢測到有動 作進行時,用于檢測動作是否到位以及動作是否在正常時間內完成 的確認動作是否有效的間隔時間。從手機一般所采用的加速度傳感 器芯片的規格說明(SPEC)上可以得出,該加速度傳感器大約50ms 進行一次采樣,即每隔50ms檢測一次。因此為了及時在某一動作 過程中檢測到該動作的變化,本實施例中,設定該動作過程中動作 有效確認間隔時間b=50ms。
動作過程中的動態參考狀態復位時間c:該動態參考狀態復位 時間是動態建立加速度傳感器的動作參考狀態的關鍵參量。如果該 動態參考狀態復位時間c太短,那么正常的動作就會被動態的不斷 修改參考狀態,參考狀態跟隨著動作變化而變化,將會造成得不到動作信息或動作反饋很不靈敏的問題;而如果該動態參考狀態復位 時間c太長,那么當用戶使用手機在某一動作狀態下很長時間再歸 位后還會產生動作消息,這樣就偏離了采用加速度傳感器的初衷以 及用戶的習慣動作。所以,需要選擇合適的動態參考狀態復位時間 c。通過對用戶的一個動作時間進行實驗,可以得出,用戶的一個 正常動作過程一般是1/3s到1. 2s之間,而且由TRACE的跟蹤信息 可以知道,采樣得到的數據的停頓(變化值少于100)時間不超過 150ms,因此,當在某一動作狀態下不超過1/2s的時間時,可以確信 當前用戶的意圖僅僅是傾斜手機而不是想有所動作或僅僅是手機 在某種外部情況下改變了位置/角度。因此,在本實施例中,設定 該動態參考狀態復位時間c二500ms。
需要指出的是,對于參考狀態的建立時間點,可以根據用戶的 習慣性動作時間和當前算法內不同的運算狀態來確定和處理。
(2)用戶手機傾斜動作強度模型的建立
要確認為有效的動作,那么該動作的幅度或力度就必須要達到 一定的量,即達到一定的強度。這個強度的量可以從加速度傳感器 采樣得到,由于該強度本身是由加速度引起的電壓的變化,被檢測 到采樣后經ADC轉化成數值,該數值與初始狀態的參量相差就代表 了當前手機的傾斜等變化的幅度,而正負代表了方向。使用TRACE 等跟蹤工具將一般動作時經ADC轉化后的數值進行分析和比較,確 定當傾斜到一定角度差值作為動作有效的進入閥值,經過反復的測 試,在本發明的實施例中,選取250 (數值)作為進入閥值。當動 作有效時,在確認動作有效的檢測中,需要設定一個當動作歸位時 與復位點(初始參考狀態點)的差值作為確認歸位有效的動態歸位 閥值,而這個動態歸位閥值必須要比進入閥值低且有一定的余度, 經過實驗測試,在本實施例中,該動態歸位閥值確定為200(數值)。 此外,在手機處于空閑狀態中時,手機的輕微傾斜或晃動也會引起加速度的變化,因此必須要設置一個歸位確認閥值用做區分該動作 僅僅是無意識的傾斜/晃動,還是有意識的比較慢的動作過程。該 歸位確認閥值確定了是否將某一改變的動作狀態作為復位點還是 等待該動作繼續下去引起動作執行。根據上述用戶動作的實驗,在
不影響動作響應的情況下,本實施例中確定該歸位確認閥值為100
(數值)。
(3) 算法的模型建立
動作查詢調用函數的建立,啟動系統查詢定時器,將處理函數 (具體算法實現函數)注冊進入定時器中斷處理函數中。在算法處 理中使用虛擬按鍵的方式向上層發送動作消息。算法中的定時器的 中斷時間受當前動作狀態的改變而重新設定中斷響應時間,用于切 換不同的檢測功能需要。使用傾斜/翻轉一歸位的完整性動作確認 動作完成度。消息以動作整體完成才發送,模擬按鍵/釋放鍵的動 作操作消息發送。
(4) 算法的軟件實現
圖l所示的是一般加速度傳感器傾斜動作的算法流程圖。首先 讀取當次加速度傳感器的采樣值并記錄,判斷是否上一中斷進來已 經發送了動作消息,若是,將匹配的動作消息以虛擬(UP)按鍵的 形式發送上去,讓系統按鍵處理得以匹配執行;若不是,將采樣值 與復位狀態值的差值與進入閥值進行比較,并確認當前動作狀態是否 為IDLE狀態?如果差值小于閥值并且當前作態為IDLE時,退出中斷 處理返回(IRETURN),如果采樣值與復位狀態值的差值大于進入閥 值或當前動作狀態為非IDLE,那么將按順序進入當次動作判別流程處 理。記錄當前動作,并根據動作匹配相應的虛擬按鍵消息用于后面的 消息發送。隨后判斷是否虛擬按鍵消息為非空?若非,記錄當前消息 后退出中斷返回;若是,則將虛擬按鍵消息以(DOWN)鍵消息發送,
ii并同時記錄已發送信息,退出中斷處理返回(IRETU頭)。
圖2所示的是本發明所提供的加速度傳感器傾斜動作的算法流
程圖,具體實現流程如下
定時器中斷函數進入,首先讀取當次加速度傳感器的采樣值并 記錄,判斷是否上一中斷進來已經發送了動作消息,若是,將匹配
的動作消息以虛擬按鍵(UP)的形式發送上去,讓系統按鍵處理得
以匹配執行,同時重置參考閥值為檢測進入閥值,重置定時器査詢
間隔為空閑查詢間隔時間;若不是,將采樣值與復位狀態值的差值 與進入閥值進行比較,并確認當前動作狀態是否為IDLE狀態?如果該 差值小于進入閥值并且當前動作作態為IDLE時,再判斷采樣值與復位 狀態值的差值是否小于動態歸位閥值,如果是,將當前狀態轉變成復 位狀態值,否則退出中斷處理返回(IRETURN)。若采樣值與復位狀 態值的差值大于進入閥值或當前動作狀態為非IDLE,那么都將按順序 進入當次動作判別流程處理,如圖2所示,判斷是否左/右傾斜動作并 記錄,判斷是否左/右傾斜動作被釋放并記錄,判斷是否上/下傾斜動 作并記錄,判斷是否上/下傾斜動作被釋放并記錄。
然后需要判斷當前動作是否跟上次中斷的動作一樣并不為空,若 非,記錄當前動作,清空參考狀態復位時間記錄;若是,將參考狀 態復位時間記錄進行累加,并判斷是否大于參考狀態復位時間?若 大于參考狀態復位時間,則需要清空參考狀態復位時間記錄,將當 前狀態作為復位狀態值,重置參考閥值為檢測進入閥值,重置定時器 査詢間隔為空閑査詢間隔時間等工作后退出中斷處理返回
(IRETURN);若小于參考狀態復位時間,則返回到上述記錄當前動 作的下一步,即重置參考閥值為歸位確認閥值,重置定時器查詢間隔 為動作確認間隔時間,還要根據按鍵匹配相應的虛擬按鍵消息用于后 面的消息發送。隨后判斷是否虛擬按鍵消息為非空,且不等于上一中 斷動作狀態和屬于釋放類消息?若非,記錄當前消息后退出中斷返 回;若是則將虛擬按鍵消息以(D0TOO鍵消息發送,,并同時記錄已發 送信息。退出中斷處理返回(IRETURN),完成整個的算法處理。綜上所述僅為本發明的較佳實施例而已,并非用來限定本發明的實 施范圍。即凡依本發明申請專利范圍的內容所作的等效變化與修飾,都 應為本發明的技術范疇。
權利要求
1.一種加速度傳感器傾斜動作的算法,其特征在于,該算法包括下列步驟(1)用戶手機傾斜動作時間模型的建立;(2)用戶手機傾斜動作強度模型的建立;(3)算法的模型建立;(4)算法的軟件實現。
2. 如權利要求1所述的加速度傳感器傾斜動作的算法,其特征 在于,所述步驟(1)中,設定三個時間參量空閑狀態下動作檢 測間隔時間;動作過程中動作有效確認間隔時間;動作過程中的動態參考狀態復位時間。
3. 如權利要求2所述的加速度傳感器傾斜動作的算法,其特征 在于,所述步驟(2)中,設定下列閥值-進入閥值,用以確定傾斜到何等角度差值作為動作有效;動態歸位閥值,用以確認有效的動作歸位,該閥值是某一動作歸 位時與復位點的差值;歸位確認閥值,用以區分某一動作是用戶無意識的傾斜或晃動, 還是有意識的比較慢的動作過程。
4. 如權利要求3所述的加速度傳感器傾斜動作的算法,其特征 在于,所述步驟(3)中,算法的模型建立包括動作查詢調用函 數的建立,啟動系統查詢定時器,將具體算法實現函數注冊進入定 時器中斷處理函數中;在算法處理中使用虛擬按鍵的方式向上層發 送動作消息;算法中的定時器的中斷時間受當前動作狀態的改變而重新設定中斷響應時間,用于切換不同的檢測功能需要;使用傾斜 /翻轉--歸位的完整性動作確認動作完成度;消息以動作整體完成 才發送,模擬按鍵/釋放鍵的動作操作消息發送。
5. 如權利要求4所述的加速度傳感器傾斜動作的算法,其特征 在于,所述步驟(4)中,算法的軟件實現包括下列步驟(a) 定時器中斷函數進入,讀取當次加速度傳感器的采樣值并記 錄;(b) 判斷是否上一中斷進來已經發送了動作消息,若是,將匹配 的動作消息以虛擬按鍵的形式發送,同時重置參考閥值為檢測進入 閥值,重置定時器查詢間隔為空閑査詢間隔時間;若不是,將采樣 值與復位狀態值的差值與進入闊值進行比較,并確認當前動作狀態是 否為IDLE狀態;如果該差值小于進入閥值并且當前動作作態為IDLE時,再判斷采樣值與復位狀態值的差值是否小于動態歸位閥值,如果 是,將當前狀態轉變成復位狀態值,否則退出中斷處理返回;(c) 若采樣值與復位狀態值的差值大于進入閥值或當前動作狀態為 非IDLE,則按順序進入當次動作判別流程處理;(d) 判斷當前動作是否跟上次中斷的動作一樣并不為空,若非,記 錄當前動作,清空參考狀態復位時間記錄;若是,將參考狀態復位 時間記錄進行累加,并判斷是否大于參考狀態復位時間;(e) 若大于參考狀態復位時間,清空參考狀態復位時間記錄,將 當前狀態作為復位狀態值,重置參考閥值為檢測進入閥值,重置定時 器查詢間隔為空閑查詢間隔時間后退出中斷處理返回;若小于參考狀 態復位時間,重置參考閥值為歸位確認閥值,重置定時器查詢間隔為 動作確認間隔時間;(f) 根據按鍵匹配相應的虛擬按鍵消息用于后面的消息發送;(g) 判斷是否虛擬按鍵消息為非空,且不等于上一中斷動作狀態和 屬于釋放類消息,若非,記錄當前消息后退出中斷返回;若是則將虛 擬按鍵消息以鍵消息發送,,并同時記錄已發送信息,退出中斷處理返 回。
6. 如權利要求2, 4,或5所述的加速度傳感器傾斜動作的算法, 其特征在于,空閑狀態下動作檢測間隔時間為250ms;動作過程中動作有效確認間隔時間為50ms;動作過程中的動態參考狀態復位時 間為500ms 。
7. 如權利要求3, 4,或5所述的加速度傳感器傾斜動作的算法, 其特征在于,分別設定進入閥值為250;動態歸位閥值為200;歸位 確認閥值為IOO。
8. 如權利要求6所述的加速度傳感器傾斜動作的算法,其特征在 于,分別設定進入閥值為250;動態歸位閥值為200;歸位確認閥值 為IOO。
全文摘要
本發明提供了一種加速度傳感器傾斜動作的算法,該算法包括下列步驟(1)用戶手機傾斜動作時間模型的建立,其中包括設定空閑狀態下動作檢測間隔時間,動作過程中動作有效確認間隔時間和動作過程中的動態參考狀態復位時間這三個時間參量;(2)用戶手機傾斜動作強度模型的建立,其中包括設定進入閥值,動態歸位閥值和歸位確認閥值;(3)算法的模型建立;(4)算法的軟件實現。本發明在低層驅動的算法中,動態的建立加速度傳感器的動作參考狀態,并在此動態參考狀態下進行后續動作的運算/判斷。
文檔編號G01P15/00GK101620237SQ20091005619
公開日2010年1月6日 申請日期2009年8月10日 優先權日2009年8月10日
發明者梁仲華 申請人:上海聞泰電子科技有限公司