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