使用電場(chǎng)傳感器MC33794的模擬游戲控制器
關(guān)鍵詞 電場(chǎng)傳感囂 MC33794模擬游戲控制器 C805lF310
引 言
傳感器技術(shù)是測(cè)量技術(shù)、半導(dǎo)體技術(shù)和信息處理技術(shù)等眾多學(xué)科相互交叉的綜合性高新技術(shù)密集的前沿技術(shù)之一,也是當(dāng)代科學(xué)技術(shù)發(fā)展的一個(gè)重要標(biāo)志。如果說(shuō)計(jì)算機(jī)是人類大腦的擴(kuò)展,那么傳感器就是人類五官的延伸。隨著傳感器技術(shù)的發(fā)展,人機(jī)接口的種類越來(lái)越豐富,從早期最簡(jiǎn)單的機(jī)械式按鈕、電位器旋鈕到現(xiàn)在的電容式觸摸感應(yīng)、電場(chǎng)非接觸傳感、人臉識(shí)別及語(yǔ)音識(shí)別等,人機(jī)接口的智能性、易用性及可靠性也顯著提高。本文通過使用Freescale公司的MC33794電場(chǎng)傳感器,設(shè)計(jì)了一種新型的模擬游戲控制器。該模擬游戲控制器通過電場(chǎng)傳感器的電極,非接觸感知手掌的姿態(tài),從而控制模擬游戲中各個(gè)方向上的力度,實(shí)現(xiàn)對(duì)“模擬量”控制的功能。
模擬游戲中,通常需要控制游戲中上、下、左、右各個(gè)方向上的力度。例如汽車模擬游戲中,通常需要控制游戲中汽車的油門及方向,這2個(gè)參數(shù)是確定汽車行駛的重要參數(shù),而這些參數(shù)的變化是連續(xù)的,并且在不同的控制力度下汽車的行駛會(huì)有不同的表現(xiàn)。在以往的低成本游戲控制器中,不能感知這些強(qiáng)度連續(xù)變化的模擬量。在本設(shè)計(jì)中,將手掌放置于模擬游戲控制器電極上方,控制時(shí)只須變化手掌相對(duì)于游戲控制板電極平面的姿態(tài),就可以將游戲玩家需要的控制強(qiáng)度轉(zhuǎn)化為對(duì)游戲的控制強(qiáng)度,輸出到游戲控制中心,實(shí)現(xiàn)對(duì)游戲中被控物體的控制功能。
1 電場(chǎng)傳感器MC33794
電場(chǎng)是指存在于帶電物體的周圍,使帶電物體能夠受到力的作用的空間。電場(chǎng)普遍存在于自然界中,物體的摩擦?xí)D(zhuǎn)移電荷產(chǎn)生電場(chǎng),鯊魚等魚類通過電場(chǎng)偵測(cè)獵物,電子領(lǐng)域的電容器中存在穿過帶電電容極板的電場(chǎng)。只要物體可以看作是電容板,那么都可以成為電場(chǎng)感應(yīng)器的一部分。幾乎所有的物體在其自身的電容和電場(chǎng)改變時(shí)都能夠被感應(yīng),電場(chǎng)和電容是物體問相互作用的固有現(xiàn)象。通過一個(gè)主動(dòng)電極就能夠產(chǎn)生和調(diào)節(jié)一個(gè)電場(chǎng);具有一定介電常數(shù)的物體靠近電容的兩極,通過感應(yīng)電極就可以測(cè)量到電容的變化。這樣就可以通過非接觸感應(yīng)技術(shù)測(cè)量物體的三維空間位置變化。
FTeescale公司的電場(chǎng)傳感器MC33794適用于需要對(duì)物體進(jìn)行非接觸感應(yīng)的應(yīng)用。它包含了產(chǎn)生電場(chǎng)所必需的電路,能夠產(chǎn)生低水平電場(chǎng),測(cè)量由于物體在電場(chǎng)中移動(dòng)造成的電場(chǎng)負(fù)載。MC33794還可用于檢測(cè)與電極相關(guān)的電場(chǎng)中的物體。集成電路可以產(chǎn)生一個(gè)低頻正弦波。其頻率可通過使用外部電阻進(jìn)行調(diào)節(jié),并優(yōu)化到125kHz。正弦波的諧波含量非常低,可以避免產(chǎn)生諧波干擾。內(nèi)部產(chǎn)生器可以產(chǎn)生5.0V的峰一峰輸出電壓,并通過大約22Ω的內(nèi)部電阻。MC33794與MCU的連接示意圖如圖1所示。
MC33794可以連接9個(gè)電極和2個(gè)參考電極,通過一個(gè)屏蔽驅(qū)動(dòng)以減小線纜電容回路對(duì)測(cè)量產(chǎn)生的影響。MC33794還帶有+5V的電壓調(diào)節(jié)器,可向外部單片機(jī)系統(tǒng)供電,同時(shí)還提供了一個(gè)燈驅(qū)動(dòng)輸出。
2 游戲控制器系統(tǒng)設(shè)計(jì)
2.1 組合型方向控制電極設(shè)計(jì)
電場(chǎng)傳感器能夠感知電場(chǎng)中物體在三維空間內(nèi)的移動(dòng),物體感知原理如圖2所示。當(dāng)手掌進(jìn)入電極產(chǎn)生的電場(chǎng)區(qū)域以后。電極卜的電流會(huì)有相應(yīng)的變化,從而感知手掌距電極的距離。
根據(jù)此物體原理,可以通過使用MC33794的5個(gè)電極在同一平面內(nèi)組成“十”字組合型方向控制電極,如圖3所示。該組合型方向控制電極可以感知電極上方5個(gè)垂直方向上的物體高度變化,將手掌置于組合電極上即可方便地對(duì)游戲中被控物體的方向進(jìn)行控制。單個(gè)電極選用八角型銅板,面積約為30 cm2(5cm6cm);整個(gè)“十”字組合型方向控制電極所占面積約為270cm2(15cm18cm),適合大部分成年人手掌覆蓋在此組合電極區(qū)域。針對(duì)兒童市場(chǎng),須使用更小尺寸的電極。
在使用時(shí),1~4號(hào)電極表示游戲中的4個(gè)方向,手掌相對(duì)這些電極的高度表示需要對(duì)這些方向上控制的強(qiáng)度,高度越低,表示需要控制的強(qiáng)度越大;由于在設(shè)計(jì)游戲控制器時(shí)考慮到如果手掌彎曲,那么將出現(xiàn)需要同時(shí)控制相反兩個(gè)方向的情況(這種控制方式在實(shí)際情況中不存在),因此在1~4號(hào)電極中間加入了5號(hào)電極,以檢測(cè)手掌彎曲狀態(tài)。又因?yàn)槭终撇豢赡鼙3纸^對(duì)水平,因此引入水平誤差系數(shù)ε。該參數(shù)使得控制平面允許有一定的彎曲度。
2.2 前端信號(hào)調(diào)理電路
MC33794輸出端LEVEL是O~3.5V變化的模擬信號(hào),根據(jù)不同的電極種類,輸出的最大值會(huì)略有不同。當(dāng)極板上方無(wú)物體時(shí),LEVEL輸出最大值;當(dāng)有物體進(jìn)入電極感應(yīng)區(qū)域后,LEVEL輸出電壓將會(huì)降低,最終降至OV。由于MC33794產(chǎn)生的電場(chǎng)為低水平電場(chǎng),電極較為敏感的區(qū)域在電極上方O~2cm處,而作為游戲控制器使用時(shí),需要用到的電極敏感區(qū)域?yàn)殡姌O上方2~10cm處,因此在前端信號(hào)調(diào)理部分需要放大此高度區(qū)間內(nèi)的信號(hào)。
圖4為前端信號(hào)調(diào)理電路圖。該電路由2個(gè)工作在反向放大模式下的LM358D運(yùn)算放大器組成。電阻R8的滑動(dòng)端輸出VOFFSET偏置電壓,并輸入到放大器的正輸入端。MC33794的LEVEL信號(hào)接到第一級(jí)LM358D運(yùn)算放大器的負(fù)輸入端,經(jīng)過放大后,輸出信號(hào)LEVEL_AMP的變化趨勢(shì)與LEVEL信號(hào)一致。
該信號(hào)放大電路輸出電壓與輸入電壓的關(guān)系為:
通過調(diào)節(jié)VOFFSET與R7的值,可以對(duì)LEVEL信號(hào)中所感興趣的電壓區(qū)間進(jìn)行放大,同時(shí)還可以控制輸出信號(hào)的幅度范圍。在該設(shè)計(jì)中,通過對(duì)LEVEL信號(hào)2.9~3.5V電壓區(qū)間內(nèi)的信號(hào)放大,滿足了被測(cè)物體在電極上方2~10cm變化時(shí),輸出電壓在0~3.4V變化的靈敏度要求。
2.3 游戲控制器硬件設(shè)計(jì)
游戲控制器的主控MCU選用Silicon Lab公司的C805lF310單片機(jī)。該單片機(jī)集成有采樣頻率為200ksps的10位ADC,外設(shè)有串口及SPI等常用接口。當(dāng)單片機(jī)工作在25MHz時(shí),速度町達(dá)25MIPS。
本設(shè)計(jì)中,將信號(hào)調(diào)理電路的輸出接到C8051F310的ADC輸入端,數(shù)據(jù)經(jīng)過計(jì)算后通過RS232串口發(fā)送至PC。系統(tǒng)硬件框圖如圖5所示。
將MC33794的A、B、C、D接到C805lF310的I/O口上,通過軟件控制I/O口輸出,選擇需要采樣的電極。MC33794共9個(gè)電極可以使用,其中E1~E5接控制方向的電極,其余電極用作其他按鍵。
2.4 游戲控制器軟件設(shè)計(jì)
控制器的軟件主要控制選擇電極、采樣、濾波、運(yùn)算,最后將數(shù)據(jù)通過RS-232串口送回游戲控制中心。軟件的運(yùn)算部分需要將方向控制電極上采集到的三維手掌姿態(tài)信息,變換為二維直角坐標(biāo)平面內(nèi)x軸與y軸上的數(shù)值,供游戲合成方向矢量使用。三維直角坐標(biāo)系內(nèi),方向控制電極上所采集到的各點(diǎn)的電壓為這些點(diǎn)在z軸上的幅度值,分別表示為zE1、zE2、…、zE5,則在二維直角坐標(biāo)系內(nèi)x軸上的控制力度為△x=zE2-zE4,y軸上的控制力度為△y=zE3-zE1。當(dāng)手掌平面與方向控制電極平面平行時(shí),△x與△y均為0;當(dāng)手掌平面偏向1號(hào)與4號(hào)電極方向(即以1號(hào)電極為向前方向時(shí)的右前方向)時(shí),△x與△y均為正值,此時(shí),在二維直角坐標(biāo)系內(nèi),合成后的方向矢量將在第一象限中。由于實(shí)際中不存在同時(shí)進(jìn)行兩個(gè)相反方向控制的情況。因此須事先約定手掌平面不能彎曲,同時(shí)引入水平誤差系數(shù)ε。計(jì)算方向矢量的同時(shí),各個(gè)變量還須滿足以下2個(gè)公式:
軟件流程如圖6所示。當(dāng)手掌向右前方向傾斜時(shí),按照?qǐng)D3所示的三維空間直角坐標(biāo)系內(nèi)的電極放置方向,分別對(duì)各個(gè)方向控制電極三維空問內(nèi)的坐標(biāo)投影至xz和yz平面,即將2號(hào)與4號(hào)電極的三維坐標(biāo)在xz平面上投影,將1號(hào)與3號(hào)電極的三維坐標(biāo)在yz平面投影。投影后的xz與yz坐標(biāo)如圖7所示。
當(dāng)手掌向右前方向傾斜時(shí),二維坐標(biāo)平面內(nèi)x軸與y軸上的方向控制分量在坐標(biāo)系內(nèi)合成的方向控制矢量如圖8所示。
合成后的矢量v=△x+i△y,角度值為,模代表該方向上的力度。通過此向量便可控制游戲中被控物體的方向以及該方向上所需的控制強(qiáng)度。
結(jié)語(yǔ)
本設(shè)計(jì)通過使用電場(chǎng)傳感器實(shí)現(xiàn)了模擬游戲控制器,通過電場(chǎng)傳感器對(duì)三維空間的感知能力,給游戲玩家?guī)?lái)了模擬游戲的全新體驗(yàn)。目前,該游戲控制器已經(jīng)完成全部硬件調(diào)試及軟件測(cè)試。試驗(yàn)結(jié)果表明.其完全實(shí)現(xiàn)了預(yù)計(jì)的控制功能,且工作良好。這種通過電場(chǎng)進(jìn)行控制的方式具有可靠性高、使用壽命長(zhǎng)、成本較低等特點(diǎn),同時(shí)還可以應(yīng)用于各種需要控制模擬量的場(chǎng)合(如模型汽車控制板),具有廣闊的應(yīng)用前景。
評(píng)論