鄒江
摘 要: 設(shè)計基于USBD12和加速度計的空中鍵鼠,通過手勢在空中的動作便可控制鼠標(biāo)的移動。設(shè)計的研發(fā)調(diào)試過程中,采用了加速度傳感器數(shù)據(jù)采集、USB設(shè)備gadget層HID設(shè)備、LCD?NOKIA5110顯示、AVR單片機熔絲位的配置、藍(lán)牙模塊、手勢動作識別算法、菜單與UI界面等模塊的軟、硬件調(diào)試,接收端有一個USB口,插入PC后被識別為一個標(biāo)準(zhǔn)HID人體學(xué)輸入設(shè)備,無須驅(qū)動,即插即用。用戶的操作達(dá)到可動態(tài)交互的目的。采用動作手勢識別算法,藍(lán)牙模塊等實現(xiàn)了通過手勢在空中的動作便可控制鼠標(biāo)的移動,通過按鍵進(jìn)行對鍵盤的操作,并且不需要連接線,通過藍(lán)牙與插在電腦上的接收端相連接通信,達(dá)到動態(tài)交互的目的。
關(guān)鍵詞: 藍(lán)牙; USB; 免驅(qū)動; 鍵鼠
中圖分類號: TN99?34; TN46 文獻(xiàn)標(biāo)識碼: A 文章編號: 1004?373X(2017)18?0101?03
Air mouse and keyboard combo pack based on USBD12 and accelerometer
ZOU Jiang
(School of Physics and Electronic Science, Zunyi Normal University, Zunyi 563006, China)
Abstract: An air mouse and keyboard combo pack based on USBD12 and accelerometer was designed, which can control the mouse movement by means of the gestures in the air. In the process of development and debugging of the design, the modules of accelerometer sensor data acquisition, gadget?layer HID device of USB device, LCD?NOKIA5110 display, configuration of AVR MCU fuse bit, Bluetooth, hand gestures recognition algorithm, menu and UI interface are used for software and hardware debugging. A USB port at the receiving end is recognized as a standard HID after PC insertion, which is free?drive, and plug and play. The operation of users can realize dynamic interaction. The gesture recognition algorithm and Bluetooth module are used to control the movement of mouse and keyboard combo pack by means of the gestures in the air. The keyboard is operated via keys and neednt connecting lines, which is connected with the terminal end inserted into computer through Bluetooth for communication to realize dynamic interaction.
Keywords: Bluetooth; USB; free drive; mouse and keyboard
0 引 言
空中鼠標(biāo)是一種輸入設(shè)備,能像傳統(tǒng)鼠標(biāo)一樣操作光標(biāo),卻不局限在某一平面進(jìn)行操作,只是在空中晃動就能實現(xiàn)想要的功能,自由方便就是它最突出的特性。本設(shè)計還將鍵盤的操作集成到了空中鼠標(biāo)中,也就是設(shè)計了空中鼠標(biāo)和鍵盤合一套裝,即本產(chǎn)品既可以當(dāng)做鼠標(biāo)用,也可當(dāng)作鍵盤用。從產(chǎn)品角度上講,它適應(yīng)消費電子的發(fā)展方向——更小、熱插拔、無線、低成本,從技術(shù)上講,它應(yīng)用了藍(lán)牙、USB、加速度導(dǎo)航技術(shù)等,有一定的理論深度和實現(xiàn)難度。
1 系統(tǒng)概覽與運行流程
1.1 系統(tǒng)總體框架
本設(shè)計主要由6個功能模塊構(gòu)成:MCU主控模塊、鼠標(biāo)動作識別輸入模塊(加速度傾角識別)、按鍵輸入模塊、LCD顯示模塊、藍(lán)牙串口模塊、USBD12模塊。本產(chǎn)品從硬件上看有兩個獨立的部分:一部分是動作識別采集編碼和藍(lán)牙發(fā)送設(shè)備;另一部分是藍(lán)牙接收和USB免驅(qū)動鏈接設(shè)備,數(shù)據(jù)流參考圖中連接線箭頭。
1.2 系統(tǒng)運行流程
上電之后,系統(tǒng)各模塊先初始化,然后通過按鍵進(jìn)行模式選擇。在一個模式的運行過程中是不能切換到另一個流程的。當(dāng)在鼠標(biāo)模式時,對加速度計返回的數(shù)據(jù)進(jìn)行判斷,四個方向的傾角對應(yīng)鼠標(biāo)的四個動作。當(dāng)條件滿足時認(rèn)為有鼠標(biāo)的移動,開始循環(huán)向藍(lán)牙串口發(fā)送命令。當(dāng)姿態(tài)復(fù)位時,條件不滿足,停止命令的發(fā)送。在鍵盤模式下,只需判斷按鍵即可發(fā)送相應(yīng)的命令。一個模式的流程完成后,可以通過按鍵選擇切換到另一個模式。
2 各功能模塊的實現(xiàn)原理和方法
2.1 動作識別
動作識別模塊主要采用美新公司的MXC6202芯片,它是一款雙軸加速度計,通過混合信號處理和集成IIC總線組成一個完整的傳感系統(tǒng),可以直接和微處理器連接而不再需要A/D轉(zhuǎn)換。MXC6202芯片測量加速范圍為±2 g,工作在3.0 V,25 ℃環(huán)境下精度可達(dá)到[g512~g128。]動態(tài)靜態(tài)加速都可測量。endprint
因為不同動作時,手揮動的加速度與角速度是不同的,所以動作的識別總的來說有以下幾種方案:
(1) 只通過加速度來判定動作[1];
(2) 只通過角速度來判定動作;
(3) 通過加速度和角速度協(xié)同來判定動作;
(4) 通過紅外發(fā)射與定位來判定動作。
對于方案(4),需要很多紅外定位設(shè)備來實現(xiàn)這個功能,而方案(2)和(3)雖然精度和效果可以達(dá)到很高但是成本也會相當(dāng)高。因此本設(shè)計采取了方案(1)來實現(xiàn)“空中操作”這個功能[2]
通過傾角來識別動作,即通過手使設(shè)備向四個方向傾斜,若傾斜超過一個范圍,則判定為移動,達(dá)到鼠標(biāo)移動的目的。通過水平位移來識別動作,即通過平移設(shè)備得到移動的加速度,積分一次即是移動速度,再積分一次就是移動的位移了。只需要將速度的大小對應(yīng)為USB向PC發(fā)送報告的頻率,即可實現(xiàn)移動的效果[3]本設(shè)計的軟、硬件條件,由于硬件條件有限:單片機的運算能力有限、單加速度計漂移的問題較為嚴(yán)重,因此初步選用方案(1),而方案(2)則作為后期拓展開發(fā)用。具體來說,就是通過x,y兩個軸的數(shù)值進(jìn)行閾值判斷,若傾斜到一定程度,即通過I2C返回的數(shù)值達(dá)到一定標(biāo)準(zhǔn)(閾值),則向藍(lán)牙串口模塊發(fā)送相對應(yīng)的命令。
2.2 藍(lán)牙模塊
本文采用HC?05 嵌入式藍(lán)牙串口通信模塊實現(xiàn)無線功能。該模塊的特點是射頻方面的硬件已經(jīng)調(diào)試完備,而且給用戶的接口只是很簡單的UART總線[4] ,這給本文的開發(fā)帶來了極大的便利。本設(shè)計的發(fā)送和接收端配置時采用命令響應(yīng)工作模式,工作時采用自動連接工作模式,其中發(fā)送端配置成主模式,接收端配置成從模式。
HC?05是主從模式,配置步驟如下:
(1) PIO11 置高;
(2) 上電,模塊進(jìn)入AT 命令響應(yīng)狀態(tài);
(3) 設(shè)置波特率38 400 b/s。
2.3 基于USBD12的免驅(qū)動模塊
USBD12芯片是荷蘭飛利浦半導(dǎo)體公司的通用USB接口芯片,由其名稱可以了解HID設(shè)備是計算機直接與人交互的設(shè)備,例如鍵盤、鼠標(biāo)和游戲桿等 [5]。本設(shè)計中采用的USBD12芯片就可以幫助實現(xiàn)免驅(qū)動通信的功能。
為了實現(xiàn)免驅(qū)動和本設(shè)計中所需功能,對USBD12的控制步驟如下:
(1) 配置USBD12模塊,如讀模塊ID是否正確,若不正確則模塊初始化失?。?/p>
(2) 進(jìn)入無限循環(huán),等待上位機發(fā)給模塊的中斷,進(jìn)入USB設(shè)備初始化的枚舉過程;
(3) 枚舉成功后置位配置標(biāo)志位,檢測串口是否有命令到來,若有命令,則向上位機發(fā)送一個報告,形成一次鍵盤或鼠標(biāo)動作。
3 實物操作
如圖1所示,可看到本設(shè)計的兩部分硬件設(shè)備。系統(tǒng)由2節(jié)5號電池供電,有1個電源開關(guān)、8個操作按鍵、4個不同顏色的彩色LED指示燈、1塊LCD屏、以及1個USB接收端。8個按鍵分別為,左側(cè):上、下、左、右;右側(cè):A,B,C,D(自左向右,自上到下)。B按鍵為模式切換按鍵,可切換4種模式。
空中鼠標(biāo)模式下,改變設(shè)備的傾角即可移動鼠標(biāo),左鍵和下鍵為鼠標(biāo)左鍵功能,右鍵和上鍵為鼠標(biāo)右鍵功能。在空中鍵盤模式下,上、下、左、右、A,B,C,D分別對應(yīng)的功能為:鍵盤上、下、左、右、Atl+F4、切換模式、Alt+Table、Enter。同時在進(jìn)行按鍵操作后,會在LCD上顯示按下的按鍵。
4 方案的可拓展方向及研發(fā)前景
首先在平臺方面,可以將這一思想嵌入到當(dāng)今的移動設(shè)備中,如當(dāng)下流行的智能手機和平板電腦。例如在Android設(shè)備中,加速度計幾乎是一個必備器件,而其I2C驅(qū)動則是由OEM商已經(jīng)提供好的,只需編寫相應(yīng)的應(yīng)用程序調(diào)用相應(yīng)的接口,再加上一個通用的藍(lán)牙USB接收端即可完成本設(shè)計的核心功能。這對產(chǎn)品的硬成本的增加幾乎為0。
其次在硬件方面,可以有更多的選擇。對于處理器,可以選擇價格相對低廉的單片機,同時也可以選擇更高端的處理器,在其上運行操作系統(tǒng)達(dá),到多任務(wù)運行并且有UI的效果。
另外在動作識別方面,本設(shè)計還有較大的提升。目前在消費電子領(lǐng)域,有一款名為WII的游戲機設(shè)計的十分成功,它的動作識別就是通過加速度計和陀螺儀配合導(dǎo)航。本設(shè)計雖然可以流暢實現(xiàn)空中鍵鼠的功能,但是還可以嘗試其他的算法,以提高響應(yīng)速度和可靠性。
5 結(jié) 語
本文設(shè)計了基于USBD12和加速度計的空中鍵鼠,該鍵鼠通過手勢在空中的動作便可控制鼠標(biāo)的移動。設(shè)計程中,采用了加速度傳感器數(shù)據(jù)采集、USB設(shè)備gadget層HID設(shè)備、LCD?NOKIA5110顯示、AVR單片機熔絲位的配置、藍(lán)牙模塊、手勢動作識別算法、菜單與UI界面等等模塊的軟硬件調(diào)試,接收端有一個USB口,插入PC后被識別為一個標(biāo)準(zhǔn)HID人體學(xué)輸入設(shè)備,無須驅(qū)動,即插即用。用戶的操作達(dá)到可動態(tài)交互的目的。采用動作手勢識別算法,藍(lán)牙模塊等實現(xiàn)了通過手勢在空中的動作便可控制鼠標(biāo)的移動,通過按鍵進(jìn)行對鍵盤的操作,并且不需要連接線,通過藍(lán)牙與插在電腦上的接收端相連接通信,達(dá)到動態(tài)交互的目的。
參考文獻(xiàn)
[1] 李道斌.基于加速度的無人機縱向控制方案設(shè)計[J].現(xiàn)代電子技術(shù),2015,38(18):95?97.
[2] 郭曉博,趙敏,樂珺.基于USB?HUB的能譜儀通信系統(tǒng)設(shè)計[J].機械制造與自動化,2015(1):155?157.
[3] 楊磊.通信終端安全模塊研究與設(shè)計[D].西安:西安電子科技大學(xué),2015.
[4] 閆蘊霞.基于USB總線的FPGA運行控制卡設(shè)計[D].太原:中北大學(xué),2016.
[5] 吳子賢.基于USB的數(shù)字掃頻儀的測控接口設(shè)計[D].西安:西安科技大學(xué),2013.
[6] 劉亞麗.USB會議簽到器的設(shè)計與實現(xiàn)[J].工業(yè)控制計算機,2017(3):116?117.endprint