<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 簡單手勢喚醒便攜設(shè)備的設(shè)計思路及其代碼

          簡單手勢喚醒便攜設(shè)備的設(shè)計思路及其代碼

          作者: 時間:2012-07-12 來源:網(wǎng)絡(luò) 收藏


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

          人為因素


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


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


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


          設(shè)計實例


          為方便起見,本文附帶了三段演示程序代碼。第一段代碼用于手動操作MAX44000的接近檢測數(shù)據(jù)讀取,概念上簡單實現(xiàn)喚醒功能;第二段代碼在第一段的基礎(chǔ)上進行了擴展,增加了之前討論的濾波功能;最后一段代碼演示利用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()

          *



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();