引 言 微機械加速度傳感器是一種典型的微機電系統(microelectromechanical system,MEMS),在航空、航天、汽車等領域已得到了越來越廣泛的應用,但基于MEMS微加速度傳感器技術的無線輸入設備的研究和應用還不是很多,微加速度傳感器用于輸入設備的潛在優勢還沒有得到很好的應用。 鼠標是最常用的電腦輸入設備,隨著PDA、筆記本、可穿戴式電腦等便攜設備的流行,傳統的鼠標已經滿足不了移動辦公的需要。現有的滾輪式或光電式鼠標都需要一個平坦的工作表面,且自身的體積也比較大。而基于微加速度傳感器的無線鼠標則完全沒有這個限制,它可以自由自在的在空中移動來控制電腦;可以做得很小,便于攜帶,可以靈活地應用于各種場合,例如:可以做成供殘疾人使用的頭戴式鼠標,供講演者使用的移動式鼠標等。 國外和港臺地區有一些單位正在開展這方面的研究,例如:香港中文大學Lam等人提出了一種基于微加速度傳感器的虛擬鍵盤鼠標系統(MIDS),能同時具備鼠標和鍵盤的功能;Prince在他的專利中提出了一種輸入設備的方案,用連在手指上的壓力傳感器來感測手指的動作,從而控制電腦輸入;英國伯明翰大學Humphreys等人研制了一種三維鼠標,利用回轉儀可以控制電腦屏幕上三維立體的旋轉。本文采用美國AD公司成熟的微加速度傳感器ADXL203,并集成Nordic半導體公司最新的射頻收發器nRF2401和Atmel公司的ATmega16L微控制器,開發新一代基于微加速度傳感器技術的MEMS無線鼠標,探索微加速度傳感器在輸入設備上的應用技術,并為進一步研究多維多功能的MEMS無線輸入設備打下基礎。 系統原理與設計 檢測原理 目前,常見的鼠標有2種,滾輪式和光電式。滾輪式鼠標是靠滾輪的傳動帶動X和Y軸上的譯碼輪轉動,來感測鼠標位移的變化;光電式鼠標是用一個自帶光源的光電傳感器,跟隨鼠標的移動連續記錄它途經表面的“快照”,這些快照(即幀)有一定的頻率、尺寸和分辨力,而光電鼠標的核心——DSP通過對比這些快照之間的差異從而識別移動的方向和位移量,并將這些位移的信息加以編碼后實時地傳給電腦主機。 而基于MEMS技術的無線鼠標是用微加速度傳感器實時測量鼠標運動的加速度,經過兩次積分轉換為位移信號傳輸給主機,來控制光標的移動,從而實現鼠標的功能。 硬件設計 如圖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)通信。 軟件與算法設計 鼠標在人的操縱下移動,微加速度傳感器便會實時地輸出鼠標運動的加速度大小和方向,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標準鼠標協議數據包格式 系統的基本組件 MEMS微加速度傳感器 本文采用美國AD公司生產的電容式微加速度傳感器ADXL203,如圖2所示,該加速度傳感器是利用各向異性刻蝕、陽極鍵合等硅整體加工工藝在硅材料上制造出來的,并在同一個基片上集成一些外圍電路,對輸出的加速度信號進行放大調制等處理后,可以同時在X 軸和Y軸2個方向輸出精確的加速度信號。 圖2 ADXL203加速度傳感器原理圖 ATmega16L微控制器 ATmega16是Atmel公司生產的基于增強的AVR RISC結構的低功耗8位CMOS微控制器,本文選用ATmega 16L微控制器,可以滿足系統要求,且存在比較大的擴展性。 無線收發器件 本文采用Nordic半導體公司的nRF2401射頻收發器來實現位移數據的無線傳輸。因為nRF2401的優異性能非常適合無線鼠標的設計,并且,其內置的多點通信控制可以為系統提供很大的擴展空間。nRF2401為2.4 GHz全球開放頻段產品,采用0.18μm工藝設計。 系統和算法的Matlab模擬 AD公司給出了ADXL203微加速度傳感器的Simulink模型(參見AD公司主頁),本文以此為基礎,構建了基于該微加速度傳感器的無線鼠標系統模型,如圖3所示。 圖3 無線MEMS鼠標系統的Simulink模型 其中,方框內的子系統模型即是封裝好的ADXL203微加速度傳感器模型。模型最后將采樣的加速度值存入文件中,然后,通過編程來模擬微控制器中運行的不同積分算法,用Matlab來圖示各個算法的模擬結果,對于系統算法的比較和選擇有很大幫助。 上文通過假設每一次加速度采樣間隔內鼠標做勻加速度運動,提出了一種二次積分的近似算法,便于編程實現,可以利用鼠標系統的Simulink模型,結合編程模擬該算法,來考察它的精確性。 程序取采樣周期為1ms,發送周期為25ms,最后,Matlab模擬的結果如圖4和圖5所示。 由圖4和圖5中可以看出:由于該二次近似積分算法作了很大的簡化,再加上加速度傳感器的噪聲干擾和信號延遲、A/D轉換的誤差等多方面的因素,當鼠標位移較大時,存在一些誤差。但當鼠標位移在12cm以內時,精確度是非常理想的,這足以滿足鼠標的一般應用,更大的移動距離可以通過改變二次積分的算法來實現。 光電和滾輪式鼠標的分辨力通常用dots per inch (DPI)來表示,即每英寸(2.54cm)的點數,它表示鼠標在物理表面上每移動1英寸(約2.54cm),光學傳感器所接收到的坐標點數。由于光學引擎中CMOS矩陣的像素密度和透鏡的放大倍數限制,常見光電鼠標的分辨力一般在200~400DPI。對于MEMS鼠標,可以用鼠標每移動1英寸(2.54 cm)對加速度采樣的次數來表示分辨力的大小。 MEMS鼠標中微控制器對加速度的最大采樣速率可以達到15000次/秒,本文只需采用1000次/秒時,取鼠標1s移動的位移為10cm,則鼠標的分辨力便達到了1000×2.54/10=254DPI,已經達到了常見鼠標的分辨力,并且,更高的分辨力可以通過提高加速度的采樣速率來實現,理論上,最大值可以達到15000/1000×254=3810DPI,遠遠高于一般光學鼠標的分辨力。 圖4 X軸的鼠標實際位移與模擬位移對照圖 圖5 Y軸的鼠標實際位移與模擬位移對照圖 結束語 本文詳細討論了基于微加速度傳感器的MEMS無線鼠標的軟件、硬件設計和系統構成,并給出了Matlab環境下系統的simulink模型和算法,模擬的結果證明:無線鼠標的設計是合理可行的,文中提出的二次積分近似算法是簡捷有效的;文中討論的二維鼠標的設計技術,能為進一步研究多維多功能的MEMS輸入設備打下很好的基礎。本文選擇硬件時,充分考慮了系統向多維和多功能擴展的可能性,可以在此二維鼠標的基礎上再添加一些器件,構成功能更多更完善的MEMS輸入設備,例如:可以再添加一個微加速度傳感器來感測Z軸的加速度,從而實現三維鼠標,可以實現對三維立體旋轉等的控制;也可以利用nRF2401射頻收發器內置的多點通信控制的特性,再多增加幾個接收模塊,可以同時控制多臺主機,或多增加幾個發射模塊,用幾個輸入設備來控制同一臺主機,以適應不同應用場合的需要。 |