鄒江

摘 要: 設計基于USBD12和加速度計的空中鍵鼠,通過手勢在空中的動作便可控制鼠標的移動。設計的研發調試過程中,采用了加速度傳感器數據采集、USB設備gadget層HID設備、LCD?NOKIA5110顯示、AVR單片機熔絲位的配置、藍牙模塊、手勢動作識別算法、菜單與UI界面等模塊的軟、硬件調試,接收端有一個USB口,插入PC后被識別為一個標準HID人體學輸入設備,無須驅動,即插即用。用戶的操作達到可動態交互的目的。采用動作手勢識別算法,藍牙模塊等實現了通過手勢在空中的動作便可控制鼠標的移動,通過按鍵進行對鍵盤的操作,并且不需要連接線,通過藍牙與插在電腦上的接收端相連接通信,達到動態交互的目的。
關鍵詞: 藍牙; USB; 免驅動; 鍵鼠
中圖分類號: TN99?34; TN46 文獻標識碼: 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 引 言
空中鼠標是一種輸入設備,能像傳統鼠標一樣操作光標,卻不局限在某一平面進行操作,只是在空中晃動就能實現想要的功能,自由方便就是它最突出的特性。本設計還將鍵盤的操作集成到了空中鼠標中,也就是設計了空中鼠標和鍵盤合一套裝,即本產品既可以當做鼠標用,也可當作鍵盤用。從產品角度上講,它適應消費電子的發展方向——更小、熱插拔、無線、低成本,從技術上講,它應用了藍牙、USB、加速度導航技術等,有一定的理論深度和實現難度。
1 系統概覽與運行流程
1.1 系統總體框架
本設計主要由6個功能模塊構成:MCU主控模塊、鼠標動作識別輸入模塊(加速度傾角識別)、按鍵輸入模塊、LCD顯示模塊、藍牙串口模塊、USBD12模塊。本產品從硬件上看有兩個獨立的部分:一部分是動作識別采集編碼和藍牙發送設備;另一部分是藍牙接收和USB免驅動鏈接設備,數據流參考圖中連接線箭頭。
1.2 系統運行流程
上電之后,系統各模塊先初始化,然后通過按鍵進行模式選擇。在一個模式的運行過程中是不能切換到另一個流程的。當在鼠標模式時,對加速度計返回的數據進行判斷,四個方向的傾角對應鼠標的四個動作。當條件滿足時認為有鼠標的移動,開始循環向藍牙串口發送命令。當姿態復位時,條件不滿足,停止命令的發送。在鍵盤模式下,只需判斷按鍵即可發送相應的命令。一個模式的流程完成后,可以通過按鍵選擇切換到另一個模式。
2 各功能模塊的實現原理和方法
2.1 動作識別
動作識別模塊主要采用美新公司的MXC6202芯片,它是一款雙軸加速度計,通過混合信號處理和集成IIC總線組成一個完整的傳感系統,可以直接和微處理器連接而不再需要A/D轉換。MXC6202芯片測量加速范圍為±2 g,工作在3.0 V,25 ℃環境下精度可達到[g512~g128。]動態靜態加速都可測量。endprint
因為不同動作時,手揮動的加速度與角速度是不同的,所以動作的識別總的來說有以下幾種方案:
(1) 只通過加速度來判定動作[1];
(2) 只通過角速度來判定動作;
(3) 通過加速度和角速度協同來判定動作;
(4) 通過紅外發射與定位來判定動作。
對于方案(4),需要很多紅外定位設備來實現這個功能,而方案(2)和(3)雖然精度和效果可以達到很高但是成本也會相當高。因此本設計采取了方案(1)來實現“空中操作”這個功能[2]
通過傾角來識別動作,即通過手使設備向四個方向傾斜,若傾斜超過一個范圍,則判定為移動,達到鼠標移動的目的。通過水平位移來識別動作,即通過平移設備得到移動的加速度,積分一次即是移動速度,再積分一次就是移動的位移了。只需要將速度的大小對應為USB向PC發送報告的頻率,即可實現移動的效果[3]本設計的軟、硬件條件,由于硬件條件有限:單片機的運算能力有限、單加速度計漂移的問題較為嚴重,因此初步選用方案(1),而方案(2)則作為后期拓展開發用。具體來說,就是通過x,y兩個軸的數值進行閾值判斷,若傾斜到一定程度,即通過I2C返回的數值達到一定標準(閾值),則向藍牙串口模塊發送相對應的命令。
2.2 藍牙模塊
本文采用HC?05 嵌入式藍牙串口通信模塊實現無線功能。該模塊的特點是射頻方面的硬件已經調試完備,而且給用戶的接口只是很簡單的UART總線[4] ,這給本文的開發帶來了極大的便利。本設計的發送和接收端配置時采用命令響應工作模式,工作時采用自動連接工作模式,其中發送端配置成主模式,接收端配置成從模式。
HC?05是主從模式,配置步驟如下:
(1) PIO11 置高;
(2) 上電,模塊進入AT 命令響應狀態;
(3) 設置波特率38 400 b/s。
2.3 基于USBD12的免驅動模塊
USBD12芯片是荷蘭飛利浦半導體公司的通用USB接口芯片,由其名稱可以了解HID設備是計算機直接與人交互的設備,例如鍵盤、鼠標和游戲桿等 [5]。本設計中采用的USBD12芯片就可以幫助實現免驅動通信的功能。
為了實現免驅動和本設計中所需功能,對USBD12的控制步驟如下:
(1) 配置USBD12模塊,如讀模塊ID是否正確,若不正確則模塊初始化失敗;
(2) 進入無限循環,等待上位機發給模塊的中斷,進入USB設備初始化的枚舉過程;
(3) 枚舉成功后置位配置標志位,檢測串口是否有命令到來,若有命令,則向上位機發送一個報告,形成一次鍵盤或鼠標動作。
3 實物操作
如圖1所示,可看到本設計的兩部分硬件設備。系統由2節5號電池供電,有1個電源開關、8個操作按鍵、4個不同顏色的彩色LED指示燈、1塊LCD屏、以及1個USB接收端。8個按鍵分別為,左側:上、下、左、右;右側:A,B,C,D(自左向右,自上到下)。B按鍵為模式切換按鍵,可切換4種模式。
空中鼠標模式下,改變設備的傾角即可移動鼠標,左鍵和下鍵為鼠標左鍵功能,右鍵和上鍵為鼠標右鍵功能。在空中鍵盤模式下,上、下、左、右、A,B,C,D分別對應的功能為:鍵盤上、下、左、右、Atl+F4、切換模式、Alt+Table、Enter。同時在進行按鍵操作后,會在LCD上顯示按下的按鍵。
4 方案的可拓展方向及研發前景
首先在平臺方面,可以將這一思想嵌入到當今的移動設備中,如當下流行的智能手機和平板電腦。例如在Android設備中,加速度計幾乎是一個必備器件,而其I2C驅動則是由OEM商已經提供好的,只需編寫相應的應用程序調用相應的接口,再加上一個通用的藍牙USB接收端即可完成本設計的核心功能。這對產品的硬成本的增加幾乎為0。
其次在硬件方面,可以有更多的選擇。對于處理器,可以選擇價格相對低廉的單片機,同時也可以選擇更高端的處理器,在其上運行操作系統達,到多任務運行并且有UI的效果。
另外在動作識別方面,本設計還有較大的提升。目前在消費電子領域,有一款名為WII的游戲機設計的十分成功,它的動作識別就是通過加速度計和陀螺儀配合導航。本設計雖然可以流暢實現空中鍵鼠的功能,但是還可以嘗試其他的算法,以提高響應速度和可靠性。
5 結 語
本文設計了基于USBD12和加速度計的空中鍵鼠,該鍵鼠通過手勢在空中的動作便可控制鼠標的移動。設計程中,采用了加速度傳感器數據采集、USB設備gadget層HID設備、LCD?NOKIA5110顯示、AVR單片機熔絲位的配置、藍牙模塊、手勢動作識別算法、菜單與UI界面等等模塊的軟硬件調試,接收端有一個USB口,插入PC后被識別為一個標準HID人體學輸入設備,無須驅動,即插即用。用戶的操作達到可動態交互的目的。采用動作手勢識別算法,藍牙模塊等實現了通過手勢在空中的動作便可控制鼠標的移動,通過按鍵進行對鍵盤的操作,并且不需要連接線,通過藍牙與插在電腦上的接收端相連接通信,達到動態交互的目的。
參考文獻
[1] 李道斌.基于加速度的無人機縱向控制方案設計[J].現代電子技術,2015,38(18):95?97.
[2] 郭曉博,趙敏,樂珺.基于USB?HUB的能譜儀通信系統設計[J].機械制造與自動化,2015(1):155?157.
[3] 楊磊.通信終端安全模塊研究與設計[D].西安:西安電子科技大學,2015.
[4] 閆蘊霞.基于USB總線的FPGA運行控制卡設計[D].太原:中北大學,2016.
[5] 吳子賢.基于USB的數字掃頻儀的測控接口設計[D].西安:西安科技大學,2013.
[6] 劉亞麗.USB會議簽到器的設計與實現[J].工業控制計算機,2017(3):116?117.endprint