<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 基于微機電系統的無(wú)線(xiàn)鼠標方案

基于微機電系統的無(wú)線(xiàn)鼠標方案

作者: 時(shí)間:2011-08-24 來(lái)源:網(wǎng)絡(luò ) 收藏

1 系統原理與設計

本文引用地址:http://dyxdggzs.com/article/202426.htm

  1.1 檢測原理

  目前,常見(jiàn)的鼠標有2種,滾輪式和光電式。滾輪式鼠標是靠滾輪的傳動(dòng)帶動(dòng)X(jué)和Y軸上的譯碼輪轉動(dòng),來(lái)感測鼠標位移的變化;光電式鼠標是用一個(gè)自帶光源的光電傳感器,跟隨鼠標的移動(dòng)連續記錄它途經(jīng)表面的“快照”,這些快照(即幀)有一定的頻率、尺寸和分辨力,而光電鼠標的核心--DSP通過(guò)對比這些快照之間的差異從而識別移動(dòng)的方向和位移量,并將這些位移的信息加以編碼后實(shí)時(shí)地傳給電腦主機。

  而基于MEMS技術(shù)的是用微加速度傳感器實(shí)時(shí)測量鼠標運動(dòng)的加速度,經(jīng)過(guò)兩次積分轉換為位移信號傳輸給主機,來(lái)控制光標的移動(dòng),從而實(shí)現鼠標的功能。

  1.2 硬件設計

  如圖1所示,整個(gè)系統分為2個(gè)子系統,遠端子系統和主機端子系統。

無(wú)線(xiàn)鼠標系統結構框圖

圖1 系統結構框圖

  遠端子系統由微加速度傳感器、微控制器和nRF2401射頻收發(fā)器組成。微加速度傳感器采用美國AD公司生產(chǎn)的ADXL203微傳感器,微控制器采用Atmel公司生產(chǎn)的ATmega 16L微控制器,該微控制器附帶有8路10位可編程的A/D轉換電路,可以實(shí)時(shí)地將ADXL203加速度傳感器輸出的加速度模擬信號轉換成加速度數字信號。

  ADXL203加速度傳感器在加速度為0時(shí)輸出電壓為2.5V,為提高A/D轉換的精度,本文利用ATmega 16L內置的差分放大功能,用差分信號將這2.5V電壓給濾掉,并將差分后的電壓信號放大到與A/D轉換的參考電壓相匹配。系統供電采用電器中常見(jiàn)的9V電池,連接一個(gè)LM78M05穩壓貼片得到恒定的5V電壓,供各個(gè)模塊使用。

  主機端子系統由nRF2401射頻收發(fā)器,串行傳輸接口芯片和另一個(gè)ATmega 16L微控制器組成,其中,RS232串行通信接口芯片采用的是Maxim2IC公司的MAX233芯片,作用是將微控制器輸出的5V TTL/CMOS電平轉換為EIA/TIA-232-E電平,以便與電腦主機進(jìn)行串行(RS232)通信。

  1.3 軟件與算法設計

  鼠標在人的操縱下移動(dòng),微加速度傳感器便會(huì )實(shí)時(shí)地輸出鼠標運動(dòng)的加速度大小和方向,ADXL203傳感器的量程為±1.7gn ,電壓靈敏度為1000mV/gn,這個(gè)電壓信號經(jīng)過(guò)差分放大5.0/1.7倍后,通過(guò)微控制器A/D轉換功能變成與加速度大小對應的數字信號,加速度經(jīng)過(guò)兩次積分,便變成了鼠標移動(dòng)的位移信號,然后,再經(jīng)過(guò)編碼,并通過(guò)nRF2401射頻收發(fā)器將位移信號發(fā)射出去。

  當加速度傳感器輸出電壓為a時(shí),經(jīng)A/D轉換得到的數字量大小為

  式中[ ]表示取整數;a為加速度傳感器輸出的電壓大小,V。ATmega 16L單片機最大采樣速率可以達到15000次/秒,本文采用1000次/秒;即每1ms采樣一次,每25ms便向電腦報告一次相對的位移改變量,以保證屏幕上鼠標指針運動(dòng)的精確和平滑,則每一次報告的位移改變量包含25次對加速度采樣的數據??梢圆捎媒扑惴▉?lái)對加速度信號進(jìn)行二次積分,得到位移信號。

  編碼的目的是將X和Y方向的位移改變量,連同鼠標按鍵的實(shí)時(shí)信息,按照標準的Microsoft鼠標協(xié)議要求的格式進(jìn)行編碼,以便最后發(fā)送到主機的信息能夠被電腦正確識別,從而使電腦能正確處理發(fā)送給它的位移信號,來(lái)正確控制鼠標光標的移動(dòng)等動(dòng)作。表1表示的即是標準的鼠標協(xié)議規定的三字節數據包格式,第1個(gè)字節記錄的是左右按鍵的信息和鼠標X,Y位移的最高2個(gè)字位的數據,按鍵按下時(shí),對應的位置1,否則,置0;第2和第3個(gè)字節分別記錄X和Y方向位移的低6位數據。位移值的范圍取-127~+127,再大的位移改變量會(huì )自動(dòng)溢出。

表1 Microsoft標準鼠標協(xié)議數據包格式

Microsoft標準鼠標協(xié)議數據包格式


上一頁(yè) 1 2 3 4 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>