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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 神奇不,一個光學鼠標傳感器,就可以輕松實現(xiàn)精密旋轉(或線性)測量

          神奇不,一個光學鼠標傳感器,就可以輕松實現(xiàn)精密旋轉(或線性)測量

          作者: 時間:2017-06-03 來源:網(wǎng)絡 收藏

          本文引用地址:http://www.ex-cimer.com/article/201706/347374.htm

          使用光學實現(xiàn)旋轉(或線性)測量本設計實例使用光學電腦中的測量圓盤的旋轉,其中的圓盤可以通過機械方式連接到任何一種旋轉裝置。通過沿著圓盤半徑改變位置,該方案可以調整每次旋轉的脈沖。

          芯片的可提供非機械式跟蹤引擎。在該芯片內部可完成圖像的捕獲、數(shù)字化和數(shù)字處理。就拿簡單且低成本的來說,該傳感器通過采集表面圖像幀來測量位置,并通過數(shù)學運算判定運動方向和距離。該傳感器安裝聚苯乙烯光學封裝中,設計用來與高亮度LED一起使用。它有一個完整且緊湊的跟蹤引擎;沒有活動部件,也不要求精密的光學對準。可以為X和Y方向運動產(chǎn)生正交輸出信號。分辨率約為0.0025英寸,運動速度最高為每秒16英寸。

          該芯片產(chǎn)生的正交X方向輸出信號模擬了普通編碼器的輸出。X和Y信號都可以用于2D系統(tǒng)。以最高約25kHz的頻率產(chǎn)生X1和X2正交信號。圖1顯示了正向X運動(向右方向)的時序圖。這種正交輸出在需要時還可以用于直流步進電機控制。



          圖1:正交輸出波形(+X運動)示例。


          根據(jù)IC數(shù)據(jù)手冊的說明,可以使用內部振蕩器,此時可以不用電容COSC(圖2)。電阻ROSC定義了幀速率:它的值越小,對應的速率就越高。



          圖2:用OM02傳感器實現(xiàn)圓盤旋轉測量。


          將X1和X2輸出連接到XOR門可以使數(shù)據(jù)速率翻倍,不過會丟失方向信息。

          物理實現(xiàn)
          要想得到良好的表面圖案光學識別效果,檢測圓盤或其他表面必須具有一定的紋理、圖案、劃痕或刷面處理(圖3)。



          圖3:旋轉檢測物理原理。


          圖4所示結構已被成功地運用到組裝線、傳輸帶、標簽張貼設備、移動物體上打印等應用中提供同步運動。生產(chǎn)的100多個產(chǎn)品在經(jīng)過多年運行后仍工作良好。



          圖4:已被成功地運用到生產(chǎn)的結構。


          市場上還有其他一些傳感器IC,它們可以處理不同的光源,并且有不同的輸出、速度等指標。比如PAN3101 CMOS光學鼠標傳感器使用SPI,PAN101BCMOS光學導航傳感器同時具有SPI和正交輸出。

          的原理圖例子
          采用(或多使用一個IC的USB接口)的傳感器不允許單獨跟蹤每個脈沖,因為它們發(fā)送的是數(shù)據(jù)包(圖5)。對于硬實時應用來說,最好選用提供正交輸出的傳感器。

          用無線電腦鼠標搭建編碼器將是非常令人感興趣的事,而使用數(shù)顯卡尺中的傳感器也許令人更感興趣,因為其中的大多數(shù)傳感器有I2C接口。



          圖5:的原理圖示例。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();