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