《基于USBD12和加速度計(jì)的空中鍵鼠》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于USBD12和加速度計(jì)的空中鍵鼠(3頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、基于USBD12和加速度計(jì)的空中鍵鼠
摘要:設(shè)計(jì)基于USBD12和加速度計(jì)的空中鍵鼠,通過(guò)手勢(shì)在空中的動(dòng)作便可控制鼠標(biāo)的移動(dòng)。設(shè)計(jì)的研發(fā)調(diào)試過(guò)程中,采用了加速度傳感器數(shù)據(jù)采集、USB設(shè)備gadget層HID設(shè)備、LCD?NOKIA5110顯示、AVR單片機(jī)熔絲位的配置、藍(lán)牙模塊、手勢(shì)動(dòng)作識(shí)別算法、菜單與UI界面等模塊的軟、硬件調(diào)試,接收端有一個(gè)USB口,插入PC后被識(shí)別為一個(gè)標(biāo)準(zhǔn)HID人體學(xué)輸入設(shè)備,無(wú)須驅(qū)動(dòng),即插即用。用戶(hù)的操作到達(dá)可動(dòng)態(tài)交互的目的。采用動(dòng)作手勢(shì)識(shí)別算法,藍(lán)牙模塊等實(shí)現(xiàn)了通過(guò)手勢(shì)在空中的動(dòng)作便可控制鼠標(biāo)的移動(dòng),通過(guò)按鍵進(jìn)行對(duì)鍵盤(pán)的操作,并且不需要連接線,通過(guò)藍(lán)牙與插在電腦
2、上的接收端相連接通信,到達(dá)動(dòng)態(tài)交互的目的。關(guān)鍵詞:藍(lán)牙;USB;免驅(qū)動(dòng);鍵鼠中圖分類(lèi)號(hào):TN99?34;TN46文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1004?373X〔2021〕18?0101?03AirmouseandkeyboardcombopackbasedonUSBD12andaccelerometerZOUJiang〔SchoolofPhysicsandElectronicScience,ZunyiNormalUniversity,Zunyi563006,China〕Abstract:AnairmouseandkeyboardcombopackbasedonUSBD12andaccelerome
3、terwasdesigned,whichcancontrolthemousemovementbymeansofthegesturesintheair.Intheprocessofdevelopmentanddebuggingofthedesign,themodulesofaccelerometersensordataacquisition,gadget?layerHIDdeviceofUSBdevice,LCD?NOKIA5110display,configurationofAVRMCUfusebit,Bluetooth,handgesturesrecognitionalgorithm,men
4、uandUIinterfaceareusedforsoftwareandhardwaredebugging.AUSBportatthereceivingendisrecognizedasastandardHIDafterPCinsertion,whichisfree?drive,andplugandplay.Theoperationofuserscanrealizedynamicinteraction.ThegesturerecognitionalgorithmandBluetoothmoduleareusedtocontrolthemovementofmouseandkeyboardcomb
5、opackbymeansofthegesturesintheair.Thekeyboardisoperatedviakeysandneedntconnectinglines,whichisconnectedwiththeterminalendinsertedintocomputerthroughBluetoothforcommunicationtorealizedynamicinteraction.Keywords:Bluetooth;USB;freedrive;mouseandkeyboard0引言空中鼠標(biāo)是一種輸入設(shè)備,能像傳統(tǒng)鼠標(biāo)一樣操作光標(biāo),卻不局限在某一平面進(jìn)行操作,只是在空中晃動(dòng)就
6、能實(shí)現(xiàn)想要的功能,自由方便就是它最突出的特性。本設(shè)計(jì)還將鍵盤(pán)的操作集成到了空中鼠標(biāo)中,也就是設(shè)計(jì)了空中鼠標(biāo)和鍵盤(pán)合一套裝,即本產(chǎn)品既可以當(dāng)做鼠標(biāo)用,也可當(dāng)作鍵盤(pán)用。從產(chǎn)品角度上講,它適應(yīng)消費(fèi)電子的開(kāi)展方向——更小、熱插拔、無(wú)線、低本錢(qián),從技術(shù)上講,它應(yīng)用了藍(lán)牙、USB、加速度導(dǎo)航技術(shù)等,有一定的理論深度和實(shí)現(xiàn)難度。1系統(tǒng)概覽與運(yùn)行流程1.1系統(tǒng)總體框架本設(shè)計(jì)主要由6個(gè)功能模塊構(gòu)成:MCU主控模塊、鼠標(biāo)動(dòng)作識(shí)別輸入模塊〔加速度傾角識(shí)別〕、按鍵輸入模塊、LCD顯示模塊、藍(lán)牙串口模塊、USBD12模塊。本產(chǎn)品從硬件上看有兩個(gè)獨(dú)立的局部:一局部是動(dòng)作識(shí)別采集編碼和藍(lán)牙發(fā)送設(shè)備;另一局部是藍(lán)牙接收和US
7、B免驅(qū)動(dòng)鏈接設(shè)備,數(shù)據(jù)流參考圖中連接線箭頭。1.2系統(tǒng)運(yùn)行流程上電之后,系統(tǒng)各模塊先初始化,然后通過(guò)按鍵進(jìn)行模式選擇。在一個(gè)模式的運(yùn)行過(guò)程中是不能切換到另一個(gè)流程的。當(dāng)在鼠標(biāo)模式時(shí),對(duì)加速度計(jì)返回的數(shù)據(jù)進(jìn)行判斷,四個(gè)方向的傾角對(duì)應(yīng)鼠標(biāo)的四個(gè)動(dòng)作。當(dāng)條件滿(mǎn)足時(shí)認(rèn)為有鼠標(biāo)的移動(dòng),開(kāi)始循環(huán)向藍(lán)牙串口發(fā)送命令。當(dāng)姿態(tài)復(fù)位時(shí),條件不滿(mǎn)足,停止命令的發(fā)送。在鍵盤(pán)模式下,只需判斷按鍵即可發(fā)送相應(yīng)的命令。一個(gè)模式的流程完成后,可以通過(guò)按鍵選擇切換到另一個(gè)模式。2各功能模塊的實(shí)現(xiàn)原理和方法識(shí)別動(dòng)作識(shí)別模塊主要采用美新公司的MXC6202芯片,它是一款雙軸加速度計(jì),通過(guò)混合信號(hào)處理和集成IIC總線組成一個(gè)完整的傳
8、感系統(tǒng),可以直接和微處理器連接而不再需要A/D轉(zhuǎn)換。MXC6202芯片測(cè)量加速范圍為2g,工作在3.0V,25℃環(huán)境下精度可到達(dá)[g512~g128。]動(dòng)態(tài)靜態(tài)加速都可測(cè)量。因?yàn)椴煌瑒?dòng)作時(shí),手揮動(dòng)的加速度與角速度是不同的,所以動(dòng)作的識(shí)別總的來(lái)說(shuō)有以下幾種方案:〔1〕只通過(guò)加速度來(lái)判定動(dòng)作【1】;〔2〕只通過(guò)角速度來(lái)判定動(dòng)作;〔3〕通過(guò)加速度和角速度協(xié)同來(lái)判定動(dòng)作;〔4〕通過(guò)紅外發(fā)射與定位來(lái)判定動(dòng)作。對(duì)于方案〔4〕,需要很多紅外定位設(shè)備來(lái)實(shí)現(xiàn)這個(gè)功能,而方案〔2〕和〔3〕雖然精度和效果可以到達(dá)很高但是本錢(qián)也會(huì)相當(dāng)高。因此本設(shè)計(jì)采取了方案〔1〕來(lái)實(shí)現(xiàn)“空中操作〞這個(gè)功能【2】通過(guò)傾角來(lái)識(shí)別動(dòng)作,即
9、通過(guò)手使設(shè)備向四個(gè)方向傾斜,假設(shè)傾斜超過(guò)一個(gè)范圍,那么判定為移動(dòng),到達(dá)鼠標(biāo)移動(dòng)的目的。通過(guò)水平位移來(lái)識(shí)別動(dòng)作,即通過(guò)平移設(shè)備得到移動(dòng)的加速度,積分一次即是移動(dòng)速度,再積分一次就是移動(dòng)的位移了。只需要將速度的大小對(duì)應(yīng)為USB向PC發(fā)送報(bào)告的頻率,即可實(shí)現(xiàn)移動(dòng)的效果【3】本設(shè)計(jì)的軟、硬件條件,由于硬件條件有限:?jiǎn)纹瑱C(jī)的運(yùn)算能力有限、單加速度計(jì)漂移的問(wèn)題較為嚴(yán)重,因此初步選用方案〔1〕,而方案〔2〕那么作為后期拓展開(kāi)發(fā)用。具體來(lái)說(shuō),就是通過(guò)x,y兩個(gè)軸的數(shù)值進(jìn)行閾值判斷,假設(shè)傾斜到一定程度,即通過(guò)I2C返回的數(shù)值到達(dá)一定標(biāo)準(zhǔn)?05嵌入式藍(lán)牙串口通信模塊實(shí)現(xiàn)無(wú)線功能。該模塊的特點(diǎn)是射頻方面的硬件已經(jīng)調(diào)
10、試完備,而且給用戶(hù)的接口只是很簡(jiǎn)單的UART總線【4】,這給本文的開(kāi)發(fā)帶來(lái)了極大的便利。本設(shè)計(jì)的發(fā)送和接收端配置時(shí)采用命令響應(yīng)工作模式,工作時(shí)采用自動(dòng)連接工作模式,其中發(fā)送端配置成主模式,接收端配置成從模式。HC?05是主從模式,配置步驟如下:〔1〕PIO11置高;〔2〕上電,模塊進(jìn)入AT命令響應(yīng)狀態(tài);〔3〕設(shè)置波特率38400b/s。2.3基于USBD12的免驅(qū)動(dòng)模塊USBD12芯片是荷蘭飛利浦半導(dǎo)體公司的通用USB接口芯片,由其名稱(chēng)可以了解HID設(shè)備是計(jì)算機(jī)直接與人交互的設(shè)備,例如鍵盤(pán)、鼠標(biāo)和游戲桿等【5】。本設(shè)計(jì)中采用的USBD12芯片就可以幫助實(shí)現(xiàn)免驅(qū)動(dòng)通信的功能。為了實(shí)現(xiàn)免驅(qū)動(dòng)和本設(shè)
11、計(jì)中所需功能,對(duì)USBD12的控制步驟如下:〔1〕配置USBD12模塊,如讀模塊ID是否正確,假設(shè)不正確那么模塊初始化失?。弧?〕進(jìn)入無(wú)限循環(huán),等待上位機(jī)發(fā)給模塊的中斷,進(jìn)入U(xiǎn)SB設(shè)備初始化的枚舉過(guò)程;〔3〕枚舉成功后置位配置標(biāo)志位,檢測(cè)串口是否有命令到來(lái),假設(shè)有命令,那么向上位機(jī)發(fā)送一個(gè)報(bào)告,形成一次鍵盤(pán)或鼠標(biāo)動(dòng)作。3實(shí)物操作如圖1所示,可看到本設(shè)計(jì)的兩局部硬件設(shè)備。系統(tǒng)由2節(jié)5號(hào)電池供電,有1個(gè)電源開(kāi)關(guān)、8個(gè)操作按鍵、4個(gè)不同顏色的彩色LED指示燈、1塊LCD屏、以及1個(gè)USB接收端。8個(gè)按鍵分別為,左側(cè):上、下、左、右;右側(cè):A,B,C,D〔自左向右,自上到下〕。B按鍵為模式切換按鍵,可
12、切換4種模式??罩惺髽?biāo)模式下,改變?cè)O(shè)備的傾角即可移動(dòng)鼠標(biāo),左鍵和下鍵為鼠標(biāo)左鍵功能,右鍵和上鍵為鼠標(biāo)右鍵功能。在空中鍵盤(pán)模式下,上、下、左、右、A,B,C,D分別對(duì)應(yīng)的功能為:鍵盤(pán)上、下、左、右、Atl+F4、切換模式、Alt+Table、Enter。同時(shí)在進(jìn)行按鍵操作后,會(huì)在LCD上顯示按下的按鍵。4方案的可拓展方向及研發(fā)前景首先在平臺(tái)方面,可以將這一思想嵌入到當(dāng)今的移動(dòng)設(shè)備中,如當(dāng)下流行的智能 和平板電腦。例如在Android設(shè)備中,加速度計(jì)幾乎是一個(gè)必備器件,而其I2C驅(qū)動(dòng)那么是由OEM商已經(jīng)提供好的,只需編寫(xiě)相應(yīng)的應(yīng)用程序調(diào)用相應(yīng)的接口,再加上一個(gè)通用的藍(lán)牙USB接收端即可完本錢(qián)設(shè)
13、計(jì)的核心功能。這對(duì)產(chǎn)品的硬本錢(qián)的增加幾乎為0。其次在硬件方面,可以有更多的選擇。對(duì)于處理器,可以選擇價(jià)格相對(duì)低廉的單片機(jī),同時(shí)也可以選擇更高端的處理器,在其上運(yùn)行操作系統(tǒng)達(dá),到多任務(wù)運(yùn)行并且有UI的效果。另外在動(dòng)作識(shí)別方面,本設(shè)計(jì)還有較大的提升。目前在消費(fèi)電子領(lǐng)域,有一款名為WII的游戲機(jī)設(shè)計(jì)的十分成功,它的動(dòng)作識(shí)別就是通過(guò)加速度計(jì)和陀螺儀配合導(dǎo)航。本設(shè)計(jì)雖然可以流暢實(shí)現(xiàn)空中鍵鼠的功能,但是還可以嘗試其他的算法,以提高響應(yīng)速度和可靠性。5結(jié)語(yǔ)本文設(shè)計(jì)了基于USBD12和加速度計(jì)的空中鍵鼠,該鍵鼠通過(guò)手勢(shì)在空中的動(dòng)作便可控制鼠標(biāo)的移動(dòng)。設(shè)計(jì)程中,采用了加速度傳感器數(shù)據(jù)采集、USB設(shè)備gadget層HID設(shè)備、LCD?NOKIA5110顯示、AVR單片機(jī)熔絲位的配置、藍(lán)牙模塊、手勢(shì)動(dòng)作識(shí)別算法、菜單與UI界面等等模塊的軟硬件調(diào)試,接收端有一個(gè)USB口,插入PC后被識(shí)別為一個(gè)標(biāo)準(zhǔn)HID人體學(xué)輸入設(shè)備,無(wú)須驅(qū)動(dòng),即插即用。用戶(hù)的操作到達(dá)可動(dòng)態(tài)交互的目的。采用動(dòng)作手勢(shì)識(shí)別算法,藍(lán)牙模塊等實(shí)現(xiàn)了通過(guò)手勢(shì)在空中的動(dòng)作便可控制鼠標(biāo)的移動(dòng),通過(guò)按鍵進(jìn)行對(duì)鍵盤(pán)的操作,并且不需要連接線,通過(guò)藍(lán)牙與插在電腦上的接收端相連接通信,到達(dá)動(dòng)態(tài)交互的目的。