本發明屬于計算機,人機交互,智能外設,增強現實,電子裝置等技術領域,尤其適用于需要復雜觸屏交互的應用場景。
背景技術:
當今社會配備電容式觸摸屏的智能設備已經相當普及,諸如智能手機、平板電腦、觸摸屏電視機等。絕大多數情況下,電容式觸摸屏設備的交互手段主要是用戶手指觸摸的方式。還有一些輔助設備通過模擬用戶的手指觸摸點,來達到交互的目的,例如觸摸筆等。此類交互方式中,觸摸屏設備僅僅識別觸摸者(手指或模擬設備)的接觸點位置,但并不能識別觸摸者的身份,以及朝向(轉角)等。另有一些輔助裝置,按照一定的規則排布多個觸摸點(通常是三個以上),通過配套應用程序解析這些觸摸點的坐標及相對位置,計算出該裝置的身份、位置及朝向。然而此類裝置的觸摸點依然基于模擬手指觸摸的方式,觸摸點通常占用較大體積及接觸面積,導致裝置體積笨重。不僅如此,由于受到觸摸屏智能設備本身對觸摸點并發數量的限制(通常為10個觸摸點以內),以及相鄰較近的此類輔助裝置之間容易造成觸摸點排布歧義和干擾等原因,此類輔助往往只能支持獨占式交互場景(即:一次僅允許有一個裝置與觸摸屏交互)。另外,由于此類裝置在生產制造時即被固定了其觸摸點的排布情況,因此只能用于被動識別身份、方位等有限的信息,而無法向系統主動傳輸多種動態信息。
鑒于此,對于有復雜觸屏交互的應用場景,迫切的需要有一種觸摸屏交互的方法及裝置來解決現有技術存在的問題和風險。本發明就是用來解決此類問題的,本發明提出的一種觸摸屏交互的方法及裝置,其每個裝置上都配備有兩個體積微小(約2毫米見方)的主動式觸摸點,并且可以動態定制編碼,通過發送頻閃式觸摸信號序列,實現了向系統報告身份、位置、朝向、控制指令等多種動態信息的功能。在此基礎上,結合配套系統的單總線協議輪詢機制,突破觸摸屏設備對觸摸點并發數量的限制,允許多個交互裝置同時進行交互,極大地豐富了應用場景。
技術實現要素:
本發明的目的就是提供一種觸摸屏交互的方法及裝置,來解決現有技術中存在的諸多問題。
本發明包括了實現本發明目的的方法和裝置,其中所述的裝置是由封裝內部元器件的外殼,用戶交互接口,供電裝置,計算單元及控制電路,電容觸摸端和感光接收器等元器件組成的。
所述的用戶交互接口用以接收用戶的輸入操作。此交互接口可采用多種實現方式,包括但不限于物理按鍵、電容觸摸鍵、感光組件等。
所述的供電裝置為各內部元器件提供收發信號,處理信息,芯片運算等需要的電能。實現方式包括但不限于可置換的堿性干電池、紐扣電池、可充電鋰電池等。
所述的計算單元及控制電路用以處理信號收發、信號處理、邏輯運算、流程控制、存儲數據等任務。
所述的電容觸摸端為該裝置的信號輸出接口。該接口采用主動式電容觸發方式,當該裝置置于電容屏之上時,與電容屏相接觸,并由計算處理單元控制,向電容屏輸出觸摸信號。每一個裝置的兩個觸摸端都分為主、副兩個觸摸點,其輸出的觸摸信息分別代表數字信號0和1,通過間歇性地發送不同組合序列的0、1信號,向配套應用程序傳遞動態的二進制指令信息。
所述的感光接收器為該裝置的信號輸入接口。用以接收電容屏傳遞的光信號。該接收器可以采用多種實現方式,包括但不限于單色閾值識別(強光與弱光的交替序列構成信號),多色光敏信號識別(不同顏色的組合序列構成不同信號)等。
本發名提供一種觸摸屏交互的方法及裝置,其方法實現的步驟又包括了初始化過程和具體交互兩種場景。其中初始化的過程具體步驟如下:
步驟s101:應用程序進入初始化模式。在該模式下,應用程序等待本發明所述的裝置依次放置于觸摸屏上,對其進行逐一識別,以供后續場景中持續跟蹤各個裝置。
步驟s102:用戶啟動一個本發明所述裝置,并使其進入“報到”模式。在該模式下,裝置周期性地不斷向外發出代表“報到”的觸摸指令。
步驟s103:當處于“報到模式”的裝置置于觸摸屏上,其發出的“報到”信號即刻被應用程序所捕獲。應用程序立即在獲得該信息的坐標位置生成一個光斑,該光斑由應用程序及裝置雙方協議所預定義的特殊顏色填充,用以跟蹤該裝置,并向裝置傳遞信號。在該步驟中,應用程序通過光斑向裝置發出指令,詢問其編碼及朝向。
步驟s104:處于“報到模式”的裝置,通過感光接收器接收到光斑所傳遞的“詢問編碼及方位”信號,立即停止循環發送“報到信號”的行為,并發送自身的編碼及朝向信息。裝置的編碼信息即可以是裝置的出廠設置,也可以由應用程序重新自定義,存儲于裝置內芯片中的可擦寫存儲單元中。以上兩種方式,只要滿足其編碼在配套的一組裝置中具有唯一性即可。裝置的方位信息,則只需通過裝置的主、副觸摸端依次閃爍一次即可,具體識別方法在下一步驟詳述。
步驟s105:應用程序接收到裝置發出的編碼及方位信息,將其與對應的光斑坐標綁定,存儲于內存變量中,供后續場景使用。對裝置方位信息的識別方法為:當接收到裝置的主、副觸摸端閃爍信號后,先解析出主、副觸摸端的坐標,對其進行求和平均,得到棋子的坐標。再根據主、副端坐標進行向量計算,得到一個起點為主端坐標、方向指向副端坐標的角向量,從而獲得棋子的朝向。
類似地,針對每一個裝置,依次進行步驟s102至步驟s105的操作步驟,從而獲得全部裝置及其對應光斑的狀態信息。
在完成場景初始化后,在具體的交互場景進行過程中,其具體步驟如下:
步驟s201:經過初始化步驟,應用程序已存儲了所有裝置及對應的光斑的狀態信息,稱之為狀態隊列。在接下來的周期性同步過程中的每一次循環開始時,應用程序從狀態隊列中選取下一個裝置,以對其進行狀態同步與更新。當同步更新至隊列中最后一個裝置后,則又跳至隊列第一個裝置,開始新一輪循環。
步驟s202:應用程序對選取的裝置狀態信息進行判斷,若該裝置標記為“在盤”(即:裝置處于觸摸屏之上且保持接觸,其對應光斑位置與裝置保持同步),則應用程序通過光斑向該裝置傳遞“詢問方位”的指令。
步驟s203:應用程序對選取的裝置狀態信息進行判斷,若該裝置標記為“已脫離”,則本次循環跳過該裝置。
步驟s204:應用程序通過光斑發出的“詢問方位”指令時,若裝置的物理狀態為保持與觸摸屏接觸良好,且與光斑重疊位置充足,則該指令將被裝置接收,經裝置內部運算處理單元計算后,通過觸摸端向應用程序反饋其方位信息。輸出和解析方位信息的具體方法參考圖1中的步驟s105。
步驟s205:應用程序通過光斑發出的“詢問方位”指令時,若裝置因移動太快或被用戶移出觸摸屏,致使裝置與光斑位置重疊不夠充分甚至錯位,都會導致裝置接收不到該指令。此時,裝置對指令無響應。
步驟s206:針對步驟s204、步驟s205兩種情況下裝置的反饋,應用程序將最新狀態信息進行同步與更新。如果是步驟s204所述情況,則應用程序將接收到的裝置方位信息更新至隊列中該裝置的方位變量中,并將屏幕中光斑的位置移動至該位置,使其與裝置在物理空間上重新保持完全重疊。如果是步驟s205所述情況,應用程序在等待響應的時間片段中得不到裝置的應答,則在隊列中將該裝置的狀態從“在盤”變更為“已脫離”,并將對應光斑隱藏。
至此,針對一個裝置的一次同步更新過程完成。類似地,應用程序針對隊列中的每一個裝置循環地進行步驟s201至步驟s206的操作,從而實現對裝置及其光斑狀態的同步跟蹤。
步驟s207:一個已經脫離的裝置重新穩定地放置于觸摸屏之上時,應用程序需對其進行識別及歸隊的操作。為了觸發這一過程,裝置在某一限定的時間閾值內未接收到來自光斑的任何信息,則進入周期性循環輸出“復位請求”信息的狀態。
步驟s208:當一個循環發送“復位”信息的裝置接觸到觸摸屏時,應用程序接收到該信息,通過“復位”信息中包含的主、副坐標計算出裝置的位置(過程參考圖1中步驟105),在該坐標位置生成一個對應的光斑,并通過該光斑向裝置發送詢問方位信息的指令。
步驟s209:裝置接收到光斑詢問方位的指令,對其進行響應,反饋當前的方位信息。過程參考步驟s204。在接下來的步驟s206中,該裝置在對了中的狀態信息從“已脫離”恢復為“在盤”。
類似地,經過步驟s207至步驟s209,一個脫離的裝置即可重新回歸到同步更新的循環隊列當中。
本發明,通過所述裝置及輪詢機制,在毫秒級時間片段內,依次對所記錄的交互裝置進行同步更新,系統能識別裝置身份和跟蹤其坐標及朝向。與現有技術相比,具有以下有益效果:
1、大幅提升交互裝置的并行數量。
本發明所描述的交互方法采用單總線輪詢機制,在每個時間片段內僅有一部裝置與觸摸屏進行信息交互,從而避免了相鄰交互裝置之間可能發生的信息干擾或歧義,也避免了與電容觸摸屏設備對觸摸點并發數量上限的沖突。通過這些手段,為并行多個交互裝置提供了算法基礎。
2、提升了交互裝置的交互性,支持更豐富的應用場景。
本發明所描述的交互裝置及其配套應用程序,構建了一套雙向、動態的交互方法,允許用戶通過交互裝置上的觸摸鍵、物理按鍵等多種方式,向應用程序輸入指令,從而能夠實現更豐富的應用場景。
3、大幅減少交互裝置的體積。
本發明所描述的交互裝置由于采用了主動式電容觸摸點,大幅縮小了每個觸摸點所占體積。通過主、副兩個觸摸點傳遞二進制編碼信息,進一步降低了每個裝置所需配備的觸摸點個數。通過這兩個手段,交互裝置整體體積大幅降低。
附圖說明:
圖1、2是本發明的方法流程圖。
圖3、4、5、6是本發明實例1示意圖。
圖7是本發明實例2示意圖。
具體實施方式
為了使本發明的目的,技術方案及有益效果更加清楚明白,以下結合實例,對本發明進行進一步詳細說明。應當理解為此處所描述的具體實例僅用以解釋本發明,并不用于限制本發明的保護范圍。
實例1:
如圖1所示,本例假設使用場景為一個塔防游戲,包含配備電容式觸摸屏的智能設備101、運行在智能設備上的應用程序102、觸摸屏交互裝置(本例中以下統稱為“棋子”)103、104、105、106。需要指出的是,在本發明所述方法中,棋子的并行數量理論上并無上限,可根據具體使用場景的業務邏輯規則進行動態配置。放置于觸摸屏上的若干棋子,與配套應用程序102進行實時信息同步,從而實現了針對每一個棋子的身份識別、方位識別、及交互指令識別。如圖3所示,應用程序時刻知曉每一顆棋子是誰,朝向哪個方向,發出何種指令等。基于此,業務邏輯層的開發者可以定制出獨特而豐富的交互場景。
如圖4所示,為一顆棋子的結構圖。每一顆棋子包含:外殼201:用以封裝棋子的各項內部結構。用戶交互接口202:此為棋子與用戶的交互接口,用以接收用戶的輸入操作。此交互接口可采用多種實現方式,本例假設為電容觸摸鍵。電源203:用以提供棋子收發信號、處理信息、芯片運算等所需的電能。本例假設為紐扣電池。計算單元及其控制電路204:該單元用以處理信號收發、信號處理、邏輯運算、流程控制、存儲數據等任務。電容觸摸端205、206:此為棋子的信號輸出接口。該接口采用主動式電容觸發方式,當棋子置于電容屏之上時,與電容屏相接觸,并由計算處理單元204控制,向電容屏輸出觸摸信號。每一顆棋子的兩個觸摸端都分為主、副兩個觸摸點,其輸出的觸摸信息分別代表數字信號0和1,通過間歇性地發送不同組合序列的0、1信號,向配套應用程序傳遞動態的二進制指令信息。感光接收器207:此為棋子的信號輸入接口。用以接收電容屏傳遞的光信號。該接收器可以采用多種實現方式,本例假設為多色光敏信號識別(不同顏色的組合序列構成不同信號)。
開始本例的塔防游戲前需要先對組棋子與配套應用程序的場景初始化,如圖5所示,其過程包括以下步驟:按著步驟s301:應用程序進入初始化模式。在該模式下,應用程序等待棋子依次放置于觸摸屏上,對其進行逐一識別,以供后續場景中持續跟蹤各個棋子。按著步驟s302:用戶啟動一顆棋子(本例中可以是用戶按下棋子上202的電容觸摸按鍵),并使其進入“報到”模式。在該模式下,棋子周期性地不斷向外發出代表“報到”的觸摸指令。按著步驟s303:當處于“報到模式”的棋子置于觸摸屏上,其發出的“報到”信號即刻被應用程序所捕獲。應用程序立即在獲得該信息的坐標位置生成一個光斑,該光斑由應用程序及棋子雙方協議所預定義的特殊顏色填充,用以跟蹤棋子,并向棋子傳遞信號。在該步驟中,應用程序通過光斑向棋子發出指令,詢問其編碼(識別棋子身份)及朝向(如炮塔的朝向等)。按著步驟s304:處于“報到模式”的棋子,通過感光接收器接收到光斑所傳遞的“詢問編碼及方位”信號,立即停止循環發送“報到信號”的行為,并發送自身的編碼及朝向信息。棋子的編碼信息即可以是棋子的出廠設置,也可以由應用程序重新自定義,存儲于棋子芯片中的可擦寫存儲單元中。以上兩種方式,只要滿足其編碼在配套的一組棋子中具有唯一性即可。棋子的方位信息,則只需通過棋子的主、副觸摸端(參考圖4中205、206)依次閃爍一次即可,具體識別方法在下一步驟詳述。按著步驟s305:應用程序接收到棋子發出的編碼及方位信息,將其與對應的光斑坐標綁定,存儲于內存變量中,供后續場景使用。對棋子方位信息的識別方法為:當接收到棋子的主、副觸摸端閃爍信號后,先解析出主、副觸摸端的坐標,對其進行求和平均,得到棋子的坐標。再根據主、副端坐標進行向量計算,得到一個起點為主端坐標、方向指向副端坐標的角向量,從而獲得棋子的朝向。類似地,針對每一顆棋子,依次進行步驟s302至步驟s305的操作步驟,從而獲得全部棋子及其對應光斑的狀態信息。
在完成初始化過程后,即可開始塔防游戲了,游戲的過程中,為確保時刻跟蹤到每一顆棋子的狀態,應用程序周期性地進行信息同步,如圖6所示,其過程包括以下步驟:按著步驟s401:經過初始化步驟,應用程序已存儲了所有棋子及對應的光斑的狀態信息,稱之為狀態隊列。在接下來的周期性同步過程中的每一次循環開始時,應用程序從狀態隊列中選取下一個棋子,以對其進行狀態同步與更新。當同步更新至隊列中最后一顆棋子后,則又跳至隊列第一顆棋子,開始新一輪循環。按著步驟s402:應用程序對選取的棋子狀態信息進行判斷,若該棋子標記為“在盤”(即:棋子處于觸摸屏之上且保持接觸,其對應光斑位置與棋子保持同步),則應用程序通過光斑向該棋子傳遞“詢問方位”的指令。按著步驟s403:應用程序對選取的棋子狀態信息進行判斷,若該棋子標記為“已脫離”(如棋子被吃掉),則本次循環跳過該棋子。按著步驟s404:應用程序通過光斑發出的“詢問方位”指令時,若棋子的物理狀態為保持與觸摸屏接觸良好,且與光斑重疊位置充足,則該指令將被棋子接收,經棋子內部運算處理單元計算后,通過觸摸端向應用程序反饋其方位信息。輸出和解析方位信息的具體方法參考圖5中的步驟s305。按著步驟s405:應用程序通過光斑發出的“詢問方位”指令時,若棋子因移動太快或被用戶移出觸摸屏,致使棋子與光斑位置重疊不夠充分甚至錯位,都會導致棋子接收不到該指令。此時,棋子對指令無響應。按著步驟s406:針對步驟s404、步驟s405兩種情況下棋子的反饋,應用程序將最新狀態信息進行同步與更新。如果是步驟s404所述情況,則應用程序將接收到的棋子方位信息更新至隊列中該棋子的方位變量中,并將屏幕中光斑的位置移動至該位置,使其與棋子在物理空間上重新保持完全重疊。如果是步驟s405所述情況,應用程序在等待響應的時間片段中得不到棋子的應答,則在隊列中將該棋子的狀態從“在盤”變更為“已脫離”,并將對應光斑隱藏。至此,針對一顆棋子的一次同步更新過程完成。類似地,應用程序針對隊列中的每一顆棋子循環地進行步驟s401至步驟s406的操作,從而實現對棋子及其光斑狀態的同步跟蹤。按著步驟s407:一顆已經脫離的棋子重新穩定地放置于觸摸屏之上時(如拿起棋子將其移動到新的位置),應用程序需對其進行識別及歸隊的操作。為了觸發這一過程,棋子在某一限定的時間閾值內未接收到來自光斑的任何信息,則進入周期性循環輸出“復位請求”信息的狀態。按著步驟s408:當一顆循環發送“復位”信息的棋子接觸到觸摸屏時,應用程序接收到該信息,通過“復位”信息中包含的主、副坐標計算出棋子的位置(過程參考圖5中步驟305),在該坐標位置生成一個對應的光斑,并通過該光斑向棋子發送詢問方位信息的指令。按著步驟s409:棋子接收到光斑詢問方位的指令,對其進行響應,反饋當前的方位信息。過程參考步驟s404。在接下來的步驟s406中,該棋子在對了中的狀態信息從“已脫離”恢復為“在盤”。類似地,經過步驟s407至步驟s409,一顆脫離的棋子即可重新回歸到同步更新的循環隊列當中。通過這樣的步驟,可以完全實現塔防游戲的全部過程,如新建炮塔(增加棋子到觸摸屏上),設置炮塔方向(詢問計算棋子朝向),移除炮塔(將棋子離開觸摸屏)等游戲相關的各個步驟,并且對于炮塔(棋子)的數量沒有上限要求,從而極大的豐富了類似觸屏類游戲的應用場景。
實例2:
本實例假設為一個音樂控制的應用場景,如圖7所示,包含配備電容式觸摸屏的智能設備501、運行在智能設備上的應用程序502、觸摸屏交互裝置,如旋鈕503,開關504。整個觸摸屏設備展現為一個音響控制臺,本發明所述裝置展現為控制臺上的推動開關和旋鈕,開始音樂控制應用場景時,先對其開關和旋鈕及配套應用程序初始化,其過程包括以下步驟:按著步驟s301:應用程序進入初始化模式。在該模式下,應用程序等待開關和旋鈕依次放置于觸摸屏上,對其進行逐一識別,以供后續場景中持續跟蹤各個裝置。按著步驟s302:用戶啟動一個開關或旋鈕(本例中可以是用戶按下開關上的物理按鍵),并使其進入“報到”模式。在該模式下,開關或旋鈕周期性地不斷向外發出代表“報到”的觸摸指令。按著步驟s303:當處于“報到模式”的開關或旋鈕置于觸摸屏上,其發出的“報到”信號即刻被應用程序所捕獲。應用程序立即在獲得該信息的坐標位置生成一個光斑,該光斑由應用程序及開關或旋鈕雙方協議所預定義的特殊顏色填充,用以跟蹤該裝置,并向裝置傳遞信號。在該步驟中,應用程序通過光斑向開關或者旋鈕發出指令,詢問其編碼(識別是開關還是旋鈕)及朝向(如旋鈕的旋轉角度等)。按著步驟s304:處于“報到模式”的裝置,通過感光接收器接收到光斑所傳遞的“詢問編碼及方位”信號,立即停止循環發送“報到信號”的行為,并發送自身的編碼及朝向信息。按著步驟s305:應用程序接收到開關或者旋鈕發出的編碼及方位信息,將其與對應的光斑坐標綁定,存儲于內存變量中,供后續場景使用。類似地,依次進行步驟s302至步驟s305的操作步驟,從而獲得全部開關和旋鈕及其對應光斑的狀態信息。
在完成初始化過程后,即可開始音樂的應用程序了,為確保時刻跟蹤到每一個開關或旋鈕的狀態,應用程序周期性地進行信息同步,其過程包括以下步驟:按著步驟s401:經過初始化步驟,應用程序已存儲了所有開關或旋鈕及對應的光斑的狀態信息,稱之為狀態隊列。在接下來的周期性同步過程中的每一次循環開始時,應用程序從狀態隊列中選取下一個開關或旋鈕,以對其進行狀態同步與更新。當同步更新至隊列中最后一個開關或旋鈕后,則又跳至隊列第一開關或旋鈕,開始新一輪循環。按著步驟s402:應用程序對選取的開關或旋鈕狀態信息進行判斷,若該裝置標記為“在盤”(即:開關或旋鈕處于觸摸屏之上且保持接觸,其對應光斑位置與裝置保持同步),則應用程序通過光斑向該開關或旋鈕傳遞“詢問方位”的指令。按著步驟s403:應用程序對選取的開關或旋鈕狀態信息進行判斷,若該裝置標記為“已脫離”(如開關被關閉或旋鈕被拿開),則本次循環跳過該開關或者旋鈕。按著步驟s404:應用程序通過光斑發出的“詢問方位”指令時,若開關或旋鈕的物理狀態為保持與觸摸屏接觸良好,且與光斑重疊位置充足,則該指令將被開關或旋鈕接收,經開關或旋鈕內部運算處理單元計算后,通過觸摸端向應用程序反饋其方位信息,如開關調節的大小或者旋鈕旋轉的角度。按著步驟s405:應用程序通過光斑發出的“詢問方位”指令時,若開關或旋鈕因移動太快或被用戶移出觸摸屏,致使開關或旋鈕與光斑位置重疊不夠充分甚至錯位,都會導致該裝置接收不到該指令。此時,開關或者旋鈕對指令無響應。按著步驟s406:針對步驟s404、步驟s405兩種情況下開關或旋鈕的反饋,應用程序將最新狀態信息進行同步與更新。如果是步驟s404所述情況,則應用程序將接收到的開關或旋鈕方位信息更新至隊列中該裝置的方位變量中,并將屏幕中光斑的位置移動至該位置,使其與開關或旋鈕在物理空間上重新保持完全重疊。如果是步驟s405所述情況,應用程序在等待響應的時間片段中得不到開關或旋鈕的應答,則在隊列中將該裝置的狀態從“在盤”變更為“已脫離”,并將對應光斑隱藏。至此,針對一個開關或旋鈕的一次同步更新過程完成。類似地,應用程序針對隊列中的每一個開關或旋鈕循環地進行步驟s401至步驟s406的操作,從而實現對開關或旋鈕及其光斑狀態的同步跟蹤。按著步驟s407:一個已經脫離的開關或旋鈕重新穩定地放置于觸摸屏之上時,應用程序需對其進行識別及歸隊的操作。為了觸發這一過程,開關或旋鈕在某一限定的時間閾值內未接收到來自光斑的任何信息,則進入周期性循環輸出“復位請求”信息的狀態。按著步驟s408:當一個循環發送“復位”信息的開關或旋鈕接觸到觸摸屏時,應用程序接收到該信息,通過“復位”信息中包含的主、副坐標計算出開關或旋鈕的位置,在該坐標位置生成一個對應的光斑,并通過該光斑向開關或旋鈕發送詢問方位信息的指令。按著步驟s409:開關或旋鈕接收到光斑詢問方位的指令,對其進行響應,反饋當前的方位信息。類似地,經過步驟s407至步驟s409,一個脫離的開關或旋鈕即可重新回歸到同步更新的循環隊列當中。通過這樣的步驟,可以實現一些音樂控制場景的應用開發。
總之,本發明通過一種觸摸屏交互的方法及裝置,因其開放性,可編程性,極大的方便了開發者進行新的觸摸屏類應用的開發,同時因為本發明所述的裝置在觸摸屏上的數量又沒有理論上的上限,又進一步的減少了對于應用開發的限制。能夠最大限度上激發開發者的創意,并最終為客戶帶來更好,更真實的應用體驗。