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

典型簡單手勢喚醒便攜設備最佳設計方案

突發奇想的手勢控制便攜設備的設計方案

如何通過PIR傳感器和Arduino Nano等簡單組件制作手勢檢測器
通過用簡單的手和身體運動控制設備及克服傳統手勢的局限性

評論