基于微機電系統(tǒng)的無線鼠標方案
1 系統(tǒng)原理與設(shè)計
本文引用地址:http://www.ex-cimer.com/article/202426.htm1.1 檢測原理
目前,常見的鼠標有2種,滾輪式和光電式。滾輪式鼠標是靠滾輪的傳動帶動X和Y軸上的譯碼輪轉(zhuǎn)動,來感測鼠標位移的變化;光電式鼠標是用一個自帶光源的光電傳感器,跟隨鼠標的移動連續(xù)記錄它途經(jīng)表面的“快照”,這些快照(即幀)有一定的頻率、尺寸和分辨力,而光電鼠標的核心--DSP通過對比這些快照之間的差異從而識別移動的方向和位移量,并將這些位移的信息加以編碼后實時地傳給電腦主機。
而基于MEMS技術(shù)的無線鼠標是用微加速度傳感器實時測量鼠標運動的加速度,經(jīng)過兩次積分轉(zhuǎn)換為位移信號傳輸給主機,來控制光標的移動,從而實現(xiàn)鼠標的功能。
1.2 硬件設(shè)計
如圖1所示,整個無線鼠標系統(tǒng)分為2個子系統(tǒng),遠端子系統(tǒng)和主機端子系統(tǒng)。
圖1 無線鼠標系統(tǒng)結(jié)構(gòu)框圖
遠端子系統(tǒng)由微加速度傳感器、微控制器和nRF2401射頻收發(fā)器組成。微加速度傳感器采用美國AD公司生產(chǎn)的ADXL203微傳感器,微控制器采用Atmel公司生產(chǎn)的ATmega 16L微控制器,該微控制器附帶有8路10位可編程的A/D轉(zhuǎn)換電路,可以實時地將ADXL203加速度傳感器輸出的加速度模擬信號轉(zhuǎn)換成加速度數(shù)字信號。
ADXL203加速度傳感器在加速度為0時輸出電壓為2.5V,為提高A/D轉(zhuǎn)換的精度,本文利用ATmega 16L內(nèi)置的差分放大功能,用差分信號將這2.5V電壓給濾掉,并將差分后的電壓信號放大到與A/D轉(zhuǎn)換的參考電壓相匹配。系統(tǒng)供電采用電器中常見的9V電池,連接一個LM78M05穩(wěn)壓貼片得到恒定的5V電壓,供各個模塊使用。
主機端子系統(tǒng)由nRF2401射頻收發(fā)器,串行傳輸接口芯片和另一個ATmega 16L微控制器組成,其中,RS232串行通信接口芯片采用的是Maxim2IC公司的MAX233芯片,作用是將微控制器輸出的5V TTL/CMOS電平轉(zhuǎn)換為EIA/TIA-232-E電平,以便與電腦主機進行串行(RS232)通信。
1.3 軟件與算法設(shè)計
鼠標在人的操縱下移動,微加速度傳感器便會實時地輸出鼠標運動的加速度大小和方向,ADXL203傳感器的量程為±1.7gn ,電壓靈敏度為1000mV/gn,這個電壓信號經(jīng)過差分放大5.0/1.7倍后,通過微控制器A/D轉(zhuǎn)換功能變成與加速度大小對應(yīng)的數(shù)字信號,加速度經(jīng)過兩次積分,便變成了鼠標移動的位移信號,然后,再經(jīng)過編碼,并通過nRF2401射頻收發(fā)器將位移信號發(fā)射出去。
當加速度傳感器輸出電壓為a時,經(jīng)A/D轉(zhuǎn)換得到的數(shù)字量大小為
式中[ ]表示取整數(shù);a為加速度傳感器輸出的電壓大小,V。ATmega 16L單片機最大采樣速率可以達到15000次/秒,本文采用1000次/秒;即每1ms采樣一次,每25ms便向電腦報告一次相對的位移改變量,以保證屏幕上鼠標指針運動的精確和平滑,則每一次報告的位移改變量包含25次對加速度采樣的數(shù)據(jù)??梢圆捎媒扑惴▉韺铀俣刃盘栠M行二次積分,得到位移信號。
編碼的目的是將X和Y方向的位移改變量,連同鼠標按鍵的實時信息,按照標準的Microsoft鼠標協(xié)議要求的格式進行編碼,以便最后發(fā)送到主機的信息能夠被電腦正確識別,從而使電腦能正確處理發(fā)送給它的位移信號,來正確控制鼠標光標的移動等動作。表1表示的即是標準的鼠標協(xié)議規(guī)定的三字節(jié)數(shù)據(jù)包格式,第1個字節(jié)記錄的是左右按鍵的信息和鼠標X,Y位移的最高2個字位的數(shù)據(jù),按鍵按下時,對應(yīng)的位置1,否則,置0;第2和第3個字節(jié)分別記錄X和Y方向位移的低6位數(shù)據(jù)。位移值的范圍取-127~+127,再大的位移改變量會自動溢出。
表1 Microsoft標準鼠標協(xié)議數(shù)據(jù)包格式
評論