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