智汇工业-智慧工业、智能制造及工业智能、工业互联门户网站,专业的工业“互联网+”传媒

簡單手勢喚醒便攜設(shè)備的設(shè)計(jì)方案

來源:網(wǎng)絡(luò)

點(diǎn)擊:1416

A+ A-

所屬頻道:新聞中心

關(guān)鍵詞: 傳感器,觸摸屏

      廚房里的突發(fā)奇想

      如果做飯時(shí)使用觸控設(shè)備,您可能會注意到按照設(shè)備列出的食譜烹飪并非想象得那么簡單。技術(shù)達(dá)人(例如鄙人)走進(jìn)廚房時(shí),喜歡看著平板電腦或智能手機(jī)上的菜譜做飯。您可能會說:“好吧,這有什么難度?”由于屏幕始終開啟會消耗很大電量,通常手持裝置在1、2分鐘后沒有操作時(shí)將自動(dòng)進(jìn)入休眠狀態(tài)。那么,當(dāng)您需要參照食譜時(shí),設(shè)備已進(jìn)入休眠狀態(tài)。此事,您面臨兩個(gè)選擇:要么強(qiáng)制屏幕保持永久開啟;要么用沾滿食物的手開啟裝置,而在屏幕上留下斑斑油漬。當(dāng)然,您可以在每次查看時(shí)把手清洗干凈,但不斷重復(fù)洗手、擦干即繁瑣,又費(fèi)水。

      我時(shí)常問自己:“怎樣才能既不讓屏幕始終開啟,又不會弄臟裝置?”實(shí)際上,有一種辦法一舉兩得,即通過一個(gè)手勢(不用接觸屏幕)開啟顯示屏。聽起來似乎很復(fù)雜,是嗎?幸運(yùn)的是,做起來可能比聽起來容易一些。

      接近檢測傳感器

      許多觸摸屏裝置,尤其是智能手機(jī),內(nèi)部已經(jīng)安裝了紅外(IR)接近檢測傳感器。這些傳感器一般在通話期間自動(dòng)打開/關(guān)閉屏幕,以避免意外操作手機(jī)的輸入界面。這種傳感器技術(shù),加上精明的軟件設(shè)計(jì),就能實(shí)現(xiàn)利用一個(gè)手勢喚醒裝置的功能。

      基本的設(shè)計(jì)思路是:設(shè)備進(jìn)入休眠狀態(tài)時(shí),觸摸屏關(guān)閉,應(yīng)用處理器處于低功耗模式,依靠接近檢測傳感器“觀察”背景的變化,當(dāng)接收到的信號足夠大時(shí),做出適當(dāng)反應(yīng)。這與接近檢測傳感器在通話期間關(guān)閉屏幕的功能幾乎完全相同。只是,我們的應(yīng)用對數(shù)據(jù)有了不同的解釋。

      首先記錄傳感器在“正常”背景下的計(jì)數(shù)值,此時(shí)得到的數(shù)值可能為零,但實(shí)際設(shè)計(jì)中需要考慮系統(tǒng)失調(diào)(例如:散射或串?dāng)_)。然后將得到的數(shù)值設(shè)置為檢測門限,當(dāng)接收信號超過門限時(shí)觸發(fā)中斷或向應(yīng)用處理器發(fā)送信號,以喚醒系統(tǒng)并打開屏幕。總體而言,這種方法非常簡單、直觀,可利用環(huán)境光檢測器和IR接近檢測傳感器實(shí)現(xiàn)。

      本文介紹的方案采用MAX44000,接近檢測的數(shù)據(jù)讀取時(shí)間間隔可以設(shè)置在1.56ms至100ms (與環(huán)境光檢測傳感器輪流讀取數(shù)據(jù))。假設(shè)最大檢測距離為10cm,LED的輻射角為±15°,那么,可以覆蓋的面積大約為22cm2或跨距大約為5.35cm,只有該區(qū)域內(nèi)的移動(dòng)目標(biāo)才能捕捉到。由此,能夠以最慢(即最低功耗)的采樣速度可靠檢測的最快手勢動(dòng)作大約為0.53mps.在此,我們還假設(shè)傳感器只需要采集到一次高于門限的信號,即可識別經(jīng)過覆蓋區(qū)域的目標(biāo)。

      舉手之勞

      理論上講,該方案的實(shí)施非常簡單。當(dāng)裝置進(jìn)入休眠模式時(shí),將接近檢測傳感器置為環(huán)境掃描模式,并在檢測到目標(biāo)時(shí)發(fā)出中斷信號,指示捕捉到超過預(yù)設(shè)門限的信號。可通過I2C接口輪詢傳感器的狀態(tài)。不幸的是,這種方式會消耗過大功率,超出了大多數(shù)用戶的預(yù)期。

      這也是接近檢測傳感器的設(shè)計(jì)重點(diǎn),MAX44000傳感器能夠在許多方面擺脫應(yīng)用處理器的干預(yù),減輕處理器負(fù)荷(降低功耗)。

      使能MAX44000的內(nèi)部接近檢測中斷(寄存器0x01的第1位),可將喚醒門限寫入內(nèi)部寄存器(0x0B和0x0C)。當(dāng)接近檢測傳感器的讀數(shù)超過該門限時(shí),觸發(fā)中斷標(biāo)識置位,將MAX44000的/INT引腳置為低電平。當(dāng)應(yīng)用處理器檢測到該引腳驅(qū)動(dòng)為低電平時(shí),可喚醒裝置退出低功耗模式,并打開屏幕,或完成其它需要的動(dòng)作。

      但不容忽視

      實(shí)際應(yīng)用往往不如理論那么容易,非接觸喚醒的具體實(shí)施并非只是簡單地檢測高于門限的信號。實(shí)際上,具體的設(shè)計(jì)需要考慮諸多因素。

      信號電平與電路布局

      最關(guān)鍵的考慮應(yīng)該是觸發(fā)喚醒條件的信號電平,需要在系統(tǒng)響應(yīng)靈敏度與誤報(bào)概率之間進(jìn)行權(quán)衡。如果門限過低,則很容易檢測到輸入(手勢工作),但會增大瞬態(tài)噪聲或突發(fā)條件產(chǎn)生誤報(bào)的概率。反之,過高的檢測門限能夠把誤報(bào)概率降至幾乎為零,但卻只能檢測到非常接近的目標(biāo),甚至對任何輸入(即使您瘋狂晃動(dòng)手臂)都反應(yīng)遲鈍。

      解決這一問題的最佳方式是:首先降低系統(tǒng)噪聲,可以通過光學(xué)方法或嚴(yán)謹(jǐn)?shù)碾娐凡季謱?shí)現(xiàn),降低的噪底有助于降低誤報(bào)概率;其次,選擇“平均”檢測距離(例如:4cm至5cm)并利用參考目標(biāo)測量信號,18%的灰板比較理想,但如果觸摸屏上方安裝了黑色玻璃,測量時(shí)也應(yīng)該使用這樣的玻璃,所測得的信號電平可以作為設(shè)置門限的最佳參考。通常可以遵循這樣的原則:即將電平設(shè)置在滿幅的8%至15%,即使電平發(fā)生變化。

      可以按照上述經(jīng)驗(yàn)數(shù)據(jù)設(shè)置MAX44000傳感器的接近檢測門限寄存器,圖1所示為信號強(qiáng)度隨距離變化的關(guān)系曲線,采用18%灰板,驅(qū)動(dòng)電流為100mA,傳感器上方?jīng)]有玻璃罩。藍(lán)線為可以選擇的喚醒門限。

     

    圖1. MAX44000接近檢測傳感器信號強(qiáng)度隨距離變化的關(guān)系曲線,采用18%灰板,100mA驅(qū)動(dòng)電流,沒有玻璃罩

     

      噪聲和低通濾波

      需要考慮噪聲問題時(shí),可利用低通濾波器處理信號;另外,MAX44000還有幾個(gè)控制位可以用作觸發(fā)中斷標(biāo)識之前的屏蔽,采用這種設(shè)置時(shí),需要檢測到一定數(shù)量超出門限的采樣值時(shí)才會觸發(fā)中斷標(biāo)示,能夠在一定程度上降低噪聲的影響。

      一種稍微復(fù)雜的方法是將傳感器的讀數(shù)儲存在數(shù)據(jù)隊(duì)列中,然后利用定制的FIR軟件對其進(jìn)行濾波處理。但這種方法需要提高接近檢測傳感器的采樣速率,否則則會降低能夠捕捉到的傳感器可視范圍內(nèi)的手勢動(dòng)作速率,特別是把采樣速率設(shè)置在100ms時(shí)。利用器件的控制位屏蔽檢測時(shí),速率可最多降低16倍(通常選擇4x屏蔽即可)。

      手勢速度

      手勢動(dòng)作的快慢是我們需要考慮的另一因素。最大速度取決于:1. 傳感器的可視范圍;2. 手與傳感器之間的距離;3. 采樣率;4. 檢測門限。前兩項(xiàng)很容易確定:傳感器的檢測角度,結(jié)合傳感器與目標(biāo)之間的距離,利用基本的三角形即可計(jì)算出傳感器可視范圍內(nèi)目標(biāo)的移動(dòng)距離。例如,如果傳感器的視角為30度,最大有效檢測距離10cm,那么,傳感器可視范圍內(nèi)允許的目標(biāo)移動(dòng)距離為5.35cm,覆蓋面積大約為78cm2.直線距離結(jié)合采樣率,即可決定速度限值。 具體地說,如果采樣率為T,那么目標(biāo)跨越可視區(qū)域的時(shí)間不得小于T.例如,如果T為100ms (MAX44000的最低采樣速率),那么按照上例,理論上最大允許的速率為1mps (這實(shí)際上已經(jīng)相當(dāng)快了)。您可能希望捕獲到多個(gè)采樣值來確認(rèn)觸發(fā)喚醒,這樣的話,會降低允許的速率下限。

      檢測門限也影響最大允許速率。一般來說,門限越低,能夠捕捉到的手勢動(dòng)作就越快。如上所述,應(yīng)謹(jǐn)慎選擇門限,以免產(chǎn)生誤報(bào)。

      人為因素

      這種應(yīng)用還會受到人手以及揮手動(dòng)作等人為因素的影響。應(yīng)通過一些案例確定一般大多數(shù)人的習(xí)慣,包括他們在屏幕前揮動(dòng)手掌的速度以及與屏幕之間的距離,另外,是否戴手套也會產(chǎn)生一定的影響。不同的應(yīng)用場合(不同裝置)也會影響到設(shè)計(jì)需求,例如智能手機(jī)、平板電腦或汽車儀表盤,對存在具體的設(shè)計(jì)考慮。當(dāng)然,設(shè)計(jì)過程中還應(yīng)考慮用戶界面和經(jīng)驗(yàn)參數(shù)。

      最后,還要對真假手勢做出判斷,即裝置需要判斷接收到的信號是來自于一個(gè)手勢動(dòng)作,還是簡單的裝置移動(dòng)(例如:放置在外套、口袋或背包中,或者是屏幕朝下放置)。單純依靠上述檢測原理,很難做出正確的“真?zhèn)?amp;rdquo;鑒別,除非在裝置內(nèi)提供更多的背景信息。關(guān)于這一問題的討論超出了本文范圍。

      設(shè)計(jì)中可以選擇只有裝置進(jìn)入特定的應(yīng)用程序時(shí)啟動(dòng)喚醒方案,也可以由用戶手動(dòng)操作使能。此外,許多此類裝置都有一個(gè)加速度傳感器,能夠檢測到屏幕是否背面朝下放置。如果用戶手動(dòng)將裝置置于休眠模式,則可禁用該功能(例如關(guān)機(jī)狀態(tài))。

      設(shè)計(jì)實(shí)例

      為方便起見,本文附帶了三段演示程序代碼。第一段代碼用于手動(dòng)操作MAX44000的接近檢測數(shù)據(jù)讀取,概念上簡單實(shí)現(xiàn)喚醒功能;第二段代碼在第一段的基礎(chǔ)上進(jìn)行了擴(kuò)展,增加了之前討論的濾波功能;最后一段代碼演示利用MAX44000中斷喚醒觸控裝置。

      示例代碼1

      __interrupt void TimedInterrupt( void )

      {

      uint8 proximity_counts;

      …

      …

      if ( device_status == SLEEP_MODE )

      {

      // read one byte from register 0x16

      proximity_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 be implemented

      __interrupt void TimedInterrupt( void )

      {

      uint8 proximity_counts;

      uint8 filtered_counts;

      …

      …

      if ( device_status == SLEEP_MODE )

      {

      // read one byte from register 0x16

      proximity_counts = read_i2c_register(MAX44000_ADDR,0x16,1);

      // weights[QUEUE_SIZE] contains the filter weights for the FIR filter

      // data_queue[QUEUE_SIZE] is a FIFO queue meant to be the input to the filter

      filtered_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

      * y = w[0]*x[0] + w[1]*x[1] + …+ w[QUEUE_SIZE]*x[QUEUE_SIZE]

      *

      * Arguments:

      * uint8 input - newest datapoint taken (that is, x[0])

      * uint8 *weights - w[0]…w[QUEUE_SIZE]

      * uint8 *queue - the discrete sequence x[0]…x[QUEUE_SIZE]

      *

      * Returns:

      * The FIR-filtered output, y

      */

      uint8 fir_filter(uint8 input, uint8 *weights, uint8 *queue)

      {

      uint8 i;

      int sum = 0;

      // pop first entry in the queue, then

      // push new data into the last position

      push_into_queue(queue,input);

      // input is now x[0]

      for (i=0; i {

      sum += weights[i]*queue[i];

      }

      return (sum/QUEUE_SIZE);

      }

     

      示例代碼3

      // this handles hardware-level interrupts on the micro

      __interrupt void irq_handler( void )

      {

      …

      // if the hardware interrupt came from the MAX44000 sensor

      // pulling its \INT pin low

      if ( irq_source == MAX44000 )

      {

      // if the device is in sleep mode

      if (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 it is you wish

      else

      {

      …

      }

      }

      …

      }

      /**

      * 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_thresh_registers[] = {0x0B,0x0C};

      uint8 max44000_upper_thresh[] = {0x40,0};

      max44000_upper_thresh[1] = upper_threshold;

      // do a consecutive write of 0 followed by upper_threshold to

      // registers 0xB and 0xC, respectively

      // MAX44000_ADDR is usually 0x94

      // interrupt will trigger only if proximity value is above the threshold

      write_i2c_register(MAX44000_ADDR,max44000_thresh_registers,

      max44000_upper_thresh,2);

      // write to bits 2 and 3 of register 0x0A here if you wish to set the

      // persist time to anything other than one sample

      // writes to register 0x01 to enable interrupts on the MAX44000

      max44000_enable_interrupt();

      return;

      }

    (審核編輯: 小王子)

    聲明:除特別說明之外,新聞內(nèi)容及圖片均來自網(wǎng)絡(luò)及各大主流媒體。版權(quán)歸原作者所有。如認(rèn)為內(nèi)容侵權(quán),請聯(lián)系我們刪除。

    主站蜘蛛池模板: 天津止回阀-止回阀报价/哪家好-天津蝶阀/进口阀门/通风蝶阀批发-闸阀阀门/球阀生产厂家-天津凯维斯阀门制造 | 苏州空气压缩机-无油涡旋空压机-真空泵价格-变频空压机-苏州赫利亚斯气体技术有限公司 | 郑州邦达电气有限公司| 塑木地板,塑木栏杆,塑木地板价格,塑木地板厂家—浙江尚元塑木制品有限公司 | 青山套筒_直螺纹钢筋连接套筒加工_全灌浆套筒灌浆料_半灌浆套筒生产-衡水安达机械设备有限公司 | 苏州新闻网_苏州最权威资讯 | 实木全屋定制|整木定制|整木家装|实木护墙板-浩冠家具官网 | 线宽测试仪丨光调制分析仪丨调制器 卓越光子-专注于光电解决方案 | 郑州试驾场地_双超专业汽车试驾场地_郑州双超文化传播有限公司官方网站 | 希希助培是专业的教育信息化全场景服务商,为教育培训机构提供教务管理、招生营销、财务管理、家校互动等 | 塑木地板,塑木栏杆,塑木地板价格,塑木地板厂家—浙江尚元塑木制品有限公司 | 买化工,找万创!泉州万创化工贸易有限公司 | 学汽修,汽修培训,西安汽车维修培训学校,西安万通汽车学校[官网] 削片机|木材破碎机|木材粉碎机|模板破碎机|双轴撕碎机_郑州木工机械制造厂 | 清洁公司| 保洁公司| 东莞清洁| 东莞保洁|壹壹清洁 | 墨子百科-专业有趣的问题小百科| 中国焊接协会网站—中国焊接信息网;焊接行业最权威访问量最大的专业网站:焊接信息、焊接材料,焊接机器,焊接设备,焊机,焊材,辅助设备,焊机配件,仪器仪表,电动工具,钎焊,送丝机,表面处理,自动化专机,焊锡丝,助焊剂 | 模压机|硫化机|平板硫化机生产厂家-南通海利特橡塑机械有限公司 模压化粪池_三格式化粪池_玻璃钢化粪池厂家 | 石家庄启恒企业管理咨询有限公司 | 上海联锐精密机械有限公司-【官网】| 木屑烘干机|酒糟烘干机|果渣烘干机_郑州东鼎机械 | 上海况胜_玻璃反应釜厂家_双层玻璃反应釜_实验室玻璃反应釜 | 沈阳资质代办_代办建筑资质「快」-【华廷元】沈阳代办公司首页- 沈阳机电一体化电热锅炉_沈阳蓄热式电锅炉_沈阳壁挂式电锅炉【沈阳远鹏电热供水设备工程安装有限公司】 | 新颖科技 - 家电及汽车外饰面板供应商 | 蜀山人才网_蜀山招聘网_求职找工作平台 | 联智通达_工控一体机_工业触摸一体机_工业一体机_工业触控一体机_POS机主板_工控主板_国产化主板_RK3588主板厂商-联智通达 | 山东华德耐特工业设备有限公司-仓储货架-钢托盘-物流车-周转箱-工位器具 | 正规网上赚钱网站「百赚网」专注在家赚钱的网络赚钱平台 | 精品中文字幕在线观看,粉嫩av一区二区三区,最近中文字幕在线看免费视频,亚洲高清在线观看,日本一区二区视频手机免费看,国产黄色小视频,亚洲高清免费视频,国产精品一区二区欧美视频,亚洲人免费视频,亚洲视频在线观看免费,国产免费高清综合视频,中文字幕永久在线 | 优质课网_收录全国及各省市最新优质课视频,说课视频,名师课例课堂实录,高效课堂教学视频,观摩展示公开示范优秀课视频,教学大赛视频! | 专业护工_医院护工_护工陪护_住家护工- 心陪护 | 烟台废旧物资回收,烟台废品回收,烟台物资回收-烟台金泰再生资源有限公司 | 山西华盛筑景装饰,山西专业公装公司,太原公装装修公司,包括:办公室,酒店宾馆,商铺店铺,学校幼儿园,会所会馆饭店餐馆等装修设计 | 圣瞳智巡_大模型工业巡检解决方案|【圣瞳科技】 | 软文营销推广-新闻稿发布-软文撰写-百科词条编辑-品牌全案策划推广网络营销传播-喜尚传媒 | 装修工程-钢结构工程-环氧地坪漆-东莞市远鸣装饰工程有限公司 | 三亚酒吧KTV会所 专业舞台音响灯光 智能影音 会议音响工程 首选海南东演音响公司 | 天下机械|机床商讯-机械网|机械技术|机械信息|机床资讯|机床设备|机床商讯杂志 | 桥梁支座更换_桥梁检测车租赁_高空作业车出租_支座更换_伸缩缝安装_隧道防水_养护加固_维修_出租_衡水庆兴桥梁养护工程有限公司 桥梁养护|桥梁维修加固|隧道裂缝修补|支座更换|管道堵水气囊|衡水众拓路桥养护有限公司 | 河北省农林科学院石家庄果树研究所| 合肥发斯特精密塑模有限公司专业精密磨具,注塑模具,精密注塑机械零件(加工制造|生产|销售|厂家) 浩通集团 国际货运 物贸一体化 中非经贸 | 卧式镗铣床,道斯镗铣机床加工中心-江苏道斯数控科技有限公司 |