本文討論了使用非常基本的手勢識別形式喚醒基于觸摸屏的設(shè)備(如平板電腦)的想法。討論了僅使用接近傳感器實(shí)現(xiàn)這一點(diǎn)的幾個想法。其中包括對物理布局、速度限制、檢測閾值的考慮以及高級系統(tǒng)集成(如上下文)的概述。還提供了一些示例代碼來說明軟件實(shí)現(xiàn)。
介紹
本文討論如何喚醒基于觸摸屏的設(shè)備,例如平板電腦...沒有觸摸。相反,您可以使用一種非常基本的手勢識別形式和一種新穎的接近傳感器。討論的主題包括物理布局、速度限制、檢測閾值、高級系統(tǒng)集成和“人為”因素。示例代碼說明了軟件實(shí)現(xiàn)。
想出一些天馬行空的想法
如果您曾經(jīng)在烹飪時使用過觸摸屏設(shè)備,您可能會注意到遵循設(shè)備中的食譜并不像看起來那么容易。精通技術(shù)的廚師,比如你,喜歡在做晚餐時使用平板電腦或智能手機(jī)來參考食譜。“很好,”你說,“但這有什么挑戰(zhàn)性的呢?”手持設(shè)備通常會在一兩分鐘后進(jìn)入睡眠狀態(tài),因?yàn)楸3制聊淮蜷_會消耗大量電量。然后,當(dāng)您想要引用某些內(nèi)容并且設(shè)備處于睡眠狀態(tài)時,您將面臨兩種選擇:要么強(qiáng)制屏幕永久保持打開狀態(tài),要么冒著用沾滿食物的手弄臟屏幕的風(fēng)險。每次必須檢查某些東西時,總是可以選擇洗手,但不斷清洗和干燥是乏味的,并且浪費(fèi)水。
這就是我問自己的地方,“我是否可以避免永久打開屏幕并避免弄臟設(shè)備的風(fēng)險?實(shí)際上,有一種方法可以同時做到這兩點(diǎn)。您可以手勢讓屏幕重新打開,而無需實(shí)際觸摸它。看起來很復(fù)雜,對吧?幸運(yùn)的是,這比聽起來更簡單。
接近接近傳感器
許多觸摸屏設(shè)備,尤其是智能手機(jī),都內(nèi)置了紅外 (IR) 接近傳感器。這些傳感器通常用于在通話期間打開和關(guān)閉屏幕,從而防止將不需要的輸入應(yīng)用于手機(jī)。這款傳感器和一些巧妙的軟件設(shè)計,只需揮手即可實(shí)現(xiàn)非接觸式喚醒操作。
基本思想是當(dāng)設(shè)備處于睡眠狀態(tài)時,即當(dāng)其觸摸屏關(guān)閉并且應(yīng)用處理器處于低功耗模式時,讓接近傳感器“尋找”背景讀數(shù)的足夠大的變化并做出適當(dāng)?shù)姆磻?yīng)。這幾乎正是接近傳感器在通話期間關(guān)閉屏幕的方式。在我們的應(yīng)用程序中,數(shù)據(jù)的解釋略有不同。
首先記下傳感器讀取的“正常”背景計數(shù)量。這可能是零計數(shù),盡管在適用的情況下考慮系統(tǒng)偏移(例如,反向散射或串?dāng)_)很有用。然后將其設(shè)置為在信號爬過設(shè)置的閾值時觸發(fā)中斷或向應(yīng)用處理器發(fā)送信號。這將導(dǎo)致系統(tǒng)重新聯(lián)機(jī)并打開屏幕。總體而言,這非常簡單,可以通過環(huán)境光和紅外接近傳感器來實(shí)現(xiàn)。
本演示使用MAX44000,每1.56ms讀取一次接近讀數(shù),或每100ms慢至10ms(與環(huán)境光傳感器交錯時)。假設(shè)最大檢測范圍為15cm,LED的輻射角為±22°,則覆蓋區(qū)域約為5cm2或約35.0cm寬。必須至少對在此屏幕區(qū)域中移動的目標(biāo)進(jìn)行一次采樣才能看到。因此,在最慢和最低功率的采樣速度中,可以可靠地感知或“拾取”的最快手勢約為53.<>mps。我們還假設(shè)傳感器只需要感應(yīng)一個高于閾值的樣本,然后識別通過覆蓋區(qū)域的簡單目標(biāo)。
一切都在手腕上...
作為一種理論方法,這非常簡單。當(dāng)設(shè)備進(jìn)入睡眠模式時,將其接近傳感器設(shè)置為掃描環(huán)境,并在檢測到目標(biāo)時發(fā)送中斷,由信號移動到預(yù)設(shè)閾值以上指示。只需通過I2C接口反復(fù)輪詢傳感器即可完成此操作。不幸的是,這也會消耗比大多數(shù)運(yùn)營商想要的更多的電力。
這是接近傳感器的特定功能變得最重要的一點(diǎn)。MAX44000傳感器設(shè)計用于使應(yīng)用處理器更省力(和更低功耗)。
通過使能MAX44000的內(nèi)部接近中斷(寄存器1x0中的位01),可以將喚醒門限寫入內(nèi)部寄存器(0x0B和0x0C)。當(dāng)鄰近讀數(shù)超過此閾值時,將引發(fā)中斷標(biāo)志。這將MAX44000的/INT引腳驅(qū)動為低電平,表示外線中斷。當(dāng)應(yīng)用處理器看到這條線路被驅(qū)動得很低時,可以喚醒它以使設(shè)備脫離其低功耗狀態(tài)并使屏幕重新聯(lián)機(jī),或者它可以執(zhí)行任何其他需要執(zhí)行的操作。
...但是,我們不要揮手通過這個
正如通常的那樣,實(shí)際應(yīng)用并不像理論那么容易。不幸的是,免提喚醒并不像尋找一個高于閾值的樣本那么簡單。相反,在嘗試實(shí)現(xiàn)此設(shè)計時,需要考慮幾個因素。
信號電平和布局
也許最關(guān)鍵的考慮因素是選擇用于觸發(fā)喚醒條件的信號電平。在系統(tǒng)的響應(yīng)能力及其對錯誤檢測的免疫力之間存在著重要的權(quán)衡。將閾值設(shè)置為低可以更輕松地檢測輸入(例如,揮手),但會增加瞬態(tài)噪聲或入射運(yùn)動錯誤檢測的風(fēng)險。相反,過高的閾值幾乎肯定會將錯誤檢測的可能性降低到零,但它也可能導(dǎo)致系統(tǒng)只能檢測到非常接近的目標(biāo),甚至對大多數(shù)輸入(例如,您瘋狂的揮手)沒有反應(yīng)。
解決這個問題的最佳方法是,首先,減輕系統(tǒng)中的噪聲量。這可以通過光學(xué)解決方案或仔細(xì)的電氣布線和元件放置來完成。通過降低本底噪聲,可以減少錯誤檢測的幾率。接下來,選擇一個“平均”檢測距離(例如,4cm到5cm),并使用基準(zhǔn)目標(biāo)測量信號。18%的灰卡是理想的。請注意,這似乎很明顯,但如果應(yīng)用在傳感器前面使用深色玻璃,則應(yīng)在該玻璃就位的情況下進(jìn)行測量。測量的信號電平可用作設(shè)置閾值的最佳猜測。一個好的規(guī)則是將級別設(shè)置為滿量程的 8% 到 15%,盡管您的級別可能會有所不同。
MAX44000傳感器的接近門限寄存器允許根據(jù)上述實(shí)驗(yàn)設(shè)置喚醒門限。圖1顯示了18%灰卡的信號與距離的關(guān)系圖,驅(qū)動電流為100mA,傳感器前面沒有玻璃。藍(lán)線是喚醒閾值的可能選擇。
圖1.距離與信號強(qiáng)度的關(guān)系,采用MAX44000接近傳感器,18%灰卡,100mA電流,無玻璃。
噪聲和低通濾波
如果噪聲仍然是一個問題,則可以使用低通濾波器來清理信號。MAX44000有兩種方法可以做到這一點(diǎn),因?yàn)樗€有幾位在引發(fā)中斷標(biāo)志之前使能閾值保持。此設(shè)置要求鄰近讀數(shù)保持在設(shè)定數(shù)量的樣本的閾值之外,可用于減少噪聲的影響。
一種稍微復(fù)雜的方法涉及將傳感器的讀數(shù)存儲在數(shù)據(jù)隊(duì)列中,然后在軟件中對其應(yīng)用定制的FIR濾波器。不幸的是,這種方法有一個缺陷。如果無法提高接近傳感器的采樣率,則可以通過傳感器的視野滑動手并仍被檢測到的速率會降低。100ms有效采樣率特別容易受到此影響。使用持久性閾值時,這種減少的檢測量可能高達(dá) 16 倍(盡管 4 倍持久性應(yīng)該足夠了)。
波速
這就引出了我們下一個考慮因素,波速。最大速度首先由傳感器的視野決定;第二,波與傳感器的距離;第三,采樣率;第四,門檻水平。確定前兩個標(biāo)準(zhǔn)是顯而易見的:傳感器可以看到的角度,加上目標(biāo)與傳感器的距離,可以與一些基本的三角函數(shù)一起使用,以計算目標(biāo)在傳感器試圖拾取目標(biāo)時可以行進(jìn)的距離。例如,如果傳感器的視角總計為 30 度,有效范圍最大為 10 厘米,則目標(biāo)可以在傳感器上方移動 5.35 厘米,但仍能被看到。這是一個約78cm2的覆蓋區(qū)域。這個線性距離,加上采樣率,意味著速度限制。具體來說,如果采樣率為T,則目標(biāo)必須穿過不小于T的可見區(qū)域。例如,如果T為100ms(MAX44000最慢速率),則按照前面的示例,理論上允許的最大速度為1mps。(這實(shí)際上非常快。您可能希望捕獲多個樣本以確認(rèn)評估,因此此速度限制可能會降低。
檢測閾值在允許的最大速度中也起著一定的作用。通常,閾值越低,可以拾取的手勢就越快。如上所述,應(yīng)仔細(xì)選擇此低閾值以避免錯誤檢測。
“人”因素
此應(yīng)用程序受制于人手和揮舞它的人的不一致。因此,設(shè)計應(yīng)該涉及用例,以確定典型用戶在屏幕前移動手的速度,他們與屏幕的距離以及他們是否戴著手套。與設(shè)備的這種交互也可能因智能手機(jī)、平板電腦或汽車儀表板上的某些應(yīng)用程序而異。最終,應(yīng)用程序必須在設(shè)計過程中考慮這些用戶界面和體驗(yàn)變量。
還有最后一件事需要考慮,什么時候波浪不是波浪?更具體地說,設(shè)備如何知道接收到的信號是來自揮手還是其他簡單的動作,例如放置在外殼內(nèi);口袋或背包,還是面朝下放在某個表面上?我們需要面對事實(shí)——這個問題沒有簡單的答案,除非為設(shè)備提供上下文。如何做到這一點(diǎn)完全是另一回事。
最后,您可以選擇僅在觸摸屏設(shè)備運(yùn)行某些應(yīng)用程序時實(shí)現(xiàn)此喚醒解決方案,也可以要求用戶啟用它。此外,其中許多設(shè)備都有加速度計,可以告訴設(shè)備何時面朝下躺著。如果用戶手動將設(shè)備置于睡眠狀態(tài)(例如,當(dāng)設(shè)備關(guān)閉時),也可以禁用該功能。
自己嘗試一下
為方便起見,本文附有三段示例代碼。第一種方案通過手動檢查MAX44000的接近讀數(shù)來實(shí)現(xiàn)該喚醒方案的概念簡單版本。第二個代碼在第一個代碼的基礎(chǔ)上擴(kuò)展,并實(shí)現(xiàn)前面討論的篩選概念。最后一個代碼顯示了利用MAX44000的中斷功能進(jìn)行喚醒的快速方法。
審核編輯:郭婷
-
傳感器
+關(guān)注
關(guān)注
2550文章
51035瀏覽量
753081 -
寄存器
+關(guān)注
關(guān)注
31文章
5336瀏覽量
120230 -
觸摸屏
+關(guān)注
關(guān)注
42文章
2301瀏覽量
116119
發(fā)布評論請先 登錄
相關(guān)推薦
評論