專利名稱:用于fps游戲的游戲手柄及其定位方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種游戲操縱輸入設(shè)備及其定位方法,特別是一種電視游戲或電 腦游戲的游戲手柄及其定位方法。
背景技術(shù):
游戲手柄是電視游戲或電腦游戲中最主要的輸入設(shè)備,普通的游戲手柄一
般都會(huì)有16個(gè)功能按鍵和兩個(gè)搖桿即左搖桿及右搖桿,搖桿具有X軸和Y軸, 主控芯片讀取左、右搖桿的X、 Y軸的位置并轉(zhuǎn)換為相應(yīng)的數(shù)據(jù)格式送給游戲主 機(jī),玩家可以通過(guò)改變左右搖桿的位置來(lái)控制游戲中的相應(yīng)動(dòng)作。 一般右搖桿 在FPS (First Person Shooting,第一人稱射擊)游戲中用于控制視角或槍的 瞄準(zhǔn)。普通游戲手柄的搖桿X、 Y軸數(shù)值定義為如果用戶不移動(dòng)搖桿,搖桿處 于中間位置,X軸輸出中間值128 (最左Q,最右255), Y軸輸出中間值128(最 上0,最下255)給游戲主機(jī),假設(shè)這時(shí)右搖桿是控制槍的準(zhǔn)星,這時(shí)槍的準(zhǔn)星 不會(huì)移動(dòng),當(dāng)用戶向左移動(dòng)搖桿,槍的準(zhǔn)星會(huì)根據(jù)右搖桿送的X軸向左偏移的 量按照一定速度向左移動(dòng),當(dāng)搖桿越向左邊,槍的準(zhǔn)星向左邊移動(dòng)的速度越快, 當(dāng)右搖桿X軸輸出O時(shí),槍的準(zhǔn)星向左邊移動(dòng)的速度最快,同樣,操縱搖桿向 右邊、向上或向下也是一樣。由于搖桿從中間到最左邊的距離實(shí)際上只有l(wèi)cm 左右,在需要精確瞄準(zhǔn)時(shí),要讓搖桿有微微的偏移來(lái)控制槍的準(zhǔn)星慢慢移動(dòng)就 顯得比較困難,導(dǎo)致用戶較難精確定位。由于普通手柄搖桿本身的這種特性使 手柄在FPS游戲中精確定位比較困難,讓用戶非常遺憾。特別是目前電腦游戲 中流行的網(wǎng)絡(luò)游戲由于普通手柄無(wú)法精確瞄準(zhǔn),用戶采用鍵盤(pán)、鼠標(biāo)作為輸入
4設(shè)備,但用鍵盤(pán)、鼠標(biāo)由于坐姿較為固定,時(shí)間長(zhǎng)了會(huì)比較累,沒(méi)有手柄操作 舒適的手感和游戲的震動(dòng)效果體驗(yàn),因此用鍵盤(pán)鼠標(biāo)或手柄玩游戲各有其優(yōu)缺 占。
V 、、、 o
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種用于FPS游戲的游戲手柄及其定位方法,要解決 的技術(shù)問(wèn)題是使手柄能夠精確定位。
本發(fā)明采用以下技術(shù)方案用于FPS游戲的游戲手柄,游戲手柄上設(shè)有左 搖桿,游戲手柄內(nèi)有主控芯片,所述游戲手柄上設(shè)有軌跡球,軌跡球下設(shè)有位 移傳感器,位移傳感器將采集到的軌跡球的位移信號(hào)傳遞給主控芯片。
本發(fā)明的軌跡球下方設(shè)有壓力傳感器,壓力傳感器設(shè)置在上板和下板之間, 壓力傳感器將感應(yīng)到的壓力信號(hào)轉(zhuǎn)換為電壓信號(hào)傳遞給主控芯片。
本發(fā)明的位移傳感器采用鼠標(biāo)對(duì)管,軌跡球的滾球上面設(shè)置鼠標(biāo)對(duì)管的Y 軸轉(zhuǎn)軸,滾球側(cè)面設(shè)置鼠標(biāo)對(duì)管的X軸轉(zhuǎn)軸,Y軸轉(zhuǎn)軸和X軸轉(zhuǎn)軸與滾球接觸, Y軸轉(zhuǎn)軸上設(shè)置有Y軸紅外發(fā)光二極管、Y軸光電接收管、Y軸編碼輪,X軸轉(zhuǎn) 軸上設(shè)置有X軸紅外發(fā)光二極管、X軸光電接收管、X軸編碼輪,Y軸光電接收 管和X軸光電接收管分別與鼠標(biāo)數(shù)據(jù)轉(zhuǎn)換芯片連接,鼠標(biāo)數(shù)據(jù)轉(zhuǎn)換芯片連接到 主控芯片。
本發(fā)明的位移傳感器采用光學(xué)傳感裝置,軌跡球的滾球側(cè)面設(shè)置光學(xué)傳感 裝置的光學(xué)透鏡,光學(xué)傳感裝置內(nèi)設(shè)有光學(xué)傳感器,發(fā)光或激光二極管,光學(xué) 傳感器與主控芯片連接。
一種用于FPS游戲的游戲手柄定位方法,包括以下步驟 一、游戲手柄的 主控芯片檢測(cè)壓力傳感器的電壓輸出信號(hào);二、主控芯片檢測(cè)軌跡球位移信號(hào); 三、主控芯片將壓力傳感器的信號(hào)、精確定位激活鍵狀態(tài)、右搖桿中間死區(qū)值
5和軌跡球的位移信號(hào)疊加;主控芯片將疊加后的信號(hào)送給游戲主機(jī)。
本發(fā)明的主控芯片檢測(cè)壓力傳感器的電壓輸出信號(hào)前,激活鍵和右搖桿中 間死區(qū)設(shè)置,得到精確定位激活鍵和游戲中的右搖桿中間死區(qū)值。
本發(fā)明的壓力傳感器受到力的作用改變電壓輸出信號(hào),主控芯片通過(guò)A/D
轉(zhuǎn)換讀取壓力傳感器的電壓輸出變化。
本發(fā)明的主控芯片按周期讀取軌跡球移動(dòng)數(shù)據(jù),記錄下滾球X軸、Y軸的移 動(dòng)值,并等待下一個(gè)循環(huán)周期讀取數(shù)據(jù)。
本發(fā)明的主控芯片將壓力傳感器的信號(hào)、精確定位激活鍵狀態(tài)、右搖桿中 間死區(qū)值和軌跡球的位移信號(hào)疊加轉(zhuǎn)為右搖桿數(shù)據(jù)。
本發(fā)明的游戲手柄設(shè)有一個(gè)右搖桿,主控芯片將右搖桿移動(dòng)的X軸和Y軸 的移動(dòng)值、右搖桿中間死區(qū)值和軌跡球的位移信號(hào)疊加轉(zhuǎn)為右搖桿數(shù)據(jù)。
本發(fā)明與現(xiàn)有技術(shù)相比,將帶有壓力傳感器的軌跡球模擬右搖桿動(dòng)作和鼠 標(biāo)動(dòng)作,位移傳感器將軌跡球的位移信號(hào)傳遞給主控芯片,主控芯片能夠?qū)⑵?轉(zhuǎn)換為正常的右搖桿動(dòng)作控制信號(hào)或鼠標(biāo)模式的動(dòng)作控制信號(hào)傳送給游戲主 機(jī),在游戲中進(jìn)行快速定位或精確定位,使用戶在電視游戲或電腦游戲中能夠 同時(shí)體驗(yàn)到手柄舒適的手感、強(qiáng)烈的游戲震動(dòng)效果、搖桿快速靈活的運(yùn)動(dòng)控制 和鼠標(biāo)的精確定位。
圖1為本發(fā)明實(shí)施例1的外觀布局圖。
圖2為本發(fā)明實(shí)施例1的軌跡球結(jié)構(gòu)示意圖。
圖3為本發(fā)明實(shí)施例1和2用鼠標(biāo)對(duì)管檢測(cè)軌跡球運(yùn)動(dòng)的結(jié)構(gòu)示意圖。 圖4為本發(fā)明實(shí)施例1和2用光學(xué)傳感器測(cè)軌跡球運(yùn)動(dòng)的結(jié)構(gòu)示意圖。 圖5為本發(fā)明實(shí)施例1用鼠標(biāo)對(duì)管檢測(cè)軌跡球運(yùn)動(dòng)的電路框圖。圖6為本發(fā)明實(shí)施例1用光學(xué)傳感器測(cè)軌跡球運(yùn)動(dòng)的電路框圖。 圖7為本發(fā)明游戲手柄實(shí)施例1的電路圖。
圖8為本發(fā)明實(shí)施例1的主控芯片的控制流程圖。 圖9為本發(fā)明實(shí)施例1檢測(cè)軌跡球位移信號(hào)流程圖。 圖IO為本發(fā)明實(shí)施例1的軌跡球模擬搖桿流程圖。
圖11為本發(fā)明實(shí)施例1主控芯片利用軌跡球的位移信號(hào)進(jìn)行精確定位流程圖。
圖12為本發(fā)明實(shí)施例1右搖桿死區(qū)設(shè)置流程圖。 圖13為本發(fā)明實(shí)施例2的外觀布局圖。
圖14為本發(fā)明實(shí)施例2用鼠標(biāo)對(duì)管檢測(cè)軌跡球運(yùn)動(dòng)的電路框圖。
圖15為本發(fā)明實(shí)施例2用光學(xué)傳感器測(cè)軌跡球運(yùn)動(dòng)的電路框圖。
圖16為本發(fā)明實(shí)施例2的主控芯片的主程序流程圖。
圖17為本發(fā)明實(shí)施例2主控芯片利用軌跡球的位移信號(hào)進(jìn)行精確定位流程圖。
圖18為本發(fā)明實(shí)施例2右搖桿死區(qū)設(shè)置流程圖。
圖19為本發(fā)明游戲手柄實(shí)施例2的電路圖。
具體實(shí)施例方式
下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明。
實(shí)施例1,本發(fā)明的用于FPS游戲的游戲手柄,如圖1所示,在游戲手柄 上設(shè)有軌跡球l、左搖桿2、方向鍵3、鼠標(biāo)功能設(shè)置按鍵和鼠標(biāo)指示燈4和手 柄功能按鍵5,軌跡球1下設(shè)有壓力傳感器。
如圖2所示,軌跡球1下面,在滾球7的下方、游戲手柄內(nèi)的上板6和下 板10之間設(shè)有一個(gè)壓力傳感器9,當(dāng)人手觸碰滾球7時(shí),滾球7接觸上板6,上板6按壓壓力傳感器9,壓力傳感器9將感應(yīng)的壓力信號(hào)轉(zhuǎn)換為電壓信號(hào)傳遞 給主控芯片進(jìn)行識(shí)別。
如圖3所示,鼠標(biāo)對(duì)管作為軌跡球1的位移傳感器,軌跡球1包括滾球7, 傳感器包括Y軸轉(zhuǎn)軸11、 Y軸光電接收管12、 Y軸編碼輪13、 Y軸紅外發(fā)光二 極管14、 X軸轉(zhuǎn)軸15、 X軸光電接收管16、 X軸編碼輪17、 X軸紅外發(fā)光二極 管18。滾球7上面設(shè)置Y軸轉(zhuǎn)軸11,滾球7側(cè)面設(shè)置X軸轉(zhuǎn)軸15, Y軸轉(zhuǎn)軸ll 和X軸轉(zhuǎn)軸15與滾球7接觸,Y軸轉(zhuǎn)軸11上設(shè)置有Y軸紅外發(fā)光二極管14、 Y 軸光電接收管12、 Y軸編碼輪13, X軸轉(zhuǎn)軸15上設(shè)置有X軸紅外發(fā)光二極管18、 X軸光電接收管16、 X軸編碼輪17。
如圖5所示,游戲手柄設(shè)有主控芯片,主控芯片連接鼠標(biāo)數(shù)據(jù)轉(zhuǎn)換芯片、 左搖桿、鼠標(biāo)指示燈、馬達(dá)及驅(qū)動(dòng)電路、鼠標(biāo)功能設(shè)置按鍵、手柄功能按鍵組 和壓力傳感器,鼠標(biāo)數(shù)據(jù)轉(zhuǎn)換芯片連接到X軸、Y軸光電接收管,主控芯片與游 戲主機(jī)有線連接,通過(guò)電纜線將數(shù)據(jù)送給游戲主機(jī)。
在正常工作前時(shí),主控芯片首先需要設(shè)置"精確定位激活鍵",如手柄功能 按鍵5,和"右搖桿中間死區(qū)值",如圖12所示,包括以下步驟 一、主控芯片 判斷是否在死區(qū)設(shè)置模式,如果在,轉(zhuǎn)步驟二;如果不在,則判斷是否有鼠標(biāo) 功能設(shè)置鍵按下,如果沒(méi)有按下,則返回;如果有按下,則進(jìn)入死區(qū)設(shè)置模式, 鼠標(biāo)燈閃爍,右搖桿中間死區(qū)值初始化為O,并返回;二、如果有鼠標(biāo)參數(shù)設(shè)置 鍵按下,則退出死區(qū)設(shè)置模式,鼠標(biāo)燈滅;。如果沒(méi)有按下,則執(zhí)行下一步;三、 如果不在精確定位激活鍵設(shè)置狀態(tài),轉(zhuǎn)步驟四。如果在精確定位激活鍵設(shè)置狀 態(tài),但沒(méi)有按鍵按下,返回;如果有按鍵按下則存儲(chǔ)該鍵作為精確定位激活鍵, 并設(shè)置進(jìn)入調(diào)整死區(qū)步驟,返回;四、如果方向鍵的的"上"鍵按下,則右搖 桿中間死區(qū)值=右搖桿中間死區(qū)值+1;如果沒(méi)有按下,則執(zhí)行下一步;四、主控芯片判斷方向鍵的"下"鍵按下,則右搖桿中間死區(qū)值=右搖桿中間死區(qū)值-1,
并轉(zhuǎn)下一步執(zhí)行。如果沒(méi)有按下,則轉(zhuǎn)下一步執(zhí)行;五、設(shè)置右搖桿《值=128+ 右搖桿中間死區(qū)值,返回。
工作時(shí)當(dāng)人手沒(méi)有觸碰軌跡球時(shí),壓力傳感器輸出一個(gè)電壓值,當(dāng)人手觸 碰軌跡球時(shí)有間接的力施加在壓力傳感器上,壓力傳感器感受到力的作用改變 電壓輸出信號(hào),主控芯片通過(guò)A/D轉(zhuǎn)換讀取壓力傳感器的電壓輸出變化作為后 續(xù)信號(hào)處理的一個(gè)參數(shù)。
滾球旋轉(zhuǎn),X軸轉(zhuǎn)軸和Y軸轉(zhuǎn)軸轉(zhuǎn)動(dòng),分別帶動(dòng)X、 Y編碼輪轉(zhuǎn)動(dòng),X、 Y光 電接收管接收經(jīng)X、 Y編碼輪傳遞來(lái)的X、 Y紅外發(fā)光二極管的信號(hào),將該X、 Y 信號(hào)發(fā)送至鼠標(biāo)數(shù)據(jù)轉(zhuǎn)換芯片,主控芯片讀取鼠標(biāo)數(shù)據(jù)轉(zhuǎn)換芯片得到滾球的X、 Y軸移動(dòng)值,并和壓力傳感器的信號(hào)、軌跡球的位移信號(hào)、精確定位激活鍵狀態(tài)、 已經(jīng)設(shè)置的右搖桿中間死區(qū)值疊加后,轉(zhuǎn)換為游戲主機(jī)可以識(shí)別的數(shù)據(jù)格式信 號(hào),送給游戲主機(jī)。
如圖4所示,軌跡球1包括滾球7,滾球7側(cè)面設(shè)有光學(xué)傳感裝置,光學(xué)傳 感裝置的光學(xué)透鏡21設(shè)置在靠近滾球7的位置,光學(xué)傳感裝置內(nèi)設(shè)有光學(xué)傳感 器22,發(fā)光或激光二極管23。
如圖6所示,游戲手柄設(shè)有主控芯片,主控芯片連接光學(xué)傳感器、左搖桿、 鼠標(biāo)指示燈、馬達(dá)及驅(qū)動(dòng)電路、鼠標(biāo)功能設(shè)置按鍵、手柄功能按鍵組和壓力傳 感器。
工作時(shí),發(fā)光或激光二極管發(fā)出的光線,照亮滾球,從滾球表面反射回的 一部分光線,經(jīng)過(guò)光學(xué)透鏡,傳輸?shù)焦鈱W(xué)傳感器,當(dāng)滾球旋轉(zhuǎn)時(shí),其滾球球面 的位移軌跡被光學(xué)傳感器記錄并轉(zhuǎn)換為X軸、Y軸的位移信號(hào),主控芯片讀取光 學(xué)傳感器送出的位移信號(hào),并和已經(jīng)設(shè)置的右搖桿中間死區(qū)值、精確定位激活鍵狀態(tài)、壓力傳感器的信號(hào)進(jìn)行疊加后,轉(zhuǎn)換為游戲主機(jī)可以識(shí)別的數(shù)據(jù)格式 信號(hào),送給游戲主機(jī)。
如圖7所示,主控芯片采用WT6573F,鼠標(biāo)數(shù)據(jù)轉(zhuǎn)換芯片采用EM84510,壓 力傳感器采用TP015P,其輸出信號(hào)通過(guò)差動(dòng)電壓放大器送給主控芯片。
如圖8所示,本發(fā)明的用于FPS游戲的游戲手柄定位方法,包括以下步驟: 一、游戲手柄上電,初始化;二、主控芯片讀取軌跡球位移信號(hào),軌跡球送出 的X軸或Y軸位移信號(hào)是0-255的數(shù)據(jù)格式,0-127表示軌跡球向正方向移動(dòng)的 單位距離,0為沒(méi)有移動(dòng),127為向正方向移動(dòng)最大距離;255-128表示軌跡球 向負(fù)方向移動(dòng)的單位距離,用0和該數(shù)據(jù)進(jìn)行8位二進(jìn)制減得到軌跡球向負(fù)方 向移動(dòng)的單位距離;軌跡球還會(huì)送出當(dāng)前滾球X軸和Y軸是正方向移動(dòng)還是負(fù)
方向移動(dòng)的兩個(gè)信號(hào)位供主控芯片讀取判斷;三、主控芯片將軌跡球的位移信 號(hào)模擬為右搖桿動(dòng)作并轉(zhuǎn)換為右搖桿的X軸、Y軸值;四、主控芯片將右搖桿中 間死區(qū)值和軌跡球的位移信號(hào)疊加運(yùn)算得到精確定位信號(hào)并轉(zhuǎn)為右搖桿X軸、Y 軸值;五、主控芯片進(jìn)行右搖桿中間死區(qū)設(shè)置;六、主控芯片將運(yùn)算得到的右 搖桿X軸、Y軸值轉(zhuǎn)換為主機(jī)可以識(shí)別的信號(hào)送給游戲主機(jī)。
如圖9所示,主控芯片檢測(cè)軌跡球位移信號(hào),包括以下步驟 一、主控芯 片按時(shí)間周期讀取軌跡球移動(dòng)數(shù)據(jù);二、主控芯片判斷如果有滾球移動(dòng),則記 錄下滾球X軸、Y軸的移動(dòng)值,并等待下一個(gè)循環(huán)周期讀取數(shù)據(jù),如果沒(méi)有滾球 移動(dòng),則等待下一個(gè)循環(huán)周期讀取數(shù)據(jù)。
如圖10所示,在精確定位激活鍵未壓下?tīng)顟B(tài),主控芯片將軌跡球滾球的運(yùn) 動(dòng)模擬為右搖桿的運(yùn)動(dòng),并能夠通過(guò)檢測(cè)放置在軌跡球下面的上板和下板之間 的壓力傳感器輸出值的大小,模擬右搖桿的歸中動(dòng)作(即送給游戲主機(jī)的右搖 桿X軸值、Y軸值等于128)和右搖桿下壓鍵的動(dòng)作。其方法為以下步驟一、主控芯片讀取壓力傳感器的輸出值,如果小于軌跡球壓下判斷值(即手用一定 的力壓下使壓力傳感器的電壓輸出信號(hào)變化到某個(gè)值),則右搖桿X軸值-128、 右搖桿Y軸值428(表示人手送開(kāi)右搖桿,模擬右搖桿歸中),并送給游戲主機(jī); 如果壓力傳感器的輸出值大于軌跡球壓下判斷值,則執(zhí)行步驟二; 二、如果壓 力傳感器的輸出值大于軌跡球壓下判斷值,則設(shè)置右搖桿下壓鍵壓下(模擬右 搖桿下壓鍵動(dòng)作),并將該動(dòng)作送游戲主機(jī),并轉(zhuǎn)步驟三;如果壓力傳感器的輸 出值小于軌跡球壓下判斷值,則轉(zhuǎn)步驟三;三、如果滾球X軸為正方向移動(dòng)則右 搖桿X軸值-右搖桿X軸值+滾球X軸移動(dòng)值,并且如果累加和大于255,則右 搖桿X軸值-255,轉(zhuǎn)步驟四執(zhí)行;如果滾球X軸為負(fù)方向移動(dòng)則右搖桿X軸 值-右搖桿X軸值-滾球X軸移動(dòng)值,并且如果差值和小于0,則右搖桿X軸值 =0,并轉(zhuǎn)步驟四執(zhí)行;四、如果滾球Y軸為正方向移動(dòng)則右搖桿¥軸值=右搖 桿Y軸值+滾球Y軸移動(dòng)值,并且如果累加和大于255,則右搖桿Y軸值-255, 本次處理結(jié)束;如果滾球X軸為負(fù)方向移動(dòng)則右搖桿Y軸值=右搖桿Y軸值-滾球Y軸移動(dòng)值,并且如果差值和小于O,則右搖桿Y軸值:0,本次處理結(jié)束。 如圖11所示,在精確定位激活鍵壓下?tīng)顟B(tài),這時(shí)候處于精確定位模式,主 控芯片將右搖桿中間死區(qū)值和軌跡球的位移信號(hào)疊加,并轉(zhuǎn)為右搖桿數(shù)據(jù)的方 式,包括以下步驟 一、判斷是否軌跡球有一段時(shí)間沒(méi)有動(dòng)作,如果是,則右 搖桿值設(shè)為中間值,即右搖桿X軸值為128, Y軸值為128,并返回;如果不是, 則執(zhí)行下一步;二、主控芯片判斷如果滾球X軸移動(dòng)方向?yàn)檎龝r(shí),如果滾球X 軸移動(dòng)值為0,則右搖桿X軸值428,并轉(zhuǎn)下一步;如果滾球X軸移動(dòng)值不為O, 則右搖桿X軸值=128+右搖桿中間死區(qū)值+滾球X軸移動(dòng)值,并轉(zhuǎn)下一步;如果X 軸方向?yàn)樨?fù)時(shí),則右搖桿X軸值428-[ (0-滾球乂軸移動(dòng)值)+右搖桿中間死區(qū) 值],并轉(zhuǎn)下一步;三、主控芯片判斷Y軸的方向,Y軸方向?yàn)檎龝r(shí),如果滾球Y軸移動(dòng)值為0,則右搖桿Y軸值428,返回;如果滾球Y軸移動(dòng)值不為O,則 右搖桿Y軸值二128+右搖桿中間死區(qū)值+滾球Y軸移動(dòng)值,并返回;如果Y軸方 向?yàn)樨?fù)時(shí),則右搖桿¥軸值=128-[(0-滾球¥軸移動(dòng)值)+右搖桿中間死區(qū)值], 并返回。
本實(shí)施例采用MCS8051的匯編程序語(yǔ)言在KEIL uVision2環(huán)境下編譯實(shí)現(xiàn)。 操作過(guò)程
1、首先玩家按下游戲手柄上的鼠標(biāo)功能設(shè)置按鍵4進(jìn)入鼠標(biāo)功能設(shè)置模式 中,這時(shí)會(huì)有鼠標(biāo)指示燈閃爍,指示已經(jīng)進(jìn)入該設(shè)置模式,這時(shí)候先按下需要 設(shè)置的"精確定位激活鍵",主控芯片將會(huì)記錄下該鍵作為正常工作時(shí)正常模式 和精確定位模式的切換鍵。設(shè)置完精確定位激活鍵后就可以設(shè)置右搖桿中間死 區(qū),這時(shí)候可以按游戲手柄方向鍵3的"上"鍵和"下"鍵上下調(diào)節(jié)右搖桿中 間死區(qū)。這里右搖桿中間死區(qū)的含義是指右搖桿的X軸或Y軸輸出大于某個(gè)值 后游戲中才動(dòng)作,小于該值游戲中沒(méi)有動(dòng)作,這個(gè)值稱為右搖桿中間死區(qū)。在 用戶調(diào)節(jié)設(shè)置右搖桿中間死區(qū)時(shí),主控芯片會(huì)把用戶設(shè)置的死區(qū)值送給游戲主 機(jī),這樣用戶就可以觀察到調(diào)整到什么時(shí)候游戲會(huì)有動(dòng)作,當(dāng)用戶觀察到游戲 有輕微的動(dòng)作時(shí),按鼠標(biāo)功能設(shè)置按鍵或某組合鍵退出鼠標(biāo)功能設(shè)置模式,這 時(shí)候主控芯片會(huì)記住已經(jīng)設(shè)置好的右搖桿中間死區(qū)值,作為處理軌跡球位移信 號(hào)的的一個(gè)控制參數(shù)"右搖桿中間死區(qū)值"。設(shè)置完后鼠標(biāo)指示燈滅指示退出該 模式。
2、在設(shè)置完鼠標(biāo)參數(shù)后,用戶在不需要做精確定位的時(shí)候,不按下精確定 位激活鍵,這時(shí)滾動(dòng)軌跡球可以快速控制游戲中的動(dòng)作,當(dāng)手離開(kāi)軌跡球,則 游戲中不動(dòng)作,這樣模擬了搖桿的功能。當(dāng)需要進(jìn)行精確定位時(shí),用戶按下精 確定位激活鍵,通過(guò)滾動(dòng)軌跡球來(lái)精確的控制游戲中的細(xì)微動(dòng)作。實(shí)施例2,如圖13所示,在游戲手柄上設(shè)有軌跡球1、左搖桿2、右搖桿30、方向鍵3和鼠標(biāo)功能設(shè)置按鍵和鼠標(biāo)指示燈4,軌跡球下設(shè)有位移傳感器。軌跡球1設(shè)置在右搖桿30下方。如圖3所示,鼠標(biāo)對(duì)管作為軌跡球1位移傳感器,軌跡球1包括滾球7,傳感器包括Y軸轉(zhuǎn)軸ll、 Y軸光電接收管12、 Y軸編碼輪13、 Y軸紅外發(fā)光二極管14、 X軸轉(zhuǎn)軸15、 X軸光電接收管16、 X軸編碼輪17、 X軸紅外發(fā)光二極管18。滾球7上面設(shè)置Y軸轉(zhuǎn)軸11,滾球7側(cè)面設(shè)置X軸轉(zhuǎn)軸15, Y軸轉(zhuǎn)軸11和X軸轉(zhuǎn)軸15與滾球7接觸,Y軸轉(zhuǎn)軸11上設(shè)置有Y軸紅外發(fā)光二極管14、 Y軸光電接收管12、 Y軸編碼輪13, X軸轉(zhuǎn)軸15上設(shè)置有X軸紅外發(fā)光二極管18、 X軸光電接收管16、 X軸編碼輪17。
如圖14所示,游戲手柄設(shè)有主控芯片,主控芯片連接鼠標(biāo)數(shù)據(jù)轉(zhuǎn)換芯片、左右搖桿、鼠標(biāo)指示燈、馬達(dá)及驅(qū)動(dòng)電路、鼠標(biāo)功能設(shè)置按鍵和手柄功能按鍵組,鼠標(biāo)數(shù)據(jù)轉(zhuǎn)換芯片連接到X軸光、Y軸光電接收管,主控芯片與游戲主機(jī)有線連接,主控芯片與游戲主機(jī)有線連接采用USB接口和USB電纜。
工作時(shí),左、右搖桿移動(dòng)的信號(hào)同時(shí)傳遞到主控芯片。滾球旋轉(zhuǎn),X軸轉(zhuǎn)軸和Y軸轉(zhuǎn)軸轉(zhuǎn)動(dòng),分別帶動(dòng)X、 Y編碼輪轉(zhuǎn)動(dòng),X、 Y光電接收管接收經(jīng)X、 Y編碼輪傳遞來(lái)的X、 Y紅外發(fā)光二極管的信號(hào),將該X、 Y信號(hào)發(fā)送至鼠標(biāo)數(shù)據(jù)轉(zhuǎn)換芯片,主控芯片讀取鼠標(biāo)數(shù)據(jù)轉(zhuǎn)換芯片得到滾球的X、 Y軸移動(dòng)值,并和右搖桿移動(dòng)的信號(hào)進(jìn)行疊加后,轉(zhuǎn)換為游戲主機(jī)可以識(shí)別的數(shù)據(jù)格式信號(hào),送給游戲主機(jī)。
如圖4所示,軌跡球1包括滾球7,滾球7側(cè)面設(shè)有光學(xué)傳感裝置,光學(xué)傳感裝置的光學(xué)透鏡21設(shè)置在靠近滾球7的位置,光學(xué)傳感裝置內(nèi)設(shè)有光學(xué)傳感器22,發(fā)光或激光二極管23。
如圖15所示,游戲手柄設(shè)有主控芯片,主控芯片連接光學(xué)傳感器、左右搖
13桿、鼠標(biāo)指示燈、馬達(dá)及驅(qū)動(dòng)電路、鼠標(biāo)功能設(shè)置按鍵和手柄功能按鍵組。
正常工作前,主控芯片首先需要用戶進(jìn)行右搖桿中間死區(qū)值設(shè)置,如圖18所示,包括以下步驟 一、主控芯片判斷是否在死區(qū)設(shè)置模式,如果在,轉(zhuǎn)步驟二;如果不在,則判斷是否有鼠標(biāo)參數(shù)設(shè)置鍵按下,如果沒(méi)有按下,則返回;如果有按下,則進(jìn)入死區(qū)設(shè)置模式,鼠標(biāo)燈閃爍,右搖桿中間死區(qū)值初始化為O,并返回;二、如果有鼠標(biāo)參數(shù)設(shè)置鍵按下,則退出死區(qū)設(shè)置模式,鼠標(biāo)燈滅。如果沒(méi)有按下,則執(zhí)行下一步;三、如果方向鍵的;的"上"鍵按下,則右搖桿中間死區(qū)值二右搖桿中間死區(qū)值+l;如果沒(méi)有按下,則執(zhí)行下一步;四、主控芯片判斷;方向鍵的"下"鍵按下,則右搖桿中間死區(qū)值=右搖桿中間死區(qū)值-1,并轉(zhuǎn)下一步執(zhí)行。如果沒(méi)有按下,則轉(zhuǎn)下一步執(zhí)行;五、設(shè)置右搖桿乂值二128+右搖桿中間死區(qū)值,返回。
工作時(shí),左、右搖桿移動(dòng)的信號(hào)同時(shí)傳遞到主控芯片,發(fā)光或激光二極管發(fā)出的光線,照亮滾球,從滾球表面反射回的一部分光線,經(jīng)過(guò)光學(xué)透鏡,傳輸?shù)焦鈱W(xué)傳感器,當(dāng)滾球旋轉(zhuǎn)時(shí),其滾球球面的位移軌跡被光學(xué)傳感器記錄并轉(zhuǎn)換為X軸、Y軸的位移信號(hào),主控芯片讀取光學(xué)傳感器送出的位移信號(hào),并和右搖桿移動(dòng)的信號(hào)、右搖桿中間死區(qū)值疊加后轉(zhuǎn)換為游戲主機(jī)可以識(shí)別的數(shù)據(jù)格式信號(hào),送給游戲主機(jī)。
如圖19所示,主控芯片采用WT6573F,鼠標(biāo)數(shù)據(jù)轉(zhuǎn)換芯片采用EM84510。如圖16所示,本發(fā)明用于FPS游戲的游戲手柄定位方法,包括以下歩驟一、游戲手柄上電,初始化;二、游戲手柄的主控芯片讀取右搖桿的位移信號(hào),通過(guò)A/D采樣右搖桿的X軸、Y軸的可調(diào)電阻的分壓值并將其轉(zhuǎn)換為0-255的數(shù)據(jù)格式,128為中間值(即將該值送游戲主機(jī)在游戲中沒(méi)有動(dòng)作);三、主控芯片讀取軌跡球位移信號(hào),軌跡球送出的X軸或Y軸位移信號(hào)也是0-255的一個(gè)數(shù)據(jù)格式,0-127表示軌跡球向正方向移動(dòng)的單位距離,0為沒(méi)有移動(dòng),127為向正方向移動(dòng)最大距離;255-128表示軌跡球向負(fù)方向移動(dòng)的單位距離,用O和該數(shù)據(jù)進(jìn)行8位二進(jìn)制減得到軌跡球向負(fù)方向移動(dòng)的單位距離;軌跡球還會(huì)送出當(dāng)前滾球X軸和Y軸是正方向移動(dòng)還是負(fù)方向移動(dòng)的兩個(gè)信號(hào)位供主控芯片讀取判斷;四、主控芯片將右搖桿移動(dòng)的信號(hào)、右搖桿中間死區(qū)值和軌跡球的位移信號(hào)疊加;五、主控芯片進(jìn)行右搖桿死區(qū)設(shè)置(用戶進(jìn)行設(shè)置);六、主控芯片將疊加的位移信號(hào)送給游戲主機(jī)。
如圖9所示,所述主控芯片檢測(cè)軌跡球位移信號(hào),包括以下步驟 一、主控芯片按時(shí)間周期讀取軌跡球移動(dòng)數(shù)據(jù);二、主控芯片判斷如果有滾球移動(dòng),則記錄下滾球X軸、Y軸的移動(dòng)值,并等待下一個(gè)循環(huán)周期讀取數(shù)據(jù)。如果沒(méi)有滾球移動(dòng),則等待下一個(gè)循環(huán)周期讀取數(shù)據(jù)。
如圖n所示,主控芯片將右搖桿移動(dòng)的信號(hào)、右搖桿中間死區(qū)值和軌跡球
的位移信號(hào)疊加,并轉(zhuǎn)為右搖桿數(shù)據(jù)的方式,包括以下步驟 一、主控芯片判斷右搖桿如果居中,則轉(zhuǎn)步驟二;如果右搖桿不居中則讀取右搖桿的當(dāng)前X軸
位置,即用戶移動(dòng)了搖桿使搖桿用于檢測(cè)x軸的可調(diào)電阻輸出的電壓變化從而
轉(zhuǎn)換為0-255的數(shù)據(jù)-〉右搖桿X軸值(要送給游戲主機(jī)的數(shù)據(jù))、讀取右搖桿的當(dāng)前Y軸位置-〉右搖桿Y軸值(要送給游戲主機(jī)的數(shù)據(jù)),并返回;二、判斷是否軌跡球有一段時(shí)間沒(méi)有動(dòng)作,如果是,則右搖桿值設(shè)為中間值,即右搖桿X軸值為128, Y軸值為128,并返回;如果不是,則執(zhí)行下一步;三、主控芯片判斷如果滾球X軸移動(dòng)方向?yàn)檎龝r(shí),如果滾球X軸移動(dòng)值為O,則右搖桿X軸值=128;如果滾球X軸移動(dòng)值不為0,則右搖桿X軸值二128+右搖桿中間死區(qū)值+滾球X軸移動(dòng)值;如果X軸方向?yàn)樨?fù)時(shí),則右搖桿X軸值428-[(0-滾球X軸移動(dòng)值)十右搖桿中間死區(qū)值];四、主控芯片判斷Y軸的方向,Y軸方向?yàn)檎龝r(shí),如果滾球Y軸移動(dòng)值為O,則右搖桿Y軸值-128,返回;如果滾球Y軸移動(dòng) 值不為0,則右搖桿Y軸值二128+右搖桿中間死區(qū)值+滾球Y軸移動(dòng)值,并返回; 如果Y軸方向?yàn)樨?fù)時(shí),則右搖桿¥軸值=128- [(O-滾球Y軸移動(dòng)值)+右搖桿中 間死區(qū)值],并返回。
如圖18所示,主控芯片進(jìn)行右搖桿中間死區(qū)值設(shè)置,包括以下步驟一、 主控芯片判斷是否在死區(qū)設(shè)置模式,如果在,轉(zhuǎn)步驟二;如果不在,則判斷是 否有鼠標(biāo)參數(shù)設(shè)置鍵按下,如果沒(méi)有按下,則返回;如果有按下,則進(jìn)入死區(qū) 設(shè)置模式,鼠標(biāo)燈閃爍,右搖桿中間死區(qū)值初始化為O,并返回;二、如果有鼠 標(biāo)參數(shù)設(shè)置鍵按下,則退出死區(qū)設(shè)置模式,鼠標(biāo)燈滅。如果沒(méi)有按下,則執(zhí)行 下一步;三、如果方向鍵的;的"上"鍵按下,則右搖桿中間死區(qū)值=右搖桿中 間死區(qū)值+l;如果沒(méi)有按下,則執(zhí)行下一步;四、主控芯片判斷;方向鍵的"下" 鍵按下,則右搖桿中間死區(qū)值=右搖桿中間死區(qū)值_1,并轉(zhuǎn)下一步執(zhí)行。如果沒(méi) 有按下,則轉(zhuǎn)下一步執(zhí)行;五、設(shè)置右搖桿X值428+右搖桿中間死區(qū)值,返回。
采用MCS8051的匯編程序語(yǔ)言在KEIL uVision2環(huán)境下編譯實(shí)現(xiàn)。
操作過(guò)程
1、首先游戲手柄通過(guò)功能設(shè)置按鍵3進(jìn)入鼠標(biāo)功能設(shè)置模式中,這時(shí)會(huì)有 鼠標(biāo)指示燈閃爍,指示已經(jīng)進(jìn)入該設(shè)置模式,這時(shí)候可以按游戲手柄上的方向 鍵的"上"鍵和"下"鍵上下調(diào)節(jié)右搖桿中間死區(qū)。這里右搖桿中間死區(qū)的含 義是指右搖桿的X軸或Y軸輸出大于某個(gè)值后游戲中才動(dòng)作,小于該值游戲中 沒(méi)有動(dòng)作,這個(gè)值稱為右搖桿中間死區(qū)。在用戶調(diào)節(jié)設(shè)置右搖桿中間死區(qū)時(shí), 主控芯片會(huì)把用戶的死區(qū)值送給游戲主機(jī),這樣用戶就可以觀察到調(diào)整到什么 時(shí)候游戲會(huì)有動(dòng)作,當(dāng)用戶觀察到游戲有輕微的動(dòng)作時(shí),按鼠標(biāo)功能設(shè)置按鍵 或某組合鍵退出鼠標(biāo)功能設(shè)置模式,這時(shí)候主控芯片會(huì)記住已經(jīng)設(shè)置好的右搖桿中間死區(qū)值,作為處理軌跡球位移信號(hào)的的一個(gè)控制參數(shù)"右搖桿中間死區(qū) 值"。設(shè)置完后鼠標(biāo)指示燈滅指示退出該模式。
2、在設(shè)置完鼠標(biāo)參數(shù)后,用戶在不需要做精確定位的時(shí)候,可以通過(guò)右搖 桿來(lái)快速的控制游戲中的動(dòng)作,當(dāng)需要進(jìn)行精確定位時(shí),用戶松開(kāi)右搖桿,通 過(guò)滾動(dòng)軌跡球來(lái)精確的控制游戲中的細(xì)微動(dòng)作。
權(quán)利要求
1. 用于FPS游戲的游戲手柄,游戲手柄上設(shè)有左搖桿(2),游戲手柄內(nèi)有主控芯片,其特征在于所述游戲手柄上設(shè)有軌跡球(1),軌跡球(1)下設(shè)有位移傳感器,位移傳感器將采集到的軌跡球(1)的位移信號(hào)傳遞給主控芯片。
2. 根據(jù)權(quán)利要求1所述的用于FPS游戲的游戲手柄,其特征在于所述軌跡球(I) 下方設(shè)有壓力傳感器(9),壓力傳感器(9)設(shè)置在上板(6)和下板 (10)之間,壓力傳感器(9)將感應(yīng)到的壓力信號(hào)轉(zhuǎn)換為電壓信號(hào)傳遞給主控芯片。
3. 根據(jù)權(quán)利要求2所述的用于FPS游戲的游戲手柄,其特征在于所述位移傳 感器采用鼠標(biāo)對(duì)管,軌跡球(1)的滾球(7)上面設(shè)置鼠標(biāo)對(duì)管的Y軸轉(zhuǎn)軸(II) ,滾球(10)側(cè)面設(shè)置鼠標(biāo)對(duì)管的X軸轉(zhuǎn)軸(15), Y軸轉(zhuǎn)軸(11)和 X軸轉(zhuǎn)軸(15)與滾球(10)接觸,Y軸轉(zhuǎn)軸(11)上設(shè)置有Y軸紅外發(fā)光 二極管(14)、 Y軸光電接收管(12)、 Y軸編碼輪(13), X軸轉(zhuǎn)軸(15)上 設(shè)置有X軸紅外發(fā)光二極管(18)、 X軸光電接收管(16)、 X軸編碼輪(17), Y軸光電接收管(12)和X軸光電接收管(16)分別與鼠標(biāo)數(shù)據(jù)轉(zhuǎn)換芯片連 接,鼠標(biāo)數(shù)據(jù)轉(zhuǎn)換芯片連接到主控芯片。
4. 根據(jù)權(quán)利要求2所述的用于FPS游戲的游戲手柄,其特征在于所述位移傳 感器采用光學(xué)傳感裝置,軌跡球(1)的滾球(7)側(cè)面設(shè)置光學(xué)傳感裝置的 光學(xué)透鏡(21),光學(xué)傳感裝置內(nèi)設(shè)有光學(xué)傳感器(22),發(fā)光或激光二極管(23),光學(xué)傳感器(22)與主控芯片連接。
5. —種用于FPS游戲的游戲手柄定位方法,包括以下步驟 一、游戲手柄的主控芯片檢測(cè)壓力傳感器的電壓輸出信號(hào);二、主控芯片檢測(cè)軌跡球位移信號(hào); 三、主控芯片將壓力傳感器的信號(hào)、精確定位激活鍵狀態(tài)、右搖桿中間死區(qū) 值和軌跡球的位移信號(hào)疊加;主控芯片將疊加后的信號(hào)送給游戲主機(jī)。
6. 根據(jù)權(quán)利要求5所述的用于FPS游戲的游戲手柄定位方法,其特征在于所述主控芯片檢測(cè)壓力傳感器的電壓輸出信號(hào)前,激活鍵和右搖桿中間死區(qū)設(shè) 置,得到精確定位激活鍵和游戲中的右搖桿中間死區(qū)值。
7. 根據(jù)權(quán)利要求6所述的用于FPS游戲的游戲手柄定位方法,其特征在于所 述壓力傳感器受到力的作用改變電壓輸出信號(hào),主控芯片通過(guò)A/D轉(zhuǎn)換讀取壓力傳感器的電壓輸出變化。
8. 根據(jù)權(quán)利要求7所述的用于FPS游戲的游戲手柄定位方法,其特征在于所 述主控芯片按周期讀取軌跡球移動(dòng)數(shù)據(jù),記錄下滾球X軸、Y軸的移動(dòng)值,并等待下一個(gè)循環(huán)周期讀取數(shù)據(jù)。
9. 根據(jù)權(quán)利要求8所述的用于FPS游戲的游戲手柄定位方法,其特征在于所述主控芯片將壓力傳感器的信號(hào)、精確定位激活鍵狀態(tài)、右搖桿中間死區(qū)值 和軌跡球的位移信號(hào)疊加轉(zhuǎn)為右搖桿數(shù)據(jù)。
10. 根據(jù)權(quán)利要求9所述的用于FPS游戲的游戲手柄定位方法,其特征在于所 述游戲手柄設(shè)有一個(gè)右搖桿,主控芯片將右搖桿移動(dòng)的X軸和Y軸的移動(dòng)值、 右搖桿中間死區(qū)值和軌跡球的位移信號(hào)疊加轉(zhuǎn)為右搖桿數(shù)據(jù)。
全文摘要
本發(fā)明公開(kāi)了一種用于FPS游戲的游戲手柄及其定位方法,要解決的技術(shù)問(wèn)題是使手柄能夠精確定位。本發(fā)明的游戲手柄上設(shè)有左搖桿,游戲手柄內(nèi)有主控芯片,游戲手柄上設(shè)有軌跡球,軌跡球下設(shè)有位移傳感器,位移傳感器將位移信號(hào)傳遞給主控芯片。其定位方法包括以下步驟主控芯片將壓力傳感器的信號(hào)、精確定位激活鍵狀態(tài)、右搖桿中間死區(qū)值和軌跡球的位移信號(hào)疊加,送給游戲主機(jī)。本發(fā)明與現(xiàn)有技術(shù)相比,將帶有壓力傳感器的軌跡球模擬右搖桿動(dòng)作和鼠標(biāo)動(dòng)作,位移傳感器將軌跡球的位移信號(hào)傳遞給主控芯片,精確定位,使用戶在電游戲中能夠同時(shí)體驗(yàn)到手柄舒適的手感、強(qiáng)烈的游戲震動(dòng)效果、搖桿快速靈活的運(yùn)動(dòng)控制和鼠標(biāo)的精確定位。
文檔編號(hào)A63F13/02GK101455903SQ20081024188
公開(kāi)日2009年6月17日 申請(qǐng)日期2008年12月29日 優(yōu)先權(quán)日2008年12月29日
發(fā)明者江 何 申請(qǐng)人:江 何