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