摘要:為彌補多媒體教學中激光筆的不足,提出了一種基于微加速度計的無線教鞭系統(tǒng),它不僅具有激光筆上下翻頁的功能,而且能在空中自由靈活移動實現(xiàn)高精度點擊的功能,該系統(tǒng)以微加速度計ADXL345作為信號檢測元件,并采用低功耗低成本微控制器AT89S52和RF芯片nRF24 L01進行信息處理與無線傳榆,符合人體工程學設計,最大限度地滿足人們使用鼠標時在手感以及舒適度和使用習慣方面的要求。
目前多媒體教學或會議演示中已經(jīng)用到無線教鞭,但是更多的只能用來文檔的翻頁,所以使用時還得配合有線或無線的鼠標,正由于這種傳統(tǒng)的機械式或光電式鼠標不能脫離平坦有摩擦的工作表面,自身體積大,工作空間受限制,移動不自由,所以我們開發(fā)出了基于微加速度計的無線教鞭。
國外和港臺地區(qū)有一些單位早些年已經(jīng)開展了這方面的研究,近些年國內(nèi)對該技術的研究日趨成熟,2002年東南大學的李宏生申請了名為“移動式全電子慣性鼠標”的實用新型專利,它利用加速度計檢測到的加速度信號經(jīng)過積分并分頻后產(chǎn)生速度脈沖,再配合專用的鼠標IC芯片實現(xiàn)。2004年清華大學工程物理系張樂平成功設計了一種基于加速度計的慣性鼠標,通過傾斜使用1的方式,獲得了很好的效果。2006年上海交通大學微納科學技術研究院黃得志等人成功設計出了一種基于微加速度傳感器的無線鼠標,以上3種鼠標可以說做的很好,但是他們使用專門的編碼和解碼芯片或?qū)S玫腁D轉(zhuǎn)換、鼠標IC芯片或高性能的微控制器,這樣相應地增大了板的體積,也增加了成本,我們基于此開發(fā)出了基于微加速度計ADXL345的無線教鞭,該加速度計集成了AD轉(zhuǎn)換功能可以將采集的加速度信號轉(zhuǎn)換成數(shù)字信號,微控制器采用功耗小、價格低的AT89S52,它的無線傳輸距離能達到30~60 m,是傳統(tǒng)鼠標的2~4倍,能在教師和會議室的任何位置遙控主機端光標的動作,完美的結合了傳統(tǒng)鼠標和激光筆的功能,體積可以做的很小,便于攜帶,靈活應用與各種場合,并且該無線教鞭符合人體工程學的設計,能預防鼠標手的出現(xiàn)。
1 系統(tǒng)整體設計
本項目設計分為兩部分,遠端用戶控制子系統(tǒng)和主機端信號接收子系統(tǒng)。遠端用戶控制子系統(tǒng)負責采集鼠標位移信息和按鍵信息,并發(fā)送給主機端信號接收子系統(tǒng)。主機端信號接收子系統(tǒng)負責對接收到的信息進行編碼并與計算機進行通信,控制計算機執(zhí)行相關操作。
遠端子系統(tǒng)由微加速度計、微控制器和無線射頻接收器組成。首先,遠端子系統(tǒng)采集微加速度計ADXL345的信號,將其通過特殊的積分算法轉(zhuǎn)化為位移量。然后,遠端子系統(tǒng)綜合位移信號和按鍵信號,按照無線模塊定義的格式對信號進行編碼、最后通過無線射頻模塊將編碼好的數(shù)據(jù)發(fā)送給主機端子系統(tǒng)。
主機端子系統(tǒng)由無線射頻收發(fā)器、微控制器和USB控制芯片組成。USB控制芯片USBPD1D12負責主機端子系統(tǒng)與上位機之間的USB通訊控制。主機端子系統(tǒng)通過USB接口與上位機相連后,上位機操作系統(tǒng)會自動加載HID類設備的驅(qū)動程序,完成主機端和上位機的連接。然后主機端微控制器接收無線模塊nRF24L01傳輸?shù)奈灰坪桶存I信號,進而控制光標的移動和按鍵的操作。
如圖1所示,為遠端用戶控制子系統(tǒng)和主機端信號接收子系統(tǒng)的結構方框圖。
2 系統(tǒng)硬件設計
2.1 遠端子系統(tǒng)硬件電路設計
1)微加速度計模塊
ADXL345是ADI公司的三軸數(shù)字加速度傳感器,工作原理是首先由前端感應器件感測加速度的大小,然后由感應電信號器件轉(zhuǎn)為可識別的模擬電信號,ADXL345中集成了AD轉(zhuǎn)換器,可以將此模擬信號數(shù)字化,輸出的是16位的二進制補碼。最值得一提的它集成了一個32級先進先出(FIFO)存儲器管理系統(tǒng),可用于輸出數(shù)據(jù)的緩沖,降低主機處理器負荷,并降低整體系統(tǒng)功耗。
該芯片主要應用于消費電子的微型慣性器件,最大可感知±16 g的加速度,感應精度可達3.9 mg/LSB,傾角測量典型誤差小于1°,超低功耗。通過其內(nèi)置的ADC將加速度信號轉(zhuǎn)換為數(shù)字量存放在片內(nèi)緩沖區(qū),在實際使用中,為提高輸出數(shù)據(jù)的穩(wěn)定性,設置感應范圍為±2g,感應精度為3.9 mg,可以滿足人體動作加速度范圍與精度要求。
ADXL345可以通過SPI總線或I2C總線與單片機連接,本產(chǎn)品選擇的單片機模塊AT89S52不具有SPI和I2C接口,所以我們采用I/O口模擬I2C總線或SPI總線接口的方法連接。
2)按鍵電路模塊
按鍵電路模塊主要考慮消抖的問題,我們這里采用軟件延時消抖,不過沒有采用在主程序中延時,這樣很浪費系統(tǒng)資源,而是用定時器延時設置標志變量的方法。
2.2 主機端子系統(tǒng)硬件電路設計
如圖2,微控制器通過P1口(P1.4~P1.7)模擬四線制的SPI總線與nRF24L01連接,控制信號的接收與處理,接收的信號通過P0及其他控制端口傳給USB接口芯片PDIUSBD12進而控制主機端光標的移動,其中nRF24L01無線射頻模塊是一款新型單片射頻收發(fā)器件,工作于2.4GHz ISM頻段,最高工作速率達2 Mbps,信號空中傳輸時間很短,極大降低了無線傳輸中的碰撞現(xiàn)象和電流消耗,該芯片融合了增強型ShockBurst技術,能自動處理字頭和CRC效驗碼,使用方便。該芯片功耗低,在以-6 dBm的功率發(fā)射時,工作電流只有9 mA;接收時,工作電流只有12.3 mA,多種低功率下作模式(掉電模式和空閑模式),使節(jié)能設計更方便。
PDIUSBD12是Philips公司的一個性能優(yōu)化的USB器件,通常用于基于微控制器的系統(tǒng),并通過高速通用并行接口與微控制器進行通信,而且支持本地DMA傳輸。PDIUSDB12完全符合USB1.1規(guī)范,也能適應大多數(shù)設備類規(guī)范的設計,如成像類、大容量存儲類、通信類、打印類和人工輸入設備等。PDIUSBD12還集成了SoftConnect、GoodLink、可編程時鐘輸出、低頻晶振和終端電阻等特性。所有這些特性都能在系統(tǒng)實現(xiàn)時節(jié)省成本,同時在外圍設備上很容易實現(xiàn)更高級的USB功能。
3 系統(tǒng)軟件設計
3.1 遠端子系統(tǒng)軟件設計
3.1.1 發(fā)送和接收模塊
無線RF射頻收發(fā)模塊nRF24L01通過SPI總線連接用戶端和主機端,在使用時要分別對其配置,用戶端配置為發(fā)射模式,主機端配置為接收模式,并且要嚴格按照其數(shù)據(jù)格式及流程發(fā)送和接收數(shù)據(jù)。
3.1.2 微加速度計模塊
1)寄存器中數(shù)據(jù)的重建
微加速度計ADXL345與微處理器之間通過I2C總線連接,它們之間的數(shù)據(jù)傳輸需要遵循I2C總線協(xié)議,寄存器0x32至寄存器0x37分別保存x、y、z軸輸出數(shù)據(jù),輸出數(shù)據(jù)為二進制補碼,DATAx0為最低有效字節(jié),DATAx1為最高有效字節(jié),其中x代表X、Y或Z。因為ADXL345為16位數(shù)據(jù)格式,從數(shù)據(jù)寄存器中獲取加速度數(shù)據(jù)后,用戶必須對數(shù)據(jù)進行重建。我們利用接口函數(shù)Multiple_read_ADXL345()多字節(jié)連續(xù)讀取寄存器的數(shù)據(jù),然后將高字節(jié)左移8位和低字節(jié)8位相或的方法對數(shù)據(jù)重建,且對我們來說,只需X和Z方向的加速度數(shù)據(jù)即可,程序如下:
ADXL345_DataReconstrution()
{ unsigned int Acceleration[2];
Multiple_Read_ADXL345();
Acceleration[0]=BUF[1];
ACCeleration[0]=(ACceleration[0]<<8)|BUF[0];
Acceleration[1]=BUF[5];
Acceleration[1]=(Acceleration[1]<<8)|BUF[4];
}
2)微加速度計ADXL345與普通鼠標精度的比較
現(xiàn)在市面上普通光學鼠標主流分辨率為400DPI,即每移動1英寸可反饋400個不同點的坐標,也即該鼠標的分辨率為25.4 mm/400=0.06 35mm。而ADXL345采用13位或10位的分辨率模式,此模式可以通過DATA_FORMAT寄存器(地址0x31)進行設置,除此之外,該寄存器還可以沒置g的范圍,有±2 g,±4 g,±8 g,±16 g,該教鞭選擇10位模式,±2 g已經(jīng)能滿足對分辨率的要求,此時分辨率為4g/1024LSB=3.9mg/ LSB,我們是將采集到的加速度數(shù)據(jù)采用16進制數(shù)字方式存儲在寄存器中,然后取出數(shù)據(jù)重建劃分步長后,通過無線傳送至接收端控制鼠標的移動,而USB鼠標報告描述中規(guī)定,若接收到的數(shù)據(jù)為1則移動一個像素,假設尺寸為300mm*190 mm的14寸顯示器,分辨率設置為1 024*768,那么橫向最小點間距為300 mm/1 024=0.293 0 mm,雖然這個數(shù)據(jù)沒有普通光學鼠標高,但是對于一般教鞭已經(jīng)足夠,最重要的是我們可以通過軟件設置步長,可以在教鞭微動的時候做出準確移動,在需要情況下大幅晃動教鞭能夠快速將光標移動到屏幕邊緣,符合人體工程學的要求,并且我們可以改變g值,分辨率模式及步長來自由調(diào)整教鞭的移動。設置的步長程序如下:
3.2 主機端子系統(tǒng)軟件設計
圖3為接收端主程序流程圖,該接收端軟件部分主要包括:PDIUSBD12固件驅(qū)動,USB設備的枚舉過程。為了使軟件可移植性強、易維護,采用分層的方法編寫PDIUSBD12的驅(qū)動程序。USB驅(qū)動程序分成接口和設備控制驅(qū)動層、協(xié)議層和應用層。應用分層的方法編寫的程序條理清晰,可移植性好。而USB HID類是比較大的一個類,HID類設備屬于人機交互操作的設備。使用HID設備的一個好處就是,操作系統(tǒng)自帶了HID類的驅(qū)動程序,而用戶無需去開發(fā)很麻煩的驅(qū)動程序,只要直接使用API調(diào)用即可完成通信。所以我們將USB設備枚舉成HID設備,這樣就可以不用安裝驅(qū)動而直接使用。USB設備的枚舉過程實際上就是告知PC設備描述類型。當插入USB設備后,主機會向設備請求各種描述符來識別設備,包括5個標準描述符:設備描述符、配置描述符、接口描述符、端點描述符、字符串描述符和3個HID設備類特定描述符:HID描述符、報告描述符、實體描述符。當主機從它的描述符中知道了能夠知道的所有信息后,便開始為這個設備安裝驅(qū)動程序。此時USB枚舉過程結束,設備可以正常使用了。
4 結束語
本文應用微加速度計和無線RF模塊,實現(xiàn)無線遙控的鼠標操作。遙控有效距離可達30~60 m,功耗小,成本低,而且遙控無指向性,能大大增強多媒體的人機交互性能。而且該成品外觀設計合理,手感舒適,符合人體工程學設計,能防止鼠標手的出現(xiàn)。