簡(jiǎn)單手勢(shì)喚醒便攜設(shè)備的設(shè)計(jì)方案_第1頁(yè)
簡(jiǎn)單手勢(shì)喚醒便攜設(shè)備的設(shè)計(jì)方案_第2頁(yè)
簡(jiǎn)單手勢(shì)喚醒便攜設(shè)備的設(shè)計(jì)方案_第3頁(yè)
簡(jiǎn)單手勢(shì)喚醒便攜設(shè)備的設(shè)計(jì)方案_第4頁(yè)
簡(jiǎn)單手勢(shì)喚醒便攜設(shè)備的設(shè)計(jì)方案_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、簡(jiǎn)單手勢(shì)喚醒便攜設(shè)備的設(shè)計(jì)方案 導(dǎo)讀: 本文討論如何喚醒平板電腦等觸控裝置,無(wú)需接觸設(shè)備,而是采用基本的手勢(shì)識(shí)別及新穎的接近檢測(cè)傳感器。本文討論了相關(guān)設(shè)計(jì)的物理布局、速度限制、檢測(cè)門限、系統(tǒng)集成,以及人為因素的影響;給出了軟件實(shí)時(shí)的例程。 廚房里的突發(fā)奇想如果做飯時(shí)使用觸控設(shè)備,您可能會(huì)注意到按照設(shè)備列出的食譜烹飪并非想象得那么簡(jiǎn)單。技術(shù)達(dá)人(例如鄙人)走進(jìn)廚房時(shí),喜歡看著平板電腦或智能手機(jī)上的菜譜做飯。您可能會(huì)說(shuō):“好吧,這有什么難度?”由于屏幕始終開(kāi)啟會(huì)消耗很大電量,通常手持裝置在1、2分鐘后沒(méi)有操作時(shí)將自動(dòng)進(jìn)入休眠狀態(tài)。那么,當(dāng)您需要參照食譜時(shí),設(shè)備已進(jìn)入休眠狀態(tài)。此事,您面臨兩個(gè)選擇:

2、要么強(qiáng)制屏幕保持永久開(kāi)啟;要么用沾滿食物的手開(kāi)啟裝置,而在屏幕上留下斑斑油漬。當(dāng)然,您可以在每次查看時(shí)把手清洗干凈,但不斷重復(fù)洗手、擦干即繁瑣,又費(fèi)水。我時(shí)常問(wèn)自己:“怎樣才能既不讓屏幕始終開(kāi)啟,又不會(huì)弄臟裝置?”實(shí)際上,有一種辦法一舉兩得,即通過(guò)一個(gè)手勢(shì)(不用接觸屏幕)開(kāi)啟顯示屏。聽(tīng)起來(lái)似乎很復(fù)雜,是嗎?幸運(yùn)的是,做起來(lái)可能比聽(tīng)起來(lái)容易一些。接近檢測(cè)傳感器(傳感器資料點(diǎn)擊E訊網(wǎng))許多觸摸屏裝置,尤其是智能手機(jī),內(nèi)部已經(jīng)安裝了紅外(IR)接近檢測(cè)傳感器。這些傳感器一般在通話期間自動(dòng)打開(kāi)/關(guān)閉屏幕,以避免意外操作手機(jī)的輸入界面。這種傳感器技術(shù),加上精明的軟件設(shè)計(jì),就能實(shí)現(xiàn)利用一個(gè)手勢(shì)喚醒裝置的功

3、能。基本的設(shè)計(jì)思路是:設(shè)備進(jìn)入休眠狀態(tài)時(shí),觸摸屏關(guān)閉,應(yīng)用處理器處于低功耗模式,依靠接近檢測(cè)傳感器“觀察”背景的變化,當(dāng)接收到的信號(hào)足夠大時(shí),做出適當(dāng)反應(yīng)。這與接近檢測(cè)傳感器在通話期間關(guān)閉屏幕的功能幾乎完全相同。只是,我們的應(yīng)用對(duì)數(shù)據(jù)有了不同的解釋。首先記錄傳感器在“正?!北尘跋碌挠?jì)數(shù)值,此時(shí)得到的數(shù)值可能為零,但實(shí)際設(shè)計(jì)中需要考慮系統(tǒng)失調(diào)(例如:散射或串?dāng)_)。然后將得到的數(shù)值設(shè)置為檢測(cè)門限,當(dāng)接收信號(hào)超過(guò)門限時(shí)觸發(fā)中斷或向應(yīng)用處理器發(fā)送信號(hào),以喚醒系統(tǒng)并打開(kāi)屏幕??傮w而言,這種方法非常簡(jiǎn)單、直觀,可利用環(huán)境光檢測(cè)器和IR接近檢測(cè)傳感器實(shí)現(xiàn)。本文介紹的方案采用MAX44000,接近檢測(cè)的數(shù)據(jù)讀

4、取時(shí)間間隔可以設(shè)置在1.56ms至100ms (與環(huán)境光檢測(cè)傳感器輪流讀取數(shù)據(jù))。假設(shè)最大檢測(cè)距離為10cm,LED的輻射角為±15°,那么,可以覆蓋的面積大約為22cm2或跨距大約為5.35cm,只有該區(qū)域內(nèi)的移動(dòng)目標(biāo)才能捕捉到。由此,能夠以最慢(即最低功耗)的采樣速度可靠檢測(cè)的最快手勢(shì)動(dòng)作大約為0.53mps.在此,我們還假設(shè)傳感器只需要采集到一次高于門限的信號(hào),即可識(shí)別經(jīng)過(guò)覆蓋區(qū)域的目標(biāo)。舉手之勞理論上講,該方案的實(shí)施非常簡(jiǎn)單。當(dāng)裝置進(jìn)入休眠模式時(shí),將接近檢測(cè)傳感器置為環(huán)境掃描模式,并在檢測(cè)到目標(biāo)時(shí)發(fā)出中斷信號(hào),指示捕捉到超過(guò)預(yù)設(shè)門限的信號(hào)。可通過(guò)I2C接口輪詢傳感器

5、的狀態(tài)。不幸的是,這種方式會(huì)消耗過(guò)大功率,超出了大多數(shù)用戶的預(yù)期。這也是接近檢測(cè)傳感器的設(shè)計(jì)重點(diǎn),MAX44000傳感器能夠在許多方面擺脫應(yīng)用處理器的干預(yù),減輕處理器負(fù)荷(降低功耗)。使能MAX44000的內(nèi)部接近檢測(cè)中斷(寄存器0x01的第1位),可將喚醒門限寫(xiě)入內(nèi)部寄存器(0x0B和0x0C)。當(dāng)接近檢測(cè)傳感器的讀數(shù)超過(guò)該門限時(shí),觸發(fā)中斷標(biāo)識(shí)置位,將MAX44000的/INT引腳置為低電平。當(dāng)應(yīng)用處理器檢測(cè)到該引腳驅(qū)動(dòng)為低電平時(shí),可喚醒裝置退出低功耗模式,并打開(kāi)屏幕,或完成其它需要的動(dòng)作。但不容忽視實(shí)際應(yīng)用往往不如理論那么容易,非接觸喚醒的具體實(shí)施并非只是簡(jiǎn)單地檢測(cè)高于門限的信號(hào)。實(shí)際上,

6、具體的設(shè)計(jì)需要考慮諸多因素。信號(hào)電平與電路布局最關(guān)鍵的考慮應(yīng)該是觸發(fā)喚醒條件的信號(hào)電平,需要在系統(tǒng)響應(yīng)靈敏度與誤報(bào)概率之間進(jìn)行權(quán)衡。如果門限過(guò)低,則很容易檢測(cè)到輸入(手勢(shì)工作),但會(huì)增大瞬態(tài)噪聲或突發(fā)條件產(chǎn)生誤報(bào)的概率。反之,過(guò)高的檢測(cè)門限能夠把誤報(bào)概率降至幾乎為零,但卻只能檢測(cè)到非常接近的目標(biāo),甚至對(duì)任何輸入(即使您瘋狂晃動(dòng)手臂)都反應(yīng)遲鈍。解決這一問(wèn)題的最佳方式是:首先降低系統(tǒng)噪聲,可以通過(guò)光學(xué)方法或嚴(yán)謹(jǐn)?shù)碾娐凡季謱?shí)現(xiàn),降低的噪底有助于降低誤報(bào)概率;其次,選擇“平均”檢測(cè)距離(例如:4cm至5cm)并利用參考目標(biāo)測(cè)量信號(hào),18%的灰板比較理想,但如果觸摸屏上方安裝了黑色玻璃,測(cè)量時(shí)也應(yīng)該使

7、用這樣的玻璃,所測(cè)得的信號(hào)電平可以作為設(shè)置門限的最佳參考。通??梢宰裱@樣的原則:即將電平設(shè)置在滿幅的8%至15%,即使電平發(fā)生變化。可以按照上述經(jīng)驗(yàn)數(shù)據(jù)設(shè)置MAX44000傳感器的接近檢測(cè)門限寄存器,圖1所示為信號(hào)強(qiáng)度隨距離變化的關(guān)系曲線,采用18%灰板,驅(qū)動(dòng)電流為100mA,傳感器上方?jīng)]有玻璃罩。藍(lán)線為可以選擇的喚醒門限。 圖1. MAX44000接近檢測(cè)傳感器信號(hào)強(qiáng)度隨距離變化的關(guān)系曲線,采用18%灰板,100mA驅(qū)動(dòng)電流,沒(méi)有玻璃罩噪聲和低通濾波需要考慮噪聲問(wèn)題時(shí),可利用低通濾波器處理信號(hào);另外,MAX44000還有幾個(gè)控制位可以用作觸發(fā)中斷標(biāo)識(shí)之前的屏蔽,采用這種設(shè)置時(shí),需要檢測(cè)到一

8、定數(shù)量超出門限的采樣值時(shí)才會(huì)觸發(fā)中斷標(biāo)示,能夠在一定程度上降低噪聲的影響。一種稍微復(fù)雜的方法是將傳感器的讀數(shù)儲(chǔ)存在數(shù)據(jù)隊(duì)列中,然后利用定制的FIR軟件對(duì)其進(jìn)行濾波處理。但這種方法需要提高接近檢測(cè)傳感器的采樣速率,否則則會(huì)降低能夠捕捉到的傳感器可視范圍內(nèi)的手勢(shì)動(dòng)作速率,特別是把采樣速率設(shè)置在100ms時(shí)。利用器件的控制位屏蔽檢測(cè)時(shí),速率可最多降低16倍(通常選擇4x屏蔽即可)。手勢(shì)速度手勢(shì)動(dòng)作的快慢是我們需要考慮的另一因素。最大速度取決于:1. 傳感器的可視范圍;2. 手與傳感器之間的距離;3. 采樣率;4. 檢測(cè)門限。前兩項(xiàng)很容易確定:傳感器的檢測(cè)角度,結(jié)合傳感器與目標(biāo)之間的距離,利用基本的三

9、角形即可計(jì)算出傳感器可視范圍內(nèi)目標(biāo)的移動(dòng)距離。例如,如果傳感器的視角為30度,最大有效檢測(cè)距離10cm,那么,傳感器可視范圍內(nèi)允許的目標(biāo)移動(dòng)距離為5.35cm,覆蓋面積大約為78cm2.直線距離結(jié)合采樣率,即可決定速度限值。 具體地說(shuō),如果采樣率為T,那么目標(biāo)跨越可視區(qū)域的時(shí)間不得小于T.例如,如果T為100ms (MAX44000的最低采樣速率),那么按照上例,理論上最大允許的速率為1mps (這實(shí)際上已經(jīng)相當(dāng)快了)。您可能希望捕獲到多個(gè)采樣值來(lái)確認(rèn)觸發(fā)喚醒,這樣的話,會(huì)降低允許的速率下限。檢測(cè)門限也影響最大允許速率。一般來(lái)說(shuō),門限越低,能夠捕捉到的手勢(shì)動(dòng)作就越快。如上所述,應(yīng)謹(jǐn)慎選擇門限,

10、以免產(chǎn)生誤報(bào)。人為因素這種應(yīng)用還會(huì)受到人手以及揮手動(dòng)作等人為因素的影響。應(yīng)通過(guò)一些案例確定一般大多數(shù)人的習(xí)慣,包括他們?cè)谄聊磺皳]動(dòng)手掌的速度以及與屏幕之間的距離,另外,是否戴手套也會(huì)產(chǎn)生一定的影響。不同的應(yīng)用場(chǎng)合(不同裝置)也會(huì)影響到設(shè)計(jì)需求,例如智能手機(jī)、平板電腦或汽車儀表盤,對(duì)存在具體的設(shè)計(jì)考慮。當(dāng)然,設(shè)計(jì)過(guò)程中還應(yīng)考慮用戶界面和經(jīng)驗(yàn)參數(shù)。最后,還要對(duì)真假手勢(shì)做出判斷,即裝置需要判斷接收到的信號(hào)是來(lái)自于一個(gè)手勢(shì)動(dòng)作,還是簡(jiǎn)單的裝置移動(dòng)(例如:放置在外套、口袋或背包中,或者是屏幕朝下放置)。單純依靠上述檢測(cè)原理,很難做出正確的“真?zhèn)巍辫b別,除非在裝置內(nèi)提供更多的背景信息。關(guān)于這一問(wèn)題的討論超

11、出了本文范圍。設(shè)計(jì)中可以選擇只有裝置進(jìn)入特定的應(yīng)用程序時(shí)啟動(dòng)喚醒方案,也可以由用戶手動(dòng)操作使能。此外,許多此類裝置都有一個(gè)加速度傳感器,能夠檢測(cè)到屏幕是否背面朝下放置。如果用戶手動(dòng)將裝置置于休眠模式,則可禁用該功能(例如關(guān)機(jī)狀態(tài))。設(shè)計(jì)實(shí)例為方便起見(jiàn),本文附帶了三段演示程序代碼。第一段代碼用于手動(dòng)操作MAX44000的接近檢測(cè)數(shù)據(jù)讀取,概念上簡(jiǎn)單實(shí)現(xiàn)喚醒功能;第二段代碼在第一段的基礎(chǔ)上進(jìn)行了擴(kuò)展,增加了之前討論的濾波功能;最后一段代碼演示利用MAX44000中斷喚醒觸控裝置。示例代碼1_interrupt void TimedInterrupt( void )uint8 proximity_c

12、ounts;if ( device_status = SLEEP_MODE )/ read one byte from register 0x16proximity_counts = read_i2c_register(MAX44000_ADDR,0x16,1);if (proximity_counts >WAKEUP_THRESHOLD)device_status = WAKE_MODE;else/ do whatever it is you need to in sleep mode 示例代碼2/ example interrupt function where this might

13、 be implemented_interrupt void TimedInterrupt( void )uint8 proximity_counts;uint8 filtered_counts;if ( device_status = SLEEP_MODE )/ read one byte from register 0x16proximity_counts = read_i2c_register(MAX44000_ADDR,0x16,1);/ weightsQUEUE_SIZE contains the filter weights for the FIR filter/ data_que

14、ueQUEUE_SIZE is a FIFO queue meant to be the input to the filterfiltered_counts = fir_filter(proximity_counts,weights,data_queue);if (filtered_counts >WAKEUP_THRESHOLD)device_status = WAKE_MODE;else/ do whatever it is you need to in sleep mode/* fir_filter()* Implements an FIR filter in the form*

15、 y = w0*x0 + w1*x1 + + wQUEUE_SIZE*xQUEUE_SIZE* Arguments:* uint8 input - newest datapoint taken (that is, x0)* uint8 *weights - w0wQUEUE_SIZE* uint8 *queue - the discrete sequence x0xQUEUE_SIZE* Returns:* The FIR-filtered output, y*/uint8 fir_filter(uint8 input, uint8 *weights, uint8 *queue)uint8 i

16、;int sum = 0;/ pop first entry in the queue, then/ push new data into the last positionpush_into_queue(queue,input);/ input is now x0for (i=0; i sum += weightsi*queuei;return (sum/QUEUE_SIZE);示例代碼3/ this handles hardware-level interrupts on the micro_interrupt void irq_handler( void )/ if the hardwa

17、re interrupt came from the MAX44000 sensor/ pulling its INT pin lowif ( irq_source = MAX44000 )/ if the device is in sleep modeif (device_status = SLEEP_MODE)device_status = WAKE_MODE; / wake up the device/ reconfigure whatever else you need here as the system wakes up/ otherwise, handle it however

18、it is you wishelse/* configure_max44000_for_sleep_mode()* Sets up the MAX44000 to trigger a hardware interrupt when the proximity* counts go above some set threshold.* Arguments:* uint8 upper_threshold - the set threshold (8-bit mode)* Returns:* n/a*/void configure_max44000_for_sleep_mode(uint8 upper_threshold)uint8 max44000_

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論