優(yōu)先權(quán)申請
本申請要求于2014年12月23日提交的美國臨時專利申請no.62/096,251的權(quán)益,該申請通過引用被整體結(jié)合于此。
實施例一般而言涉及電子設(shè)備,并且更具體而言涉及產(chǎn)生觸覺效果的電子設(shè)備。
背景技術(shù):
視頻游戲和視頻游戲系統(tǒng)已經(jīng)變得非常受歡迎。視頻游戲設(shè)備或控制器通常使用視覺提示和聽覺提示向用戶提供反饋。在一些接口設(shè)備中,可以向用戶提供動覺反饋(例如,主動力反饋和阻力反饋)和/或觸感反饋(例如,振動、紋理、溫度變化等)。通常,這種反饋被統(tǒng)稱為“觸覺反饋”或“觸覺效果”。觸覺反饋提供了增強(qiáng)和簡化用戶與視頻游戲控制器或其它電子設(shè)備的交互的提示。例如,觸覺效果可以向視頻游戲控制器或其它電子設(shè)備的用戶提供提示,以就特定事件提醒用戶,或者在模擬或虛擬環(huán)境中提供逼真的反饋,以產(chǎn)生更強(qiáng)的感官沉浸。
其中用戶與用戶輸入元件交互以引起動作的其它設(shè)備也可以受益于觸覺反饋或觸覺效果。例如,這樣的設(shè)備可以包括醫(yī)療設(shè)備、汽車控件、遙控器和其它類似的設(shè)備。
技術(shù)實現(xiàn)要素:
本發(fā)明的實施例針對被配置成產(chǎn)生基本上改進(jìn)相關(guān)技術(shù)的觸覺效果的電子設(shè)備。
實施例的特征和優(yōu)點在下面的描述中闡述,或者將從描述中顯而易見,或者可以通過實踐本發(fā)明來了解。
在一個示例中,提供了用于在與觸覺輸出設(shè)備相關(guān)聯(lián)的用戶輸入元件處渲染觸覺效果的功能。定義了與觸覺輸出設(shè)備相關(guān)聯(lián)的用戶輸入元件的位置的主要范圍和次要范圍。此外,定義了與觸覺輸出設(shè)備相關(guān)聯(lián)的用戶輸入元件的位置的邊界范圍,邊界范圍與主要范圍和次要范圍中的每一個部分地重疊。監(jiān)視用戶輸入元件的位置,并且響應(yīng)于用戶輸入元件進(jìn)入到邊界范圍內(nèi)的位置而渲染觸覺效果。
要理解的是,前面的一般描述和以下的詳細(xì)描述兩者是示例性和說明性的,并不旨在將本發(fā)明限制到所描述的示例。
附圖說明
根據(jù)以下結(jié)合附圖對優(yōu)選實施例進(jìn)行的詳細(xì)描述,其他實施例、細(xì)節(jié)、優(yōu)點和修改將變得顯而易見。
圖1圖示根據(jù)本發(fā)明的示例實施例的系統(tǒng)的框圖。
圖2是圖示根據(jù)本發(fā)明的示例實施例的用戶輸入元件的運動范圍的簡化示意圖。
圖3圖示根據(jù)本發(fā)明的示例實施例的觸覺效果軟件棧的框圖。
圖4圖示根據(jù)本發(fā)明的示例實施例的用于控制與觸覺輸出設(shè)備相關(guān)聯(lián)的用戶輸入元件的功能的流程圖。
圖5圖示根據(jù)本發(fā)明的另一種示例實施例的用于控制與觸覺輸出設(shè)備相關(guān)聯(lián)的用戶輸入元件的功能的流程圖。
圖6圖示根據(jù)本發(fā)明的示例實施例的包括外部彈簧的控制器,該外部彈簧創(chuàng)建打開延伸行程范圍,用于當(dāng)觸發(fā)器處于打開延伸行程范圍之外的最大打開位置時,觸發(fā)器在該打開延伸行程范圍內(nèi)移動。
圖7圖示根據(jù)本發(fā)明的示例實施例的包括延伸框架的控制器,該延伸框架創(chuàng)建關(guān)閉延伸行程范圍,用于當(dāng)觸發(fā)器處于關(guān)閉延伸行程范圍之外的最大關(guān)閉位置時,觸發(fā)器在該關(guān)閉延伸行程范圍內(nèi)移動。
圖8圖示適于與本發(fā)明的實施例一起使用的控制器的功能框圖。
圖9a和9b圖示適于與本發(fā)明的實施例一起使用的控制器的不同視圖。
具體實施方式
示例實施例針對用于控制與觸覺輸出設(shè)備相關(guān)聯(lián)的用戶輸入元件的邊界范圍的系統(tǒng)和方法。例如,當(dāng)用戶輸入元件定位在邊界范圍中時,可以渲染觸覺效果。定義了用戶輸入元件的位置的邊界范圍,以便與位置的主要范圍和次要范圍中的一個部分地重疊。當(dāng)監(jiān)視用戶輸入元件的位置時,可以響應(yīng)于用戶輸入元件進(jìn)入邊界范圍內(nèi)的位置而渲染觸覺效果。
在各種實施例中,描述了用于使用設(shè)備的各種用戶接口和方法。在一些實施例中,設(shè)備是便攜式電子設(shè)備(例如,游戲控制器、控制臺、移動電話、智能電話、平板電腦等)。但是,應(yīng)當(dāng)理解的是,用戶接口和相關(guān)聯(lián)的方法可以應(yīng)用到許多其它設(shè)備(諸如,個人計算機(jī)、醫(yī)療設(shè)備、筆記本電腦等),這些設(shè)備可以包括一個或多個其它物理用戶接口設(shè)備,諸如鍵盤、鼠標(biāo)、軌跡球等。
圖1圖示根據(jù)本發(fā)明的示例實施例的系統(tǒng)100的框圖。
系統(tǒng)100可以包括被配置成從遠(yuǎn)程源傳輸和/或接收數(shù)據(jù)的通信設(shè)備110。通信設(shè)備110可以通過編碼要經(jīng)網(wǎng)絡(luò)(未示出)從處理器120發(fā)送到另一個設(shè)備的數(shù)據(jù)和解碼經(jīng)網(wǎng)絡(luò)從另一個系統(tǒng)接收到的用于處理器120的數(shù)據(jù)在處理器120和其它設(shè)備之間啟用連接。
例如,通信設(shè)備110可以包括被配置成提供無線網(wǎng)絡(luò)通信的網(wǎng)絡(luò)接口卡??梢允褂酶鞣N無線通信技術(shù),包括紅外線、無線電、藍(lán)牙、wi-fi和/或蜂窩通信??商娲?,通信設(shè)備110可以被配置成提供(一個或多個)有線網(wǎng)絡(luò)連接,諸如以太網(wǎng)連接。
處理器120可以包括執(zhí)行系統(tǒng)100的計算和控制功能的一個或多個通用或?qū)S锰幚砥?。處理?20可以包括單個集成電路(諸如,微處理設(shè)備),或者可以包括協(xié)同工作以完成處理器120的功能的若干集成電路設(shè)備和/或電路板。此外,處理器120可以執(zhí)行存儲在存儲器140內(nèi)的計算機(jī)程序,諸如操作系統(tǒng)141、邊界范圍模塊142和其它應(yīng)用143。
系統(tǒng)100可以包括用于存儲信息和由處理器120執(zhí)行的指令的存儲器140。存儲器140可以包含用于檢索、呈現(xiàn)、修改和存儲數(shù)據(jù)的各種部件。例如,存儲器140可以存儲當(dāng)由處理器120執(zhí)行時提供功能的軟件模塊。模塊可以包括為系統(tǒng)100提供操作系統(tǒng)功能的操作系統(tǒng)141。模塊還可以包括控制控制器150的用戶輸入元件的邊界范圍的邊界范圍模塊142。例如,邊界范圍模塊142可以監(jiān)視用戶輸入元件的位置并且響應(yīng)于用戶輸入元件進(jìn)入相應(yīng)邊界范圍內(nèi)的位置而渲染觸覺效果。系統(tǒng)100還可以包括一個或多個附加應(yīng)用模塊143,該一個或多個附加應(yīng)用模塊143包括附加的功能,諸如被配置成為外圍設(shè)備(諸如,控制器150(例如,游戲手柄,可穿戴設(shè)備等))提供控制功能的外圍固件。
非瞬態(tài)存儲器140可以包括可由處理器120訪問的各種計算機(jī)可讀介質(zhì)。在各種實施例中,存儲器140可以包括易失性介質(zhì)和非易失性介質(zhì)、可移動介質(zhì)和不可移動介質(zhì)。例如,存儲器140可以包括以下中的任意組合:隨機(jī)存取存儲器(“ram”)、動態(tài)ram(“dram”)、靜態(tài)ram(“sram”)、只讀存儲器(“rom”)、閃存、高速緩存存儲器和/或任何其它類型的非瞬態(tài)計算機(jī)可讀介質(zhì)。可替代地或附加地,存儲器140可以包括一個或多個網(wǎng)絡(luò)或云訪問存儲介質(zhì)。
雖然被示為單個系統(tǒng),但是系統(tǒng)100的功能可以被實現(xiàn)為分布式系統(tǒng)。例如,存儲器140和處理器120可以跨共同包括系統(tǒng)100的若干不同計算機(jī)分布。在一種實施例中,系統(tǒng)100可以是設(shè)備(例如,個人計算機(jī)、控制臺、視頻游戲控制臺等)的一部分,并且系統(tǒng)100為設(shè)備提供觸覺效果功能。在另一種實施例中,系統(tǒng)100可以與設(shè)備分離,并且可以遠(yuǎn)程地為設(shè)備提供上述功能。
系統(tǒng)100可以可操作地連接到控制器150??刂破?50可以是被配置成向系統(tǒng)100提供輸入的外圍設(shè)備。控制器150可以使用或者無線連接或者有線連接可操作地連接到系統(tǒng)100??刂破?50還可以包括被配置成使用或者無線連接或者有線連接與系統(tǒng)100通信的本地處理器。可替代地,控制器150可以被配置成不包括本地處理器,并且與控制器150相關(guān)聯(lián)的所有輸入信號和/或輸出信號可以由系統(tǒng)100的部件來處理。在其中控制器150具有本地處理器的實施例中,附加功能(諸如,被配置成提供控制功能的邊界范圍模塊和外圍固件)可以駐留在控制器150內(nèi)。
控制器150還可以包括一個或多個數(shù)字按鈕、一個或多個模擬按鈕、一個或多個緩沖器、一個或多個方向盤、一個或多個模擬或數(shù)字桿、一個或多個驅(qū)動輪、和/或一個或多個用戶輸入元件,該一個或多個用戶輸入元件可以由用戶與其交互并且可以向系統(tǒng)100提供輸入??刂破?50還可以包括一個或多個模擬或數(shù)字觸發(fā)按鈕(或“觸發(fā)器”),該一個或多個模擬或數(shù)字觸發(fā)按鈕(或“觸發(fā)器”)可進(jìn)一步由用戶與其交互并且可以進(jìn)一步向系統(tǒng)100提供輸入。如下面更詳細(xì)描述的,控制器150還可以包括被配置成在控制器150的至少一個觸發(fā)器上施加雙向推/拉力的馬達(dá)或另一種類型的致動器或觸覺輸出設(shè)備。
控制器150還可以包括一個或多個致動器或其它類型的觸覺輸出設(shè)備??刂破?50的本地處理器,或者其中控制器150不包括本地處理器的實施例中的處理器120可以將與觸覺效果相關(guān)聯(lián)的觸覺信號傳輸?shù)娇刂破?50的至少一個致動器。致動器又響應(yīng)于觸覺信號輸出觸覺效果,諸如振動觸感觸覺效果、動覺觸覺效果或變形觸覺效果??梢栽诳刂破?50的用戶輸入元件(例如,數(shù)字按鈕、模擬按鈕、緩沖器、方向盤、模擬或數(shù)字桿、驅(qū)動輪或觸發(fā)器)處體驗到觸覺效果??商娲?,可以在控制器150的外表面處體驗到觸覺效果。
致動器是觸覺輸出設(shè)備的示例,其中觸覺輸出設(shè)備是被配置成響應(yīng)于驅(qū)動信號而輸出觸覺效果的設(shè)備,觸覺效果諸如振動觸感觸覺效果、靜電摩擦觸覺效果、溫度變化和/或變形觸覺效果。在替代的實施例中,控制器150內(nèi)的一個或多個致動器可以由一些其它類型的觸覺輸出設(shè)備代替。觸覺輸出設(shè)備可以是例如電馬達(dá)、電磁致動器、音圈、形狀記憶合金、電活性聚合物、螺線管、偏心旋轉(zhuǎn)質(zhì)量馬達(dá)(“erm”)、諧波erm馬達(dá)(“herm”)、線性諧振致動器(“l(fā)ra”)、壓電致動器、高帶寬致動器、電活性聚合物(“eap”)致動器、靜電摩擦顯示器或超聲波振動發(fā)生器。在一些情況下,觸覺輸出設(shè)備可以包括觸覺輸出驅(qū)動電路。在一些實施例中,觸覺輸出設(shè)備可以是單向的或雙向的。
控制器150還可以包括一個或多個揚聲器。控制器150的本地處理器,或者其中控制器150不包括本地處理器的實施例中的處理器120可以將音頻信號傳輸?shù)娇刂破?50的至少一個揚聲器,該揚聲器又輸出音頻效果。揚聲器可以是例如動態(tài)擴(kuò)音器、電動擴(kuò)音器、壓電擴(kuò)音器、磁致伸縮擴(kuò)音器、靜電擴(kuò)音器、帶及平面磁性擴(kuò)音器、彎曲波擴(kuò)音器、平板擴(kuò)音器、帶狀空氣運動換能器、等離子弧揚聲器和數(shù)字?jǐn)U音器。
控制器150還可以包括一個或多個傳感器。傳感器可以被配置成檢測能量的形式或其它物理性質(zhì),諸如但不限于,聲音、移動、加速度、生物信號、距離、流量、力/壓力/應(yīng)變力/、彎曲、濕度、線性位置、朝向/傾斜、射頻、旋轉(zhuǎn)位置、旋轉(zhuǎn)速度、開關(guān)的操作、溫度、振動或可見光強(qiáng)度。傳感器還可以被配置成將檢測到的能量或其它物理性質(zhì)轉(zhuǎn)換為電信號或表示虛擬傳感器信息的任何信號,并且控制器150可以將轉(zhuǎn)換后的信號發(fā)送到控制器150的本地處理器,或者在其中控制器150不包括本地處理器的實施例中發(fā)送到處理器120。
圖2是圖示根據(jù)本發(fā)明的示例實施例的用戶輸入元件的運動范圍200的簡化示意圖。雖然運動范圍200涉及觸發(fā)器輸入元件,但是本發(fā)明的實施例可以容易地應(yīng)用到各種用戶輸入元件類型。
如圖2所示,運動范圍200可以包括主要范圍210和次要范圍220a、220b。此外,邊界范圍230a、230b可以被定義為與主要范圍210和次要范圍220a、220b部分地重疊。在一些情況下,主要范圍210可以被擴(kuò)展,以在次要范圍220a、220b和/或邊界范圍230a、230b內(nèi)渲染觸覺效果。例如,可以在觸覺輸出設(shè)備渲染觸覺效果時進(jìn)一步拉動用戶輸入元件和/或進(jìn)一步推動用戶輸入元件。
在一些實施例中,主要范圍210和次要范圍220a、220b可以是固定的或可變的。例如,次要范圍220a可以具有從最大向外位置到標(biāo)稱位置的7度的運動范圍,主要范圍210可以具有從標(biāo)稱位置到手指抵靠(grounding)位置的29度的運動范圍,并且次要范圍220b可以具有從手指抵靠位置到觸發(fā)器抵靠位置的3度的運動范圍。在這種示例中,運動范圍200可以總共39度(7+29+3)。
當(dāng)不施加觸覺效果時,用戶輸入元件的移動可以被限制到主范圍210。但是,當(dāng)施加觸覺效果時,用戶輸入元件的移動可以擴(kuò)展到次要范圍220a、220b和/或邊界范圍230a、230b。在任一種情況下,用戶輸入元件的位置可以被表示為模數(shù)轉(zhuǎn)換(“adc”)數(shù)據(jù),諸如具有在0和255之間的范圍值的8位adc數(shù)據(jù)。雖然提供了8位位置數(shù)據(jù)作為示例,但是實施例不限于此。也可以使用更高分辨率位置數(shù)據(jù),諸如16位位置數(shù)據(jù)。
圖3圖示根據(jù)本發(fā)明的示例實施例的觸覺效果軟件棧300的框圖。如圖3所示,軟件棧300包括設(shè)備模塊310、外圍固件模塊320、控制器模塊330、驅(qū)動模塊340和震動(rumble)驅(qū)動模塊350。觸覺效果軟件棧300在系統(tǒng)(諸如,圖1的系統(tǒng)100)上實現(xiàn)。
設(shè)備模塊310可以包括各種模塊,諸如輸入管理代碼311、外圍輸入應(yīng)用編程接口(“api”)312、震動api313、觸覺效果api314、直接回放/交叉器315、觸發(fā)器引擎316、空間化引擎317和編碼器318。
輸入管理代碼311可以包括一組計算機(jī)可讀指令,在設(shè)備內(nèi)執(zhí)行的游戲應(yīng)用或其它類型的應(yīng)用的上下文中該計算機(jī)可讀指令管理由控制器330提供的輸入。
外圍輸入api312可以包括一組計算機(jī)可讀函數(shù)或例程,該計算機(jī)可讀函數(shù)或例程使得游戲輸入管理代碼311能夠與外圍固件320交互,以便接收和管理由控制器330提供的輸入。
震動api313可以包括一組計算機(jī)可讀函數(shù)或例程,該計算機(jī)可讀函數(shù)或例程使得輸入管理代碼311能夠與外圍固件320交互,以便將震動指令傳輸?shù)娇刂破?30的一個或多個震動馬達(dá)或震動致動器(例如,圖3的震動馬達(dá)l和r)。此外,震動指令可以使得控制器330的震動馬達(dá)或震動致動器產(chǎn)生通用觸覺效果或震動觸覺效果。
觸覺效果api314(在圖3中被標(biāo)識為“api”)可以包括一組計算機(jī)可讀函數(shù)或例程,該計算機(jī)可讀函數(shù)或例程可由輸入管理代碼311訪問并且使得輸入管理代碼311能夠與外圍固件320交互,以便將觸覺指令傳輸?shù)娇刂破?30。此外,觸覺指令可以使得控制器330的一個或多個目標(biāo)馬達(dá)或目標(biāo)致動器在控制器330的一個或多個用戶輸入元件處產(chǎn)生觸覺效果。
觸覺效果api314還可以存儲一個或多個觸覺效果定義。觸覺效果定義是包括觸覺數(shù)據(jù)(諸如,觸覺信號)的數(shù)據(jù)結(jié)構(gòu),該觸覺數(shù)據(jù)被預(yù)定義并且可以存儲在存儲設(shè)備(諸如,觸覺文件或觸覺流)中,并且可以被發(fā)送到一個或多個震動馬達(dá)、震動執(zhí)行器、目標(biāo)馬達(dá)或目標(biāo)致動器,以在控制器330的部件或用戶輸入元件處產(chǎn)生觸覺效果。觸覺數(shù)據(jù)可以包括對應(yīng)的觸覺效果的一個或多個屬性,其中屬性可以存儲為參數(shù)。觸覺效果定義的示例參數(shù)可以包括振幅參數(shù)、頻率參數(shù)、波形參數(shù)、包絡(luò)參數(shù)、幅度(或強(qiáng)度)參數(shù)和持續(xù)時間參數(shù)。
觸覺效果api314可以使得游戲輸入管理代碼311能夠與直接回放/交叉器315、觸發(fā)器引擎316和空間化引擎317交互,并且還可以根據(jù)由游戲輸入管理代碼311調(diào)用的請求來管理直接重放/交叉器315、觸發(fā)器引擎316和空間化引擎317。此外,觸覺效果api314可以存儲用于與外圍固件320通信和用于生成一個或多個觸覺效果的數(shù)據(jù)。
直接回放/交叉器315可以接收觸覺數(shù)據(jù)作為輸入、產(chǎn)生觸覺數(shù)據(jù)作為輸出、以及將觸覺數(shù)據(jù)傳輸?shù)娇刂破?30的一個或多個目標(biāo)馬達(dá)或目標(biāo)致動器(例如,圖3的馬達(dá)l和r)。在一些實施例中,直接回放/交叉器315可以將輸入觸覺數(shù)據(jù)直接輸出,而不修改輸入觸覺數(shù)據(jù)的格式。這導(dǎo)致輸入觸覺數(shù)據(jù)的“原樣”回放。在其它實施例中,直接回放/交叉器315可以將以第一格式輸入的觸覺數(shù)據(jù)轉(zhuǎn)換為第二格式,并且可以進(jìn)一步輸出轉(zhuǎn)換后的觸覺數(shù)據(jù)。取決于回放的類型,直接回放/交叉器315可以可選地使用可編程交叉器來轉(zhuǎn)換觸覺數(shù)據(jù)。通過轉(zhuǎn)換觸覺數(shù)據(jù),設(shè)備模塊可以解構(gòu)觸覺效果并在若干致動器處回放觸覺效果。
觸覺數(shù)據(jù)的格式可以是觸覺基本流(“hes”)格式。hes格式是用于表示可以被流式傳輸?shù)皆O(shè)備的觸覺數(shù)據(jù)的文件或數(shù)據(jù)格式。雖然可以在hes格式內(nèi)加密觸覺數(shù)據(jù),但是可以用與如何表示未壓縮的聲音相同或相似的方式來表示觸覺數(shù)據(jù)。
觸發(fā)器引擎316可以接收觸覺數(shù)據(jù)(諸如,觸覺效果定義),并且可以基于用戶輸入數(shù)據(jù)(諸如,觸發(fā)器數(shù)據(jù)323)修改觸覺數(shù)據(jù)。觸發(fā)器數(shù)據(jù)是包括指示控制器330的一個或多個觸發(fā)器(例如,圖3的觸發(fā)器l和r)的位置和/或范圍的一個或多個參數(shù)的數(shù)據(jù)。觸發(fā)器引擎316還可以向控制器330傳輸觸覺指令。例如,觸發(fā)器引擎316可以將觸覺指令傳輸?shù)娇刂破?30的各種用戶輸入元件。如前所述,觸覺指令可以使得控制器330的一個或多個目標(biāo)馬達(dá)或目標(biāo)致動器在控制器330的一個或多個用戶輸入元件處產(chǎn)生觸覺效果。
空間化引擎317可以接收觸覺數(shù)據(jù)并且可以基于空間化數(shù)據(jù)修改觸覺數(shù)據(jù)??臻g化數(shù)據(jù)可以包括指示觸覺效果的期望方向和/或流動(諸如,觸覺效果在相應(yīng)用戶輸入元件上的排序)的數(shù)據(jù)。在某些實施例中,空間化引擎317可以從輸入管理代碼311接收包括方向和/或流動的空間化數(shù)據(jù)。
空間化引擎317可以修改觸覺數(shù)據(jù),使得觸覺效果(諸如,觸發(fā)器觸覺效果)對于控制器330的一個或多個震動馬達(dá)或震動致動器(例如,圖3的震動馬達(dá)l和r)進(jìn)行縮放,并且觸覺效果也對于控制器330的一個或多個目標(biāo)馬達(dá)或目標(biāo)致動器(例如,如圖3所圖示的馬達(dá)l和r)進(jìn)行縮放。換句話說,空間化引擎317可以修改發(fā)送到每一個馬達(dá)或致動器的觸覺數(shù)據(jù),并且因此,修改在每一個馬達(dá)或致動器處體驗到的觸覺效果,以便傳達(dá)整體觸覺效果的方向和流動的感覺。例如,為了強(qiáng)調(diào)在馬達(dá)或致動器處體驗到的觸覺效果,空間化引擎317可以縮放觸覺效果的一個或多個部分。例如,空間化引擎317可以縮放發(fā)送到使得觸覺效果被體驗到的馬達(dá)或致動器的觸覺數(shù)據(jù),從而使得觸覺效果更顯著(例如,增大的幅度,持續(xù)時間等)。此外,空間化引擎317可以縮放發(fā)送到其它馬達(dá)或致動器的觸覺數(shù)據(jù),從而使得在那些馬達(dá)或致動器處體驗到的其它觸覺效果不太顯著(例如,減小的幅度、持續(xù)時間等)。在一些實施例中,空間化引擎317可以實時地或基本上實時地修改觸覺數(shù)據(jù)。此外,在一些實施例中,空間化引擎317可以在輸入、馬達(dá)或致動器、輸出之間具有非線性關(guān)系,以便夸大整體觸覺效果。
編碼器318將從直接回放/交叉器315、觸發(fā)器引擎316和/或空間化引擎317接收到的觸覺數(shù)據(jù)編碼成格式。在一種實施例中,格式可以是hes格式。編碼器318可以將編碼的觸覺數(shù)據(jù)傳輸?shù)酵鈬碳?20。
外圍固件320是用于一個或多個外圍設(shè)備(例如,控制器)的固件。外圍固件320可以包括各種模塊,諸如解碼器和交叉器321、觸發(fā)器控件322、觸發(fā)器數(shù)據(jù)323、其它功能324和震動控件325。
解碼器和交叉器321可以從編碼器318接收編碼的觸覺數(shù)據(jù),并對編碼的觸覺數(shù)據(jù)進(jìn)行解碼。在一些實施例中,解碼器和交叉器321計算可編程交叉器,以便對編碼的觸覺數(shù)據(jù)進(jìn)行解碼。解碼器和交叉器321可以實時計算可編程交叉器。
觸發(fā)器控件322是用于控制器330的一個或多個目標(biāo)馬達(dá)或目標(biāo)致動器(例如,圖3的馬達(dá)l和r)的低級控制api。觸發(fā)器控件322可以接收觸發(fā)指令并且可以將觸發(fā)指令轉(zhuǎn)換成用于控制器330的指定目標(biāo)馬達(dá)或目標(biāo)致動器的低級觸發(fā)指令,并且可以將低級觸發(fā)指令傳輸?shù)娇刂破?30的指定目標(biāo)馬達(dá)或目標(biāo)致動器。低級觸發(fā)指令可以使得指定目標(biāo)馬達(dá)或目標(biāo)致動器在控制器330的指定觸發(fā)器處產(chǎn)生觸發(fā)器觸覺效果。
如前所述,觸發(fā)器數(shù)據(jù)323是包括指示控制器330的一個或多個觸發(fā)器(例如,圖3的觸發(fā)器l和r)的位置和/或范圍的一個或多個參數(shù)的數(shù)據(jù)。外圍固件320可以從控制器330接收觸發(fā)器數(shù)據(jù)323。外圍固件320還可以存儲觸發(fā)器數(shù)據(jù)323,并且還可以將觸發(fā)器數(shù)據(jù)323傳輸?shù)皆O(shè)備模塊310。
其它游戲手柄功能324可以是由外圍固件320管理的控制器330的功能。這樣的功能可以包括諸如有線/無線通信、輸入報告、協(xié)議實現(xiàn)、電源管理等的功能。
震動控件325是用于控制器330的一個或多個震動馬達(dá)或震動致動器(例如,圖3的震動馬達(dá)l和r)的低級控制api。震動控件325可以接收震動指令、可以將震動指令轉(zhuǎn)換為用于控制器330的指定震動馬達(dá)或震動致動器的低級震動指令,并且可以將低級觸發(fā)指令傳輸?shù)娇刂破?30的指定震動馬達(dá)或震動致動器。
觸發(fā)器重調(diào)(rescale)模塊326是模塊化固件模塊,其監(jiān)視用戶輸入元件的位置及其相應(yīng)觸覺輸出設(shè)備在控制器330中的狀態(tài)。例如,觸發(fā)器重調(diào)模塊326將用戶輸入重調(diào)到主機(jī)設(shè)備所期望的范圍。在一些情況下,觸發(fā)器重調(diào)模塊326可以將用戶輸入重調(diào)到范圍[0,127]。在其它情況下,觸發(fā)器重調(diào)模塊326可以將用戶輸入重調(diào)到范圍[0,255]。在各種配置中,觸發(fā)器重調(diào)模塊326可以應(yīng)用到任何模擬輸入。在一些情況下,與硬件無關(guān)的固件部分可以與硬件相關(guān)的部分分離。這里,硬件無關(guān)的固件可以通過使用功能指針與硬件相關(guān)的固件交互。
控制器330可以包括觸發(fā)器l和r??刂破?30還可以包括齒輪箱l和r以及馬達(dá)l和r。馬達(dá)l和齒輪箱l在控制器330內(nèi)可操作地耦合到觸發(fā)器l。同樣,馬達(dá)r和齒輪箱r在控制器330內(nèi)可操作地耦合到觸發(fā)器r。當(dāng)馬達(dá)l接收到觸發(fā)指令時,馬達(dá)l和齒輪箱l可以共同地使得在觸發(fā)器l處感受到觸發(fā)器觸覺效果。同樣,當(dāng)馬達(dá)r接收到觸發(fā)指令時,馬達(dá)r和齒輪箱r可以共同地使得在觸發(fā)器r處感受到觸發(fā)器觸覺效果。外圍固件320可以使用驅(qū)動電子器件340向控制器330的馬達(dá)l和r發(fā)送觸發(fā)指令。
控制器330還可以包括電位計l和r。電位計l可以檢測觸發(fā)器l的位置和/或范圍,并且還可以將檢測到的觸發(fā)器l的位置和/或范圍作為觸發(fā)器數(shù)據(jù)發(fā)送到外圍固件320。同樣,電位計r可以檢測觸發(fā)器r的位置和/或范圍,并且還可以將檢測到的觸發(fā)器r的位置和/或范圍作為觸發(fā)器數(shù)據(jù)發(fā)送到外圍固件320。
控制器330還可以包括震動馬達(dá)l和r。當(dāng)震動馬達(dá)l接收到震動指令時,震動馬達(dá)l使得觸覺效果沿著控制器330的左部件被感受到。同樣,當(dāng)震動馬達(dá)r接收到震動指令時,震動馬達(dá)r使得觸覺效果沿著控制器330的右部件被感受到。外圍固件320可以使用震動驅(qū)動電子器件350向震動馬達(dá)l和r發(fā)送震動指令。
圖4圖示根據(jù)本發(fā)明的示例實施例的用于控制與觸覺輸出設(shè)備相關(guān)聯(lián)的用戶輸入元件的功能400的流程圖。在一些情況下,可以由存儲在存儲器或其它計算機(jī)可讀介質(zhì)或有形介質(zhì)中并由處理器執(zhí)行的軟件來實現(xiàn)圖4(和下面的圖5)的流程圖的功能。在其它實施例中,可以由硬件(例如,通過使用專用集成電路(“asic”)、可編程門陣列(“pga”)、現(xiàn)場可編程門陣列(“fpga”)等)或硬件和軟件的任何組合來執(zhí)行功能。
首先,在410處,功能400可以定義與觸覺輸出設(shè)備相關(guān)聯(lián)的用戶輸入元件的位置的主要范圍和次要范圍。接下來,在420處,功能400可以定義與觸覺輸出設(shè)備相關(guān)聯(lián)的用戶輸入元件的位置的邊界范圍,邊界范圍與主要范圍和次要范圍中的每一個部分地重疊。在定義了各種范圍之后,功能400在430處監(jiān)視用戶輸入元件的位置。最后,在440處,當(dāng)用戶輸入元件進(jìn)入邊界范圍內(nèi)的位置時,可以渲染(一個或多個)觸覺效果。這里,(一個或多個)觸覺效果可以將用戶輸入元件的位置延伸到次要范圍中的一個中。此外,可以由軟件應(yīng)用(諸如,游戲應(yīng)用)產(chǎn)生渲染(一個或多個)觸覺效果的觸覺指令。通過采用功能400,擴(kuò)展了用戶輸入元件的范圍和能力,并且終端用戶可以體驗到更廣泛的觸覺效果。
圖5圖示根據(jù)本發(fā)明的另一種示例實施例的用于控制與觸覺輸出設(shè)備相關(guān)聯(lián)的用戶輸入元件的功能500的流程圖。
首先,在510處,可以初始化控制器的用戶輸入元件。這里,功能500可以初始地為用戶輸入元件設(shè)置位置和范圍信息。例如,可以初始地設(shè)置主要范圍、(一個或多個)次要范圍和(一個或多個)邊界范圍。在一些情況下,可以基于用戶輸入設(shè)備從最大出去位置到抵靠位置的移動來計算這些值。
接下來,在520處,功能500計算用戶輸入元件的簡檔。計算出的簡檔可以將用戶輸入設(shè)備的每個位置映射到adc值。例如,520的計算出的簡檔可以將用戶輸入設(shè)備的每個位置映射到0至255之間的adc值。
計算出的簡檔可以或者利用遞增或者利用遞減的簡檔。例如,當(dāng)從8位adc數(shù)據(jù)讀取用戶輸入位置值時,遞增的簡檔將產(chǎn)生值[0,255]。類似地,當(dāng)從8位adc數(shù)據(jù)讀取時,遞減的簡檔將產(chǎn)生值[255,0]。
隨后,在530處,功能500計算歸一化簡檔??梢酝ㄟ^從adc數(shù)據(jù)中去除次要范圍和/或邊界范圍來計算歸一化簡檔。例如,530的計算出的歸一化簡檔可以將用戶輸入設(shè)備的每個位置(不包括次要位置和/或邊界位置)映射到0至255之間的adc值。
在一些情況下,用戶輸入元件的擱置位置在不同時間可以變化。例如,在使用各種用戶輸入設(shè)備之后,一些用戶輸入設(shè)備可以不返回到當(dāng)用戶交互被去除時的相同擱置位置。在這種情況下,功能500可以在540處調(diào)整為這些用戶輸入元件計算出的簡檔和計算出的歸一化簡檔。相應(yīng)地,在監(jiān)視用戶輸入元件的位置的同時,可以考慮(一個或多個)改變的擱置位置。
圖6圖示根據(jù)本發(fā)明的實施例的包括外部彈簧600的控制器,該外部彈簧600創(chuàng)建打開延伸行程范圍620,用于當(dāng)觸發(fā)器610處于打開延伸行程范圍620之外的最大打開位置時,觸發(fā)器610在該打開延伸行程范圍620內(nèi)移動。更具體地,圖6圖示包括外部彈簧600的控制器,該外部彈簧600將觸發(fā)器610保持在打開延伸行程范圍620之外的最大打開位置中。當(dāng)力被施加到觸發(fā)器610時,外部彈簧600可以允許觸發(fā)器610旋轉(zhuǎn)或以其它方式移動到打開延伸行程范圍620。圖6包括視圖601和602。在視圖601中,觸發(fā)器610處于打開延伸行程范圍620之外的最大打開位置中,而觸發(fā)器610可以沿著垂直于圖6所圖示平面的軸線被拉動或推動。在視圖602中,觸發(fā)器610處于位于打開延伸行程范圍620內(nèi)的最大打開位置中,其中觸發(fā)器610在打開延伸行程范圍620內(nèi)進(jìn)一步延伸,而觸發(fā)器610可以被拉回但不能沿著垂直于圖6所圖示平面的軸線被進(jìn)一步推出。在所圖示實施例中,外部彈簧600是防止觸覺縮減部件的示例,并且位于觸發(fā)器610與外部旋轉(zhuǎn)硬止動件或控制器殼體的外部部分之間。延伸行程范圍之外的最大打開位置對于空間化可能是重要的,因為當(dāng)接收到空間化觸覺效果時,用戶可以將他們的手指輕輕地擱置在控制器的觸發(fā)器上。為了在觸發(fā)器(諸如,觸發(fā)器610)處于打開延伸行程范圍(諸如,打開延伸行程范圍620)之外的最大打開位置時增加觸發(fā)器觸覺效果的幅度,可以用外部彈簧(諸如,外部彈簧600)偏移觸發(fā)器,使得當(dāng)處于打開延伸行程范圍之外的最大打開位置時,觸發(fā)器能夠響應(yīng)于施加到觸發(fā)器的力在延伸行程范圍內(nèi)移動。
視圖601是控制器的視圖,其中外部彈簧600將觸發(fā)器610保持在位置中,使得當(dāng)觸發(fā)器610處于打開延伸行程范圍620之外的最大打開位置中時,觸發(fā)器610不擱置在外部旋轉(zhuǎn)硬止動件或控制器的殼體的外部部分,或者不以其它方式與外部旋轉(zhuǎn)硬止動件或控制器的殼體的外部部分接觸。換句話說,外部彈簧600創(chuàng)建打開延伸行程范圍620,其中打開延伸行程范圍620是一種范圍,觸發(fā)器610可以響應(yīng)于由目標(biāo)馬達(dá)或目標(biāo)致動器產(chǎn)生并施加到觸發(fā)器610的力,在該范圍內(nèi)旋轉(zhuǎn)或以其它方式移動。通過創(chuàng)建打開延伸行程范圍620,外部彈簧600可以防止當(dāng)觸發(fā)器610響應(yīng)于施加到觸發(fā)器610的力旋轉(zhuǎn)或以其它方式移動時,觸發(fā)器610抵靠在外部旋轉(zhuǎn)硬止動件或殼體的外部部分上。這可以增加在觸發(fā)器610處體驗到的觸發(fā)器觸覺效果(例如,動覺觸覺效果)的幅度。在所圖示的實施例中,外部彈簧600是包括杠桿臂605的懸臂彈簧,其中杠桿臂605推動或以其它方式與觸發(fā)器610接觸,以將觸發(fā)器610保持在上述位置。在替代實施例中,外部彈簧600可以是推動或以其它方式與觸發(fā)器610接觸的壓縮彈簧、偏壓彈簧或一些其它類型的彈簧。雖然可以使用各種彈簧類型,但是實施例不限于此,并且可以使用其它變形機(jī)制。
視圖602是控制器的視圖,其中目標(biāo)馬達(dá)或目標(biāo)致動器向觸發(fā)器610施加力,并且觸發(fā)器610響應(yīng)于該力旋轉(zhuǎn)或以其它方式移動。如圖6的視圖602所圖示的,觸發(fā)器610旋轉(zhuǎn)或以其它方式移動到打開延伸行程范圍620中,并且占據(jù)打開延伸行程范圍620的至少一部分。在所圖示的實施例中,觸發(fā)器610推動或以其它方式與杠桿臂605接觸。這使杠桿臂605移動,使得觸發(fā)器610可以旋轉(zhuǎn)或以其它方式移動到延伸行程范圍620中。在其中外部彈簧600是壓縮彈簧、偏壓彈簧或另一種類型的彈簧的替代實施例中,觸發(fā)器610可以推動或以其它方式與外部彈簧600接觸,這可以移動外部彈簧600,使得觸發(fā)器610可以旋轉(zhuǎn)或以其它方式移動到打開延伸行程范圍620中。
在替代實施例中,外部彈簧600可以用內(nèi)部彈簧代替。內(nèi)部彈簧可以定位在觸發(fā)器610和內(nèi)部旋轉(zhuǎn)硬止動件或控制器的殼體的內(nèi)部部分之間。此外,內(nèi)部彈簧可以拉動觸發(fā)器610,使得觸發(fā)器610不擱置在外部旋轉(zhuǎn)硬止動件或控制器的殼體的外部部分,或者不以其它方式與外部旋轉(zhuǎn)硬止動件或控制器的殼體的外部部分接觸(即,使得延伸行程范圍620被創(chuàng)建)。在這個替代實施例中,可以計算內(nèi)部彈簧的剛度,以便避免拉動觸發(fā)器610,使得觸發(fā)器610擱置在內(nèi)部旋轉(zhuǎn)硬止動件或控制器的殼體的內(nèi)部部分,或者以其它方式與內(nèi)部旋轉(zhuǎn)硬止動件或控制器的殼體的內(nèi)部部分接觸。
圖7圖示根據(jù)本發(fā)明的實施例的包括延伸框架700的控制器,該延伸框架700創(chuàng)建關(guān)閉延伸行程范圍730,用于當(dāng)觸發(fā)器710處于關(guān)閉延伸行程范圍730之外的最大關(guān)閉位置時,觸發(fā)器710在該關(guān)閉延伸行程范圍730內(nèi)移動。在所圖示的實施例中,延伸框架700是防止觸覺縮減部件的示例,并且是控制器的殼體的外部部分的延伸。如前所述,在標(biāo)準(zhǔn)的觸發(fā)器設(shè)計中,當(dāng)觸發(fā)器(諸如,觸發(fā)器710)處于最大關(guān)閉位置時(例如,當(dāng)用戶完全按下觸發(fā)器,使得觸發(fā)器抵靠到殼體的內(nèi)部部分時),觸發(fā)器觸覺效果可以被極大縮減。為了在觸發(fā)器處于關(guān)閉延伸行程范圍之外的最大關(guān)閉位置時增加觸發(fā)器觸覺效果的幅度,延伸框架(諸如,延伸框架700)可以作為移動該觸發(fā)器的對象(諸如,對象720)的抵靠。在這種情況下,即使當(dāng)觸發(fā)器已經(jīng)完全移動到關(guān)閉延伸行程范圍之外的最大關(guān)閉位置時,觸發(fā)器仍然可以相對對象移動,并且可以在觸發(fā)器處產(chǎn)生顯著的觸覺反饋感覺。
圖7包括視圖701和702。視圖701是控制器的視圖,其中對象720(例如,用戶的手指)已經(jīng)推動、拉動或以其它方式移動觸發(fā)器710,并且其中對象720抵靠在延伸框架700上(即,對象720降至最低)。由于對象720抵靠在延伸框架700上,因此當(dāng)觸發(fā)器710處于關(guān)閉延伸行程范圍730之外的最大關(guān)閉位置時,觸發(fā)器710不擱置在內(nèi)部旋轉(zhuǎn)硬止動件或控制器的殼體的內(nèi)部部分,或者不以其它方式與內(nèi)部旋轉(zhuǎn)硬止動件或控制器的殼體的內(nèi)部部分接觸。換句話說,延伸框架700創(chuàng)建關(guān)閉延伸行程范圍730,其中關(guān)閉延伸行程范圍730是一種范圍,觸發(fā)器710可以響應(yīng)于由目標(biāo)馬達(dá)或目標(biāo)致動器產(chǎn)生并施加到觸發(fā)器710的力,在該范圍內(nèi)旋轉(zhuǎn)或以其它方式移動。通過創(chuàng)建關(guān)閉延伸行程范圍730,延伸框架700可以防止當(dāng)觸發(fā)器710響應(yīng)于施加到觸發(fā)器710的力旋轉(zhuǎn)或以其它方式移動時,觸發(fā)器710抵靠在內(nèi)部旋轉(zhuǎn)硬止動件或殼體的內(nèi)部部分上。這可以增加在觸發(fā)器710處體驗到的觸發(fā)器觸覺效果(例如,動覺觸覺效果)的幅度。
視圖702是控制器的視圖,其中目標(biāo)馬達(dá)或目標(biāo)致動器向觸發(fā)器710施加力,并且觸發(fā)器710響應(yīng)于該力旋轉(zhuǎn)或以其它方式移動。如圖7的視圖702所圖示的,觸發(fā)器710旋轉(zhuǎn)或以其它方式移動到關(guān)閉延伸行程范圍730中,并且占據(jù)關(guān)閉延伸行程范圍730的至少一部分。
在替代實施例中,延伸框架700可以用內(nèi)部彈簧代替。內(nèi)部彈簧可以定位在觸發(fā)器710和內(nèi)部旋轉(zhuǎn)硬止動件或控制器的殼體的內(nèi)部部分之間。此外,內(nèi)部彈簧可以推動觸發(fā)器710,其中對象720已經(jīng)推動、拉動或以其它方式移動觸發(fā)器710,使得觸發(fā)器710不擱置在內(nèi)部旋轉(zhuǎn)硬止動件或控制器的殼體的內(nèi)部部分,或者不以其它方式與內(nèi)部旋轉(zhuǎn)硬止動件或控制器的殼體的內(nèi)部部分接觸(即,使得關(guān)閉延伸行程范圍730被創(chuàng)建)。在這個替代實施例中,可以計算內(nèi)部彈簧的剛度,以便提供足夠的阻力來防止觸發(fā)器710擱置在內(nèi)部旋轉(zhuǎn)硬止動件或控制器的殼體的內(nèi)部部分,或者防止觸發(fā)器710以其它方式與內(nèi)部旋轉(zhuǎn)硬止動件或控制器的殼體的內(nèi)部部分接觸。
圖8圖示適于與本發(fā)明的實施例一起使用的控制器800的功能框圖。
如圖8所圖示,控制器800可以包括各種用戶輸入元件中的一個或多個。用戶輸入元件可以指的是由用戶操縱以與主機(jī)計算機(jī)804交互的任何接口設(shè)備。示例用戶輸入元件包括模擬或數(shù)字操縱桿810、按鈕814、觸發(fā)器818等。如本領(lǐng)域普通技術(shù)人員所理解的,每一個用戶輸入元件中的一個或多個可以被包括在控制器800上。例如,觸發(fā)器818的當(dāng)前描述不將控制器800限制到單個觸發(fā)器。類似地,本領(lǐng)域技術(shù)人員可以理解的是,可以使用若干模擬或數(shù)字桿、按鈕和其它用戶輸入元件。
控制器800可以包括本地處理器808。本地處理器808可以經(jīng)由連接805與主機(jī)計算機(jī)804交換命令和數(shù)據(jù)。連接805可以是使用本領(lǐng)域技術(shù)人員已知的一個或多個通信協(xié)議的有線或無線連接。在一些情況下,控制器800可以替代地被配置成不包括本地處理器808。這里,來自控制器800的輸入/輸出信號可以由主機(jī)計算機(jī)804直接處置和處理。主機(jī)計算機(jī)804可以是游戲設(shè)備控制臺并且顯示設(shè)備806可以是可操作地耦合到游戲設(shè)備控制臺的屏幕。在一些情況下,主機(jī)計算機(jī)804和顯示設(shè)備806可以組合成單個設(shè)備。
控制器800可以包括目標(biāo)致動器812、816、820(例如,馬達(dá)),以直接驅(qū)動其用戶輸入元件中的每一個以及在用戶的手通常位于的位置可操作地耦合到殼體802的一個或多個通用或震動致動器822、824。更具體地,模擬或數(shù)字桿810包括可操作地耦合到其的目標(biāo)致動器或馬達(dá)812,按鈕814包括可操作地耦合到其的目標(biāo)致動器或馬達(dá)816,并且觸發(fā)器818包括可操作地耦合到其的目標(biāo)致動器或馬達(dá)820。除了多個目標(biāo)致動器之外,控制器800還包括可操作地耦合到其用戶輸入元件中的每一個的位置傳感器。更具體地,模擬或數(shù)字桿810包括可操作地耦合到其的位置傳感器811,按鈕814包括可操作地耦合到其的位置傳感器815,并且觸發(fā)器818包括可操作地耦合到其的位置傳感器819。本地處理器808可操作地耦合到目標(biāo)致動器812、816、820以及分別耦合到模擬或數(shù)字桿810、按鈕814和觸發(fā)器818的位置傳感器811、815、819。響應(yīng)于從位置傳感器811、815、819接收到的信號,本地處理器808指示目標(biāo)致動器812、816、820分別向模擬或數(shù)字桿810、按鈕814和觸發(fā)器818直接提供定向的或有針對性的動覺效果。這種有針對性的動覺效果與由通用致動器822、824沿著控制器的整個主體產(chǎn)生的通用觸覺效果或震動觸覺效果可辨別或可區(qū)分。共同的觸覺效果向用戶提供了對游戲更強(qiáng)的沉浸感,因為若干形態(tài)(例如,視頻、音頻和觸覺)同時參與。
圖9a和9b圖示適于與本發(fā)明的實施例一起使用的控制器900的不同視圖。如圖9a和圖9b所示,控制器900可以包括各種部件,諸如殼體902、模擬或數(shù)字操縱桿910、(一個或多個)按鈕914、觸發(fā)器918以及震動致動器922和924。
殼體902被形成為使用戶容易地適應(yīng)抓握控制器900??刂破?00是控制器的示例實施例,并且本發(fā)明的實施例可以容易地應(yīng)用于其它控制器形狀。
相應(yīng)地,本發(fā)明的實施例擴(kuò)展了用戶輸入元件的范圍和能力。此外,通過在用戶輸入元件的可定義位置處渲染觸覺效果,可以實現(xiàn)更廣范圍的觸覺效果。
本領(lǐng)域普通技術(shù)人員將容易理解的是,可以用不同順序的步驟和/或用以與所公開的配置不同配置的元件來實施如上所述的本發(fā)明。因此,雖然已經(jīng)基于這些優(yōu)選實施例描述了本發(fā)明,但是對于本領(lǐng)域技術(shù)人員將顯而易見的是,某些修改、變化和替代構(gòu)造將是顯而易見的,同時保持在本發(fā)明的精神和范圍之內(nèi)。因此,為了確定本發(fā)明的邊界和界限,應(yīng)當(dāng)參考所附權(quán)利要求。