国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于STM32的多功能空中鼠標(biāo)設(shè)計(jì)

2018-09-20 11:29:34曾澤良唐盈輝賴(lài)英杰歐錄富
無(wú)線互聯(lián)科技 2018年15期

曾澤良 唐盈輝 賴(lài)英杰 歐錄富

摘要:在傳統(tǒng)的人機(jī)交互中,一般用鼠標(biāo)、鍵盤(pán)、遙控器或操縱桿等設(shè)備,將用戶(hù)的控制指令發(fā)送給相應(yīng)的控制終端。隨著多媒體智能設(shè)備的發(fā)展,平板電腦、筆記本、智能電視機(jī)、大屏幕設(shè)備、智能游戲機(jī)等各種產(chǎn)品對(duì)交互的方式各有要求,傳統(tǒng)的交互設(shè)備已經(jīng)不能滿足移動(dòng)辦公、移動(dòng)娛樂(lè)、和生活對(duì)三維空間操縱的需要。文章基于STM32設(shè)計(jì)一種多功能空中鼠標(biāo),在空中操作即可實(shí)現(xiàn)普通光電鼠標(biāo)的功能,多種輸入方式,使用方便。

關(guān)鍵詞:STM32;空中鼠標(biāo);輸入方式

傳統(tǒng)的鼠標(biāo)按其工作原理及其內(nèi)部結(jié)構(gòu)以及電路原理的差異可以分為機(jī)械式、光機(jī)式和光電式等。

機(jī)械式鼠標(biāo)和光機(jī)式鼠標(biāo)器都屬于滾輪鼠標(biāo),在多年以前隨著光電鼠標(biāo)的發(fā)展,滾輪鼠標(biāo)由于其結(jié)構(gòu)缺陷、精度低、滾輪易受污染等原因,逐漸被用戶(hù)所淘汰。

光電鼠標(biāo)器是基于光電信號(hào),來(lái)檢測(cè)鼠標(biāo)的位移,將鼠標(biāo)的位移信號(hào)轉(zhuǎn)換為電脈沖信號(hào),再通過(guò)芯片進(jìn)行程序處理,以USB或PS/2方式將數(shù)據(jù)發(fā)送到電腦上,電腦根據(jù)相應(yīng)的驅(qū)動(dòng)程序?qū)?shù)據(jù)轉(zhuǎn)換位為屏幕上的光標(biāo)移動(dòng)命令,以此來(lái)控制屏幕上的光標(biāo)箭頭的移動(dòng)。

近年來(lái),隨著多媒體智能終端的發(fā)展,對(duì)人機(jī)交互的方式要求越來(lái)越高,輸入方式越來(lái)越多種,在一些應(yīng)用場(chǎng)合,普通鼠標(biāo)已不能滿足輸入要求,從而產(chǎn)生了空中鼠標(biāo)的概念,相關(guān)的產(chǎn)品也層出不窮[1],本文就此基于STM32設(shè)計(jì)一種具有多種輸入方式的多功能空中鼠標(biāo)。

1 方案設(shè)計(jì)

光電鼠標(biāo)的工作原理限制了其只適用于平面操作,而無(wú)法在三維空間中進(jìn)行立體操作。不同于光電鼠標(biāo)基于光電信號(hào)的位移監(jiān)測(cè)原理,本設(shè)計(jì)通過(guò)MPU6050傳感器來(lái)檢測(cè)鼠標(biāo)的角速度、加速度變化,計(jì)算出鼠標(biāo)的空間坐標(biāo)動(dòng)態(tài)變化,進(jìn)而控制屏幕上光標(biāo)的移動(dòng)。MPU6050為6軸傳感器,在電腦屏幕上鼠標(biāo)指針的移動(dòng)是二維平面,即上下方向和左右方向,所以在普通的應(yīng)用中,只需讀取鼠標(biāo)在X軸和Z軸上的位移變化即可,但在一些特殊應(yīng)用上,如三維設(shè)計(jì)時(shí),多維度的傳感器可以使操作更便捷和直觀。而對(duì)于不適合立體操作的場(chǎng)合,本文設(shè)計(jì)了搖桿電位器輸入方式,在使用時(shí),在前后或左右兩個(gè)維度上推動(dòng)搖桿時(shí),搖桿電位器的輸出電壓會(huì)相應(yīng)地發(fā)生變化,單片機(jī)通過(guò)讀取電位器的電壓輸出,通過(guò)AD轉(zhuǎn)化,將電壓的變化轉(zhuǎn)換為光標(biāo)的位移量。OLED顯示屏用于顯示相應(yīng)的操作、操作記錄,以及相應(yīng)的操作說(shuō)明[2]。

本設(shè)計(jì)的系統(tǒng)框如圖1所示。

圖1基于STM32的多功能空中鼠標(biāo)系統(tǒng)框

2 硬件電路設(shè)計(jì)

如圖1所示,據(jù)本系統(tǒng)的工作原理,硬件部分主要有MPU6050模塊、無(wú)線模塊、STM32最小系統(tǒng)電路、充電電路、穩(wěn)壓電路、OLED和鋰電池等。

從圖1可知,本設(shè)計(jì)硬件電路的重點(diǎn)在于輸入部分,包括MPU6050、搖桿電位器和按鍵。

MPU6050是一種用途非常廣泛的6軸姿態(tài)傳感器芯片,模塊在電路硬件上接口為IIC方式,因此在設(shè)計(jì)與STM32硬件電路的連接時(shí),可以連接到STM32的IIC總線引腳上,其驅(qū)動(dòng)程序通過(guò)單片機(jī)內(nèi)部的IIC實(shí)現(xiàn)。其驅(qū)動(dòng)程序的編寫(xiě)可根據(jù)其時(shí)序圖來(lái)實(shí)現(xiàn)[3]。

搖桿電位器是一種常見(jiàn)于操縱桿、手柄等設(shè)備上的傳感器。因搖桿電位器為模擬輸出,STM32通過(guò)AD讀取其模擬輸出,需要注意的是搖桿電位器需要采用精度較高、溫漂小的,且在電路上對(duì)AD的參考電壓也要求較高,電壓紋波在成本范圍內(nèi)盡量小。

按鍵電路包括基本功能按鍵,即左鍵、右鍵、確認(rèn)鍵和姿態(tài)模式開(kāi)啟按鍵,為了適應(yīng)多媒體應(yīng)用場(chǎng)合,本設(shè)計(jì)增加了擴(kuò)展按鍵,包括音量增加鍵、音量減小鍵、全屏播放鍵、返回鍵等。

對(duì)于傳輸部分,本設(shè)計(jì)的無(wú)線模塊可采用NRF2401模塊。NRF2401模塊為SPI方式,通過(guò)SPI接口與STM32單片機(jī)連接,相應(yīng)的驅(qū)動(dòng)程序也采用單片機(jī)內(nèi)部SPI實(shí)現(xiàn)。

本設(shè)計(jì)電路如圖2所示,包含手持端和接收端兩部分,MCU采用STM32F103C8T6。手持端為電池供電,充電采用TP4056電池管理模塊,穩(wěn)壓電路采用LDO方式。接收端通過(guò)USB供電及向PC端發(fā)送數(shù)據(jù)。

3 程序設(shè)計(jì)

程序的設(shè)計(jì)分為手持端和接收端。手持端通過(guò)讀取按鍵、MPU6050、搖桿電位器的數(shù)據(jù)并轉(zhuǎn)換為相應(yīng)的控制命令,通過(guò)NRF2401發(fā)送數(shù)據(jù)。接收端通過(guò)NRF2401接收數(shù)據(jù)并將數(shù)據(jù)通過(guò)USB發(fā)送到PC。

手持端的程序主要包括按鍵讀取函數(shù)、MPU6050的IIC驅(qū)動(dòng)函數(shù)、搖桿電位器的AD轉(zhuǎn)換函數(shù)、NRF2401的SP頭動(dòng)函數(shù)、顯示屏的驅(qū)動(dòng)函數(shù)以及數(shù)據(jù)處理函數(shù)。

接收端的程序主要包括RF2401的SPI驅(qū)動(dòng)函數(shù)、USB-HID協(xié)議函數(shù)和數(shù)據(jù)處理函數(shù)。

4 結(jié)語(yǔ)

本文所設(shè)計(jì)的空中鼠標(biāo)硬件電路部分較為簡(jiǎn)單,MPU6050和搖桿電位器的結(jié)合,使得本設(shè)計(jì)在平面操作和立體操作上都極為簡(jiǎn)單。整體來(lái)說(shuō),本設(shè)計(jì)整合了平面操作和立體操作,通過(guò)MPU6050、搖桿電位器和按鍵進(jìn)行光標(biāo)的位移控制、左右鍵功能和多媒體控制功能,既可以滿足一般的應(yīng)用場(chǎng)合,在一些特殊場(chǎng)合如戶(hù)外、工作現(xiàn)場(chǎng)和移動(dòng)式等環(huán)境下,也具有普通鼠標(biāo)不具備的優(yōu)勢(shì)。

[參考文獻(xiàn)]

[1]陳建新,卜翔,王榮,等.基于MEMS加速度的三維無(wú)線鼠標(biāo)設(shè)計(jì)與實(shí)現(xiàn)[J].無(wú)線互聯(lián)科技,2011(8): 22-25.

[2]滕飛,胡湘娟,陽(yáng)泳.基于STM32F103的空中鼠標(biāo)設(shè)計(jì)與論述[J].科技創(chuàng)新與應(yīng)用,2015(34): 40.

[3]張冬忙,鄧忠平,趙寶龍,等.一種應(yīng)用于空中鼠標(biāo)的數(shù)據(jù)校正方法[J].廣播電視信息,2013(6):54-57.

凤山县| 佳木斯市| 棋牌| 安化县| 盈江县| 凯里市| 封丘县| 成安县| 中方县| 霍林郭勒市| 临桂县| 东方市| 潢川县| 巧家县| 达州市| 遵化市| 政和县| 广宁县| 剑河县| 定襄县| 溆浦县| 邹城市| 巨野县| 东源县| 封丘县| 丰城市| 隆化县| 玛多县| 阳春市| 阿鲁科尔沁旗| 藁城市| 成安县| 镇平县| 方山县| 开封县| 中西区| 水富县| 屯门区| 长海县| 临江市| 珠海市|