專利名稱:識別三維輸入裝置的佩戴的方法及其設備的制作方法
技術領域:
本發(fā)明涉及一種配置三維(3D)信息輸入裝置的方法、一種重新配置3D信息輸入裝置的方法、一種識別3D信息輸入裝置的佩戴的方法,及其設備。
背景技術:
公開號為1998-36079的韓國專利公開了一種用于輸入數(shù)字數(shù)據(jù)的手套接口裝置,該手套接口裝置包括比較手指上的數(shù)字傳感器和3D傳感器的手套,用于輸出指示手指間的接觸狀態(tài)、手的位置和旋轉的數(shù)字數(shù)據(jù);和處理器,用于基于從手套接收的數(shù)字數(shù)據(jù)檢測包括手指間的接觸狀態(tài)、手的位置和旋轉的信息,并將該檢測的信息提供給主機計算機。
公開號為1998-36077的韓國專利公開了一種數(shù)字手套輸入裝置,該輸入裝置包括放置在手指上的傳感器塊,檢測對于用戶的手指彎曲而產(chǎn)生的手指彎曲信號,并響應于該手指彎曲信號而檢測手指彎曲信息。該數(shù)字手套輸入裝置還包括控制塊,該控制塊基于檢測的手指彎曲信息產(chǎn)生運動控制信號。
此外,公開號為1996-272520的日本專利公開了一種手套指令呼叫發(fā)起裝備,該裝備包括擴張/收縮檢測傳感器和運動識別部分。傳感器被縛在手套的手指部分、手背部分、和手掌部分,并同時輸入各個傳感器的信號。運動識別部分持續(xù)地處理一組輸入信號模式并綜合提供的結果,以便判斷并決定某指令。
如上所述,已有了許多涉及開發(fā)用于使用用戶的手或手指來向計算機輸入信息的裝置的研究。這些裝置中的一些已經(jīng)經(jīng)歷了現(xiàn)實生活應用。
通過普通鍵盤輸入信息的技術水平和方法因人而異。一些用戶可以僅僅使用雙手的兩個食指或者雙手的四或六個手指通過QWERTY鍵盤來輸入信息。熟練于QWERTY鍵盤的其他人可使用雙手的所有手指來輸入信息。
同樣地,使用縛于手上的裝置輸入3D空間的信息的技術水平和方法因人而異。因此,在包括用于雙手的所有手指的十個手指部件的輸入裝置中,一些用戶可能想僅僅使用雙手的四或六個手指部件。一些用戶可能被迫僅僅使用幾個手指部件,這是由于剩下的手指部件的機械故障。
然而,還沒有自適應地自重新配置手指部件的3D輸入裝置的任何公開。從而,需要開發(fā)一種能夠自適應地自重新配置手指部件以使用戶方便性得到改進的3D輸入裝置??赡茉谶@樣的情形下需要自適應的自重新配置,在該情形下,用戶想選擇使用哪些手指部件或者由于其它的手指部件的機械故障而被迫僅僅使用幾個手指部件。
可能在這樣的情形下也需要自適應的自重新配置,在該情形下,用戶當佩戴著3D輸入裝置時想去激活特定的手指部件,以改變用戶的鍵盤的鍵陣列或者改變語言。
目前,沒有能確定用戶是否佩戴手指部件以及確定手指部件的位置的技術的公開。例如,如圖20所示,如果附于手指部件的傳感器X1發(fā)生故障并且不能產(chǎn)生邊沿信號,則手指部件的識別單元不能識別手指裝置。設計該識別單元以順序地識別傳感器X1、X2、X3、和X4。當傳感器X1發(fā)生故障時,其持續(xù)地在環(huán)中循環(huán),因而不能確定用戶是否佩戴手指部件以及手指部件的位置。因此,即使當僅僅一個手指部件發(fā)生故障時,也不能完整地使用3D輸入裝置。
發(fā)明內(nèi)容
本發(fā)明提供了一種配置三維(3D)輸入裝置的方法、一種重新配置3D輸入裝置的方法、及其設備,所述的方法及設備允許改進用戶的方便性。
本發(fā)明還提供了一種用于識別三維(3D)輸入裝置的佩戴的方法及其設備,所述的方法及設備識別用戶是否佩戴著3D輸入裝置并識別該3D輸入裝置的手指部件位置。
根據(jù)本發(fā)明的一方面,提供了一種配置使用手指裝置來執(zhí)行信息輸入操作的三維(3D)信息輸入裝置的方法,該手指裝置由用戶佩戴并檢測用戶的手指運動。所述的方法包括以下步驟識別用戶是否佩戴著手指裝置并且識別手指裝置的手指位置;和基于識別結果自適應地配置3D輸入裝置。
根據(jù)本發(fā)明的另一方面,提供了一種重新配置通過使用手指裝置輸入信息的三維(3D)信息輸入裝置的方法,該手指裝置由用戶佩戴并檢測用戶的手指運動。所述的方法包括通過用戶接口從用戶接收用于3D信息輸入裝置的重新配置的重新設置信息;和基于接收的重新設置信息來重新配置3D輸入裝置的裝置驅動程序。
根據(jù)本發(fā)明的另一方面,提供了一種識別用戶是否佩戴著三維(3D)輸入裝置的方法,該三維輸入裝置包括帶有多個附于其上的用于檢測手指運動的傳感器,并基于由傳感器檢測的手指運動信號來輸入信息的手指裝置。該方法包括(a)獲得用于檢測手指裝置的運動的傳感器信號;(b)確定從獲得的傳感器信號中是否檢測到至少預定數(shù)量的邊沿;和(c)基于步驟(b)的結果來識別用戶是否佩戴著3D輸入裝置。
根據(jù)本發(fā)明的另一方面,提供了一種三維(3D)輸入裝置,該裝置自適應地可配置并使用由用戶佩戴并檢測用戶的手指運動的手指裝置來執(zhí)行信息輸入操作。該3D輸入裝置包括預處理單元,用于識別用戶是否佩戴著手指裝置并識別手指裝置的手指位置;和信號處理單元,其基于預處理單元的識別結果而被自適應地配置以處理從由用戶佩戴的手指裝置輸出的運動信號。
根據(jù)本發(fā)明的另一方面,提供了一種重新配置使用手指裝置執(zhí)行信息輸入操作的三維(3D)輸入裝置的設備,該手指裝置由用戶佩戴并檢測用戶的手指運動。所述的設備包括應用程序,用于通過用戶接口從用戶接收用于3D信息輸入裝置的重新配置的重新設置信息;和裝置驅動程序,其基于從應用程序接收的重新設置信息而被重新配置。
根據(jù)本發(fā)明的另一方面,提供了一種識別用戶是否佩戴著三維(3D)信息輸入裝置的設備,該三維信息輸入裝置使用由用戶佩戴并檢測用戶的手指運動的手指裝置來執(zhí)行信息輸入操作。該設備包括信號獲取單元,用于獲得指示手指裝置的運動的傳感器信號;端口改變識別單元,用于確定從獲得的傳感器信號中是否檢測到至少預定數(shù)量的邊沿;和手指裝置識別單元,用于基于端口改變識別單元的確定結果來識別用戶是否佩戴著手指裝置。
通過參照附圖對本發(fā)明的示例性實施例進行詳細的描述,本發(fā)明的上述和其它的方面和優(yōu)點將會變得清楚,其中圖1A是根據(jù)本發(fā)明的三維(3D)輸入裝置的示意性方框圖;圖1B是附于圖1A的手指裝置上的檢測單元的示圖;圖2是根據(jù)本發(fā)明的初始化圖1A的3D輸入裝置的配置的示意性流程圖;圖3A是圖1A的預處理單元的詳細方框圖;圖3B是示出根據(jù)本發(fā)明的圖3A的預處理單元中的用于初始化圖1A的3D輸入裝置的配置的操作的流程圖;圖4A是圖1A的信號處理單元的詳細方框圖;圖4B是示出根據(jù)本發(fā)明的圖4A的信號處理單元中的用于初始化圖1A的3D信息輸入裝置的配置的操作的流程圖;圖5A是圖1A的裝置驅動程序的詳細方框圖;圖5B是示出根據(jù)本發(fā)明的圖5A的裝置驅動程序中的用于初始化圖1A的3D輸入裝置100的配置的操作的流程圖;圖6A是圖1A的應用程序的詳細方框圖;圖6B是示出根據(jù)本發(fā)明的圖6A的應用程序中的用于初始化圖1A的3D輸入裝置的配置的操作的流程圖;圖7是示出根據(jù)本發(fā)明的圖6A中的用于圖1A的3D輸入裝置的重新配置的應用程序中的操作的流程圖;圖8是從圖6A的應用程序輸出到輸出單元的軟鍵盤的示例性示圖;圖9是圖6A的應用程序中的用于重新配置圖1A的3D輸入裝置的用戶接口的示例性示圖;圖10是圖1A中的預處理單元中的操作的詳細流程圖;圖11是圖10中的傳感器信號獲取步驟的詳細流程圖;圖12是圖10中的計算占空比和識別用戶是否佩戴手指部件的步驟的詳細流程圖;圖13是圖10中的發(fā)送信號值的步驟的詳細流程圖;圖14是圖10中的預處理程序的算法的初期步驟的詳細流程圖;圖15A是圖11中的用于獲得傳感器信號的算法的詳細流程圖;圖15B是用于解釋如何獲得圖15A中的Current_Input和Last_Input值的概念圖;
圖15C是用于解釋如何獲得圖15A中的指示當前和先前使用的值之間的變化的VXOR的概念圖;圖15D是用于解釋如何獲得圖15A中的Port_Status的概念圖;圖15E示出了在圖15A中的傳感器信號獲取之后獲得的數(shù)據(jù)表;圖16A是圖12中的識別用戶是否佩戴著3D輸入裝置的程序的算法的詳細流程圖;圖16B是用于解釋圖16A中的Port_Status和Bit-Mask的AND_bit運算的概念圖;圖16C是用于解釋如何獲得圖16A中的Init_Edge_Status的概念圖;圖16D示出了在圖16A中的Init_Edge_Status和Time[]獲取之后獲得的數(shù)據(jù)表;圖17是圖12中的計算占空比的算法的詳細流程圖;圖18A是圖13中的發(fā)送信號值的算法的詳細流程圖;圖18B是用于解釋如何獲得圖18A中的No_Exist_Signals的概念圖;圖19示出了當附在手指部件上的所有傳感器X1、X2、X3、和X4都正常操作時的傳感器信號;和圖20示出了當傳感器X1不正常操作時的傳感器輸出信號。
具體實施方式
現(xiàn)在將參照附圖對本發(fā)明進行更完全地描述,其中,顯示了本發(fā)明的優(yōu)選實施例。
圖1A示出根據(jù)本發(fā)明的三維(3D)輸入裝置100的例子。
3D輸入裝置100包括信息輸入手指裝置110(在下文中被稱為手指裝置)、信號處理裝置120、和計算機150。圖1顯示對于信息輸入所必需的完整的配置。然而,在下文中,當3D輸入裝置100的配置涉及3D輸入裝置100的初始化的情況,即,自適應地配置或重新配置3D輸入裝置100的操作時,其將被描述。
手指裝置110包括第一傳感器(X1)111、第二傳感器(X2)112、第三傳感器(X3)113、和第四傳感器(X4)114,作為用于檢測手指運動的檢測器件。在手指裝置110的基座上,存在連接單元115,用于連接手指裝置110與信號處理裝置120。
如圖1B所示,傳感器111、112、113、或114每個可包括加速度傳感器116和角度傳感器117。從加速度傳感器116輸出的信號,即,關于手指運動加速度的檢測信號可被用作時鐘信號,即,信息輸入信號。從角度傳感器117輸出的信號,即,關于手指的第一和第二關節(jié)間的角度的檢測信號可被用作信息選擇信號。
然而,傳感器不局限于上述的那些。本發(fā)明可包括任何其它種類的能夠檢測手指的運動以輸出用于信息輸入或信息選擇的信號的傳感器。例如,本發(fā)明可以使用輸出數(shù)字信號的傳感器,比如慣性傳感器;或者輸出模擬信號的傳感器,比如電位計、巨磁阻(GMR)傳感器、光學傳感器、開/關開關、或壓力傳感器。
信號處理裝置120接收并處理從手指裝置110的傳感器111、112、113、和114輸出的信號。信號處理裝置120可被安裝在用戶的手背上。信號處理裝置120包括預處理單元130和信號處理單元140。預處理單元130以有線或無線方式通過線纜或空氣經(jīng)由連接單元115接收從手指裝置110輸出的信號,并識別由用戶佩戴的手指裝置110。信號處理單元140接收從預處理單元130輸出的手指裝置識別信息,基于該手指裝置識別信息自配置信號處理裝置120,基于選擇的算法處理從傳感器111、112、113、和114輸出的手指運動信息,從該手指運動信息提取運動特征信息,并將該運動特征信息通過諸如通用串行總線(USB)的連接發(fā)送到計算機150的裝置驅動程序160。這里,信號處理單元140的自配置指的是自配置固件,即,算法。例如,如果手指裝置識別信息是用于三個手指的,則信號處理單元140自配置算法以處理從三個傳感器輸出的三個信號。
計算機150包括裝置驅動程序160和應用程序170。裝置驅動程序160基于基本設置信息和從信號處理單元140接收的運動特征信息來配置其自身,然后基于從應用程序170接收的重新設置信息來重新配置其自身?;驹O置信息指的是包括使用的語言或鍵盤的鍵陣列等的輸入情況信息。應用程序170接收來自裝置驅動程序160的基本設置信息和運動特征信息,基于接收的基本設置信息將軟鍵盤發(fā)送到輸出裝置(未顯示),解釋接收的運動特征信息,并基于該解釋的運動特征信息將輸入信息項輸出到輸出裝置(未顯示)或另一應用程序(未顯示)。此外,應用程序170允許用戶通過用戶接口來重新配置3D輸入裝置100。
圖2是根據(jù)本發(fā)明的初始化3D輸入裝置100的配置的示意性流程圖200。
在第一步驟S210中,用戶佩戴手指裝置110。在步驟S220中,從包括在手指裝置110中的傳感器111、112、113、和114輸出傳感器信號。預處理單元130接收傳感器信號。
預處理單元130基于接收的傳感器信號識別用戶是否佩戴著手指裝置110并識別手指裝置110的位置(步驟S230),并且將手指裝置識別信息和從傳感器111、112、113、和114輸出的手指運動信息一起發(fā)送到信號處理單元140。
在步驟S240中,信號處理單元140基于手指裝置識別信息來配置固件,處理手指運動信息,并將運動特征信息發(fā)送到裝置驅動程序160。
裝置驅動程序160基于運動特征信息和基本設置信息配置其自身(步驟S250)。
應用程序170根據(jù)裝置驅動程序160的配置信息輸出在其上手指的位置被顯示到輸出裝置(未顯示)的軟鍵盤(步驟S260),解釋手指裝置110的運動特征信息,并執(zhí)行信息輸入過程(步驟S270)。
在下文中,將參照圖3A到圖9來描述圖1A的每個部件以及配置的初始化操作。
圖3A是圖1A的預處理單元130的詳細方框圖,圖3B是根據(jù)本發(fā)明的圖3A的預處理單元130中的用于配置3D輸入裝置的初始化操作的流程圖。參照圖3A和3B,將描述預處理單元130的配置和操作。
圖3A的預處理單元130包括第一端口131、第二端口132、第三端口133、和第四端口134,用于從手指裝置110接收檢測信息;端口改變識別與存儲單元135,用于識別每個端口的先前時期和當前時期之間的改變;輸出值計算單元136,用于使用存儲在端口改變識別與存儲單元135中的值來計算輸出值;和輸出值發(fā)送單元137,用于將計算的輸出發(fā)送到信號處理單元140。
預處理單元130初始化硬件和軟件(步驟S310)。
其后,預處理單元130從手指裝置110的第一傳感器111、第二傳感器112、第三傳感器113、和第四傳感器114接收傳感器信號(步驟S320)。第一端口131、第二端口132、第三端口133、和第四端口134分別檢測傳感器信號。傳感器信號包括用于信息項選擇的信號和用于信息輸入的信號。信息項選擇指的是在多個信息項之中選擇信息項,例如,在多個字符鍵之中選擇字符鍵。信息輸入指的是點擊選擇的字符鍵。
在步驟S330中,使用接收的傳感器信號識別用戶是否佩戴著手指裝置110以及手指裝置110的手指位置。被用于識別手指裝置110的傳感器信號可以是用于信息項選擇的信號或者是用于信息輸入的信號。然而,在下文中,傳感器信號是指從加速度傳感器116輸出的信息輸入信號。此外,手指裝置識別信息指的是關于傳感器使用和手指位置的傳感器信息。步驟S330可由將在隨后描述的端口改變識別與存儲單元135和輸出計算單元136來執(zhí)行。
緊接著,輸出發(fā)送單元137將手指裝置識別信息和傳感器信號發(fā)送到信號處理單元140(步驟S340)。手指裝置識別信息指的是由預處理單元130識別的信息,傳感器輸出信號指的是手指裝置110的手指運動信息。
圖4A是圖1A的信號處理單元140的詳細方框圖,圖4B是根據(jù)本發(fā)明的圖4A的信號處理單元140中的用于初始化3D信息輸入裝置的配置的操作的流程圖。參照圖4A和4B,將描述信號處理裝置120的信號處理單元140的配置和操作。
圖4A的信號處理裝置140包括手指裝置自配置單元141、和手指運動信息處理單元142。手指裝置自配置單元141從預處理單元130接收手指運動信息和手指裝置識別信息,并基于該接收的手指裝置識別信息來自配置手指裝置110。手指運動信息處理單元142通過基于自配置的手指裝置110的算法而處理接收的手指運動信息來提取運動特征信息。
在下文中,將參照圖4B描述信號處理單元140的操作。
在步驟S410中,信號處理單元140初始化其硬件和軟件。在手指裝置自配置單元141從預處理單元130接收手指裝置識別信息和傳感器信號(步驟S420)之后,手指裝置自配置單元141去激活關于未佩戴的傳感器的算法,并隨后基于接收的手指裝置識別信息來配置固件(步驟S430)。例如,如果手指裝置自配置單元141接收到指示用戶佩戴著第二112、第三113、和第四114傳感器的手指裝置識別信息,則手指裝置自配置單元141設置用于處理從第二112、第三113、和第四114傳感器接收的信號的算法,并去激活其它算法。
在步驟S440中,手指運動信息處理單元142基于配置的固件對從佩戴的傳感器輸出的信號執(zhí)行信號處理算法。即,手指運動信息處理單元142將接收的傳感器信號輸入到關于第二112、第三113、和第四114傳感器的算法,計算通過手指裝置110的操作而獲得的選擇信息,并確定手指裝置110的操作是否對應于信息輸入。例如,手指運動信息處理單元142計算手指的位置以確定哪些信息項被對應的手指選擇,確定對應于手指的被計算出的位置的鍵,或者通過估計用于信息輸入的信號值是否已越過了預定的閾值來確定手指裝置110的操作是否對應于信息輸入。選擇信息的計算結果和對輸入操作的確定結果成為運動特征信息。
其后,在步驟S450中,手指運動信息處理單元142將運動特征信息以及先前接收的手指裝置識別信息發(fā)送到計算機150的裝置驅動程序160。信號處理單元140可使用USB來將運動特征信息發(fā)送到計算機150的裝置驅動程序160。
圖5A是圖1A的裝置驅動程序160的詳細方框圖,圖5B是根據(jù)本發(fā)明的圖5A的裝置驅動程序160中的用于初始化3D輸入裝置100的配置的操作的流程圖。參照圖5A和5B,將描述計算機150的裝置驅動程序160的配置和操作。
圖5A的裝置驅動程序160包括裝置驅動程序自配置/重新配置單元161、和設置信息與運動特征信息傳遞單元162。裝置驅動程序自配置/重新配置單元161從信號處理單元140接收手指裝置識別信息和運動特征信息,并基于該接收的手指裝置識別信息和基本設置信息來配置裝置驅動程序160。設置信息與運動特征信息傳遞單元162將由裝置驅動程序配置/重新配置單元161設定的設置信息以及從信號處理單元140接收的運動特征信息傳遞到應用程序170。
在下文中,將參照圖5B描述裝置驅動程序160的操作。
在第一步驟S510中,裝置驅動程序160初始化其自身和應用程序170。
緊接著,裝置驅動程序配置/重新配置單元161從信號處理單元140接收手指裝置識別信息和運動特征信息(步驟S520)。在步驟S530中,裝置驅動程序配置/重新配置單元161基于該接收的手指裝置識別信息來配置裝置驅動程序160。這里,預設的缺省值被用于除接收的手指裝置識別信息之外的其它選擇信息。其它選擇信息指的是,例如,關于用于信息輸入的一種鍵盤或語言的輸入情況信息。
如果存在來自信號處理裝置120的調(diào)用(步驟S540),則裝置驅動程序自配置/重新配置單元161從信號處理裝置120獲得手指裝置識別信息(步驟S550),并基于獲得的手指裝置識別信息來重新配置裝置驅動程序160。例如,如果用戶在四個手指上佩戴著四個傳感器并且將其中的一個脫下,則裝置驅動程序配置/重新配置單元161從信號處理裝置120接收新的手指裝置識別信息,并基于該接收的手指裝置識別信息來重新配置裝置驅動程序160。
如果在步驟S560中從應用程序170接收到調(diào)用,則裝置驅動程序配置/重新配置單元161從應用程序170獲得基本設置信息(步驟S570),并基于該獲得的設置信息來重新配置裝置驅動程序160。首先,裝置驅動程序配置/重新配置單元161通過用于輸入情況和用戶語言的缺省值來配置裝置驅動程序160。其后,用戶可通過由應用程序170提供的用戶接口(未顯示)來改變輸入情況或用戶語言。在這種情況下,裝置驅動程序配置/重新配置單元161從應用程序170獲得設置信息以自配置裝置驅動程序160。
在步驟S580中,設置信息與運動特征信息傳遞單元162將接收的運動特征信息和設置信息傳遞到應用程序170。
圖6A是圖1A的應用程序170的詳細方框圖,圖6B是根據(jù)本發(fā)明的圖6A的應用程序170中的用于初始化3D輸入裝置的配置的操作的流程圖。參照圖6A和6B,將描述應用程序170的配置和操作。
圖6A的應用程序170包括軟鍵盤顯示單元171,用于從裝置驅動程序160接收運動特征信息和設置信息,并在輸出裝置180上顯示軟鍵盤;運動特征信息解釋單元172,用于解釋接收的運動特征信息;信息輸入單元173,用于基于解釋的運動特征信息來輸入信息;和用戶設置單元174,用來允許用戶重新配置圖1A的3D輸入裝置。
在下文中,將參照圖6B描述應用程序170中的操作。
軟鍵盤顯示單元171從裝置驅動程序160接收運動特征信息和設置信息(步驟S610)。
在步驟S620中,軟鍵盤顯示單元171基于接收的設置信息在顯示手指位置的軟鍵盤上顯示手指位置,并將該軟鍵盤發(fā)送到輸出裝置180(步驟S620)。圖8顯示被顯示在輸出裝置180上的軟鍵盤的例子。如圖8所示,所采用的語言是英語并且輸入情況是蜂窩電話類型。還知道的是三個傳感器被連接。
在步驟S630中,運動特征信息解釋單元172解釋接收的運動特征信息。如先前所述,運動特征信息包括選擇信息的計算結果和是否存在任何輸入操作的確定結果。運動特征解釋單元172解釋計算結果并確定與選擇的信息相對應的鍵。此外,運動特征解釋單元172解釋是否存在任何輸入操作的確定結果,并決定是否將確定結果作為信息輸入來處理。
緊接著,在步驟S640中,信息輸入單元173接受與運動特征信息解釋單元172的解釋的結果相對應的信息。
圖7是根據(jù)本發(fā)明的圖6A中的用于圖1A的3D輸入裝置的重新配置的應用程序170中的操作的流程圖700??捎蓱贸绦?70的用戶設置單元174執(zhí)行3D信息輸入裝置的重新配置。
在第一步驟S710中,應用程序170接收用于3D輸入裝置110的手動設置的用戶請求??捎捎脩羰褂脠D9所示的用戶接口來執(zhí)行該手動設置。用戶接口可以以作為一般鍵盤注冊信息的鍵盤注冊信息910的形式被包括在由Microsoft Windows提供的控制板900中。
用戶請求對特定傳感器的使用的設置改變允許或取消(步驟S720),在步驟S730中選擇輸入情況,或者在手動設置菜單中選擇用戶語言(步驟S740)。如圖9所示,用戶接口允許用戶選擇鍵盤類型、鍵陣列、使用的手指、和用戶語言。
當應用程序170接收到這樣的改變的請求時,其將設置信息發(fā)送到裝置驅動程序160(步驟S750),然后裝置驅動程序160基于接收到的設置信息重新配置其自身。
到目前為止描述了用于初始化3D輸入裝置,特別是用于基于手指裝置識別信息來識別手指裝置和配置3D輸入裝置的部件及其操作。以下將描述識別手指裝置110的預處理單元130的詳細操作。
圖10是圖1A中的預處理單元130中的操作的示意流程圖1000。
預處理單元130初始化系統(tǒng)(步驟S1010)并從手指裝置110獲取傳感器信號(步驟S1020)。將參照圖11詳細地描述用于接收傳感器信號的操作。
預處理單元130計算接收到的信號的占空比(步驟S1030),然后基于接收到的傳感器信號識別用戶是否佩戴著手指裝置(步驟S1040)。將參照圖12詳細地描述用于計算占空比和識別用戶是否佩戴著手指裝置的操作。
預處理單元130將具有計算出的占空比的信號值和在其中存儲有手指裝置識別信息的標識因子發(fā)送到信號處理單元140(步驟S1050)。將參照圖13詳細地描述用于將該信號值和該標識因子發(fā)送到信號處理單元140的操作。
以下將參照圖11詳細地描述從手指裝置110獲取傳感器信號的操作。端口的數(shù)量可以和傳感器信號的數(shù)量一樣多。在本描述中,每個點值可以被用作經(jīng)過相應端口的每個傳感器信號。
預處理單元130接收從手指裝置110的傳感器111、112、113、和114輸出的當前端口值(步驟S1110)。當前端口值在預定時間量之后被存儲為先前端口值。
接著,預處理單元130確定在當前端口值和先前端口值之間是否存在任何變化(步驟S1120)。端口值的變化表示在經(jīng)過相應端口的信號中邊沿被觸發(fā)。
接著,預處理單元130將當前端口值和關于具有端口值變化的端口的信息存儲在端口狀態(tài)變量中(步驟S1130)。
預處理單元130將在端口值和端口信息被寫入端口狀態(tài)變量的當前時間的定時器值存儲在事件時間變量中(步驟S1140)。即,當前定時器值指示邊沿被觸發(fā)的時間。
圖12是圖10中的步驟1030和1040的詳細流程圖。
在第一步驟S1210中,預處理單元130確定是否能夠從每個傳感器獲得三個邊沿觸發(fā)時間。邊沿觸發(fā)時間被存儲在事件時間變量中。當用于每個傳感器的三個事件時間變量被獲得時,這三個事件時間變量被存儲在time[0]、time[1]、和time[2]中。
如果不能夠從每個傳感器提取三個邊沿觸發(fā)時間,那么錯誤值被存儲在輸出變量中(步驟S1240)。具體地講,不能提取三個邊沿觸發(fā)時間的事實表明在預定的時間周期邊沿觸發(fā)小于三次。這指示傳感器沒有正常地操作。因此,錯誤被寫到輸出變量中。
如果能夠提取三個邊沿觸發(fā)時間,那么預處理單元130存儲用于每個傳感器的初始邊沿狀態(tài)(步驟S1220)。
在步驟S1230中,預處理單元130基于事件時間變量計算比例值,并且將計算出的比例值存儲到輸出變量中。
在步驟S1250中,如果存儲的比例值小于最小閾值,那么預處理單元130將最小閾值存儲在輸出變量中。在步驟S1260中,如果存儲的比例值大于最大閾值,那么預處理單元130將最大閾值存儲在輸出變量中。
圖13是圖10中的步驟1050的詳細流程圖。
在第一步驟S1310中,預處理單元130檢驗具有錯誤值的輸出變量,并且將該值存儲在無信號變量中。無信號變量包括指示傳感器沒有正常輸出傳感器信號的信息。
在步驟S1320中,預處理單元130將輸出變量和包括在無信號變量中的值發(fā)送到信號處理單元140。
圖14至圖20顯示了在預處理單元130中使用的用于識別用戶是否佩戴著手指裝置并用于識別手指裝置的手指位置的詳細算法。
參照圖14,預處理單元130初始化系統(tǒng)(步驟S1401),并且如果在步驟S1402中發(fā)生中斷,則進行到‘A’。
參照圖15A,預處理單元130初始化變量(步驟S1501),更具體地講,將Transition_Counter和Input_Counter的值設置為‘0’。
接著,預處理單元130將當前端口值輸入到Current_Input,并且將先前端口值輸入到Last_Input(步驟S1502)。預處理單元130順序地排列在當前時間從N個端口捕捉的值,并且將它們存儲在Current_Input中。這里,N指的是戴在手指上的傳感器的數(shù)量或點擊信號的數(shù)量。在本實施例中,N為4。例如,如圖15A所示,如果從第一傳感器X1、第二傳感器X2、第三傳感器X3和第四傳感器X4輸出的當前端口值對應于1、0、1、0,則預處理單元130將00000101存儲在Current_Input中。預處理單元130然后將Last_Input設置為Current_Input,并且初始化定時器。
接著,在步驟S1503中,預處理單元130確定Transition_Counter中的值是否小于閾值Ntc。閾值Ntc可以是60,其指示步驟S1504至步驟S1510被重復60次。如果Transition_Counter值小于閾值Ntc,那么預處理單元130進行到步驟S1504。否則,預處理單元130進行到B。
在步驟S1504中,預處理單元130捕捉當前端口值,并且將捕捉的當前端口值存儲在Current_Input中。
在步驟S1505中,預處理單元130執(zhí)行信號組合,以確定在當前端口值和先前端口值之間是否存在任何變化。預處理單元130存儲Last_Input值和Current_Input值的異或運算的結果。在圖15C中示出了變量VXOR。假設Current_Input和Last_Input分別存儲值00000111和00000101。在Current_Input和Last_Input值之間的異或運算之后,得知第二傳感器X2的位具有變化。因為‘0’的運算結果指示沒有位變化,‘1’指示位變化。因此值00000010被存儲在VXOR中。
接著,在步驟S1506中,預處理單元130在步驟S1506中確定VXOR值是否為‘0’。
如果VXOR值為‘0’,那么在當前端口值和先前端口值之間沒有變化,指示在任何傳感器信號中沒有任何邊沿(上升沿或下降沿)被觸發(fā)。因此,預處理單元130進行到步驟S1510,將Last_Input設置為Current_Input,然后進行到步驟S1503。
如果VXOR值不為‘0’,那么預處理單元130通過以下步驟處理其變量將Transition_Counter值增加1,將VXOR值加給左移了N位的Current_Input值的值,并且將相加的結果存儲在Port_Status[Input_Counter]中(步驟S1507)。如圖15D所示,Current_Input值00000111左移4位的結果是01110000。如果VXOR值00000010加到左移的Current_Input值,那么01110010被存儲在Port_Status[Input_Counter]中。8位Port_Status的頭4位指示當前傳感器值,剩余的4位指示邊沿觸發(fā)。在圖15D中,Port_Status值指示當前傳感器值[X1X2 X3 X4]是
,并且邊沿觸發(fā)的傳感器是X2。
在步驟S1507中,預處理單元130在步驟S1507中將當前定時器值存儲在Event_Time[Input_Counter]中。
在步驟S1508中,預處理單元130將Input_Counter增加1。
在步驟S1509中,預處理單元130確定Input_Counter值是否大于閾值Nic。閾值Nic可以被設置為23。
如果Input_Counter值大于閾值Nic,那么預處理單元130進行到B。如果Input_Counter值小于或等于閾值Nic,那么預處理單元130在步驟S1510中將Current_Input值存儲在Last_Input中,并進行到步驟S1503。
根據(jù)圖15A中所示的運算的結果,獲得了圖15E中的數(shù)據(jù)表,具有以下信息Input_Counter;Current_Input,其存儲當前端口值;Last_Input,其存儲先前端口值;VXOR,指示當前端口值或先前端口值的變化;Transition_Counter;Port_Status,指示當前端口值和關于變化劇烈(change-stricken),即邊沿觸發(fā)的端口的信息;和Event_Time,表示邊沿被觸發(fā)的時間。例如,在圖15E中,在Transition_Counter為12的當前時間,當前端口值為1010,變化劇烈的傳感器是第三傳感器,并且當前定時器值是450。
以下將參照圖16A來描述在B之后的操作。
B之后的操作包括基于圖15E的數(shù)據(jù)識別沒有正常操作的傳感器和獲得預定數(shù)量的邊沿觸發(fā)時間,即用于正常操作的傳感器的定時器值。
在步驟S1601中,預處理單元130將Bit_Mask設置為00000001,并且將count設置為‘0’。
在步驟S1602中,預處理單元130確定count值是否小于N(步驟S1602)。步驟S1602用于確定以下的操作是否被執(zhí)行與戴在手指上的傳感器的數(shù)量一樣多的次數(shù)。
如果count值小于N,那么預處理單元130進行到步驟S1603,否則,預處理單元130進行到F。
在步驟S1603和S1604中,預處理單元130將Edge_Counter設置為‘0’,并且將Port_Status設置為‘0’。
在步驟S1605中,預處理單元130確定Port_Status_Counter值是否小于值Input_Counter+1。如果Port_Status_Counter值不小于值Input_Counter+1,那么預處理單元130進行到‘D’。在步驟S1612中,Port_Status_Counter值順序地加1。Input_Counter可存儲值23。Port_Status_Counter值不小于值Input_Counter+1表示Edge_Counter值可小于2(步驟S1611)。并且,只有Port_Status_Counter值增加1(步驟S1612),這導致Input_Counter值的超出。即,在預定量的時間內(nèi),在從傳感器輸出的信號中不多于兩個邊沿已經(jīng)被觸發(fā),這指示該傳感器沒有正常操作。因此,預處理單元130進行到‘D’,并將錯誤值存儲在輸出變量中。
如果Port_Status_Counter值小于值Input_Counter+1,那么預處理單元130在步驟S1606中確定Port_Status[Port_Status_Counter]和Bit_Mask的AND_bit運算的結果是否是為‘0’。AND_bit表示與運算。參照圖16B,具有11100001的Port_Status[3](參照圖15E中的數(shù)據(jù)表)和具有00000001的Bit_Mask的AND_bit運算的結果為‘1’。由于該結果不是‘0’,所以預處理單元130進行到步驟S1607。
預處理單元130然后在步驟S1607中將Event_Time[Port_Status_Counter]值存儲在Time[Edge_Counter]中,并且在步驟S1608中確定Edge_Counter值否是為‘0’。
除非Edge_Counter值為‘0’,預處理單元130才在步驟S1610中將Edge_Counter值加1。如果Edge_Counter值為‘0’,那么在步驟S1609中,預處理單元130執(zhí)行Port_Status[Port_Status_Counter]和左移了N位的Bit_Mask的AND_bit運算,將AND_bit運算結果存儲在Init_Edge_Status中。例如,如圖16C所示,具有1110xxxx的Port_Status和左移了N位的Bit_Mask00010000的AND_bit運算的結果為‘0’。預處理單元130將‘0’存儲在Init_Edge_Status中。
在步驟S1610中,預處理單元將Edge_Counter值加1。
接著,在步驟S1611中,預處理單元130確定Edge_Counter值是否大于‘2’,‘2’是用于計算傳感器信號的占空比的滿足值。
如果Edge_Counter值大于‘2’,那么預處理單元130進行到‘C’。如果Edge_Counter值不大于‘2’,那么預處理單元130在步驟S1612中將Port_Status_Counter加1,并且進行到步驟S1605。
根據(jù)圖16A的算法運算圖15E的數(shù)據(jù)表中的值生成圖16D的數(shù)據(jù)表中的值。每個傳感器獲得Init_Edge_Status、time[0]、time[1]、和time[2]的值。例如,在第一傳感器X1的情況下,如圖15E所示,當?shù)谝粋鞲衅鱔1的端口值為‘1’時,相應的Transition_Counter值為‘3’、‘7’、和‘11’,并且相應的Event_Time值為130、280、和430。在圖16D中,基于Port_Status[3]的當前端口信號,第一傳感器X1的Init_Edge_Status值為‘0’。該信息存儲在圖16D中。但是,注意到,圖16D顯示了當所有傳感器X1、X2、X3、和X4都正常操作時的信息。
以下將參照圖17來描述在‘C’之后的操作。
在第一步驟S1701中,預處理單元130確定Init_Edge_Status值是否為‘0’(步驟S1701)。反映該確定結果,傳感器的占空比被計算。如果Init_Edge_Status值不為‘0’,那么預處理單元130將Scale_Factor*(Time[1]-Time[0])/(Time[2]-Time[0])存儲在輸出變量Output[count]中(步驟S1702)。如果Init_Edge_Status值為‘0’,那么預處理單元130將Scale_Factor*(Time[2]-Time[1])/(Time[2]-Time[0])存儲在輸出變量Output[count]中(步驟S1703)。Scale_Factor用于信號傳輸。例如,如果計算的輸出值以8位信號被發(fā)送,那么輸出變量值可以在0-225的范圍中。因此,例如,Scale_Factor可以是225。
在步驟S1704中,預處理單元130確定輸出變量Output[count]值是否小于Min_Value,例如‘1’。如果小于,那么預處理單元130將Min_Value存儲在輸出變量Output[count]中(步驟S1705),并進行到步驟S1709。
否則,預處理單元130確定輸出變量Output[count]的值是否大于Max_Value,例如‘225’(步驟S1706)。如果大于,那么預處理單元130將Value_Something_Wrong存儲在輸出變量Output[count]中(步驟S1707),并進行到步驟S1709。
在D中,預處理單元130在步驟S1708中將Value_Something_Wrong存儲在輸出變量Output[count]中,并進行到步驟S1709。由于根據(jù)占空比計算存儲的輸出變量值可從Min_Value‘1’到Max_Value‘225’,所以Value_Something_Wrong可以是不用作輸出變量值的‘0’。
在步驟S1709中,預處理單元130將Bit_Mask左移1位,并將該結果存儲在Bit_Mask中。
接著,在步驟S1710中,預處理單元130將count加1,并進行到‘E’。
以下將參照圖18A來描述F之后的操作。
在步驟S1801中,預處理單元130將Bit_Mask值設置為00000001,將count值設置為0,并且將No_Exist_Signals值設置為00000000。
接著,在步驟S1802中,預處理單元130確定count值是否小于N。count值大于或等于N表示預處理單元130中的所有操作已經(jīng)完成。在這種情況下,預處理單元130進行到步驟S1807。
如果count值小于N,那么在步驟S1803中,預處理單元130確定Output[count]是否具有Value_Something_Wrong。
如果Output[count]不具有Value_Something_Wrong,那么預處理單元130進行到步驟S1805并將count值加1。
如果Output[count]具有Value_Something_Wrong,那么在步驟S1804中,預處理單元130將No_Exist_Signals(指示現(xiàn)存信號的數(shù)量的變量)和Bit_Mask值的求和結果存儲在No_Exist_Signals中。例如,如圖18B所示,如果具有00000001的Bit_Mask加給具有00000000的No_Exist_Signals,那么求和結果00000001被存儲在No_Exist_Signals中。具有00000001的No_Exist_Signals指示第一傳感器X1沒有正常操作或者沒有被用戶佩戴。
接著,在步驟S1806中,預處理單元130將Bit_Mask左移1位,將該結果存儲在Bit_Mask中,并且進行到步驟S1802。
在步驟S1807中,預處理單元130將Output[1],...,Output[2]、No_Exist_Signals發(fā)送到信號處理單元140。例如,Output[1]、Output[2]和No_Exist_Signals=[00001100]被輸出,那么第一傳感器X1和第二傳感器X2沒有被用戶佩戴,第三傳感器X3和第四傳感器X4正被用戶佩戴。
因此,預處理單元130可以識別正被用戶佩戴的傳感器和沒有被用戶佩戴的傳感器。
產(chǎn)業(yè)上的可利用性根據(jù)本發(fā)明,可以通過自動或手動配置3D輸入裝置來實現(xiàn)用戶友好的3D輸入裝置。
權利要求
1.一種識別用戶是否佩戴著三維輸入裝置的方法,該三維輸入裝置包括具有多個附于其上的傳感器的手指裝置,該手指裝置檢測手指運動并且基于由傳感器檢測的手指運動信號來輸入信息,該方法包括(a)獲得用于檢測手指裝置的運動的傳感器信號;(b)確定從獲得的傳感器信號中是否檢測到至少預定數(shù)量的邊沿;和(c)基于步驟(b)的結果來識別用戶是否佩戴著三維輸入裝置。
2.如權利要求
1所述的方法,其中,步驟(a)還包括(a1)存儲關于經(jīng)歷了當前傳感器信號值與先前傳感器信號值之間的改變的傳感器的信息和在該改變發(fā)生的時間的定時器值。
3.如權利要求
2所述的方法,其中,步驟(b)還包括確定是否檢測到至少預定數(shù)量的定時器值。
4.如權利要求
3所述的方法,其中,步驟(c)還包括如果檢測到至少預定數(shù)量的定時器值,則識別出用戶正佩戴著手指裝置,該手指裝置具有附于其上的輸出獲得的傳感器信號的對應的傳感器;和除非檢測到預定數(shù)量的定時器值,否則識別出用戶沒有佩戴著具有輸出獲得的傳感器信號的對應的傳感器的手指裝置。
5.如權利要求
4所述的方法,其中,該方法還包括(d)如果識別出用戶沒有佩戴著手指裝置,則輸出指示錯誤值的信息;和(e)如果識別出用戶正佩戴著手指裝置,則通過使用定時器值來計算占空比,將計算出的占空比按比例增減預定的值,并輸出該按比例被增減的值。
6.一種用于識別用戶是否佩戴著三維信息輸入裝置的設備,該三維信息輸入裝置使用由用戶佩戴并檢測用戶的手指運動的手指裝置來執(zhí)行信息輸入操作,該設備包括信號獲取單元,其獲取指示手指裝置的運動的傳感器信號;端口變化識別單元,其確定是否至少預定數(shù)量的邊沿從獲取的傳感器信號被檢測到;和手指裝置識別單元,其基于端口變化識別單元的確定結果來識別用戶是否佩戴著手指裝置。
7.如權利要求
6所述的設備,其中,信號獲取單元包括端口狀態(tài)存儲單元,其存儲關于帶有當前傳感器信號值和先前傳感器信號值之間的變化的傳感器的信息;和事件時間存儲單元,其存儲在當前傳感器信號值和先前傳感器信號值之間的變化的時間設置的定時器值。
8.如權利要求
7所述的設備,其中,端口變化識別單元確定存儲在事件時間存儲單元中的至少預定數(shù)量的定時器值是否被檢測到。
9.如權利要求
8所述的設備,其中,如果至少預定數(shù)量的定時器值被檢測到,那么手指裝置識別單元識別出用戶佩戴著手指裝置,或者如果至少預定數(shù)量的定時器值沒有全部被檢測到,那么手指裝置識別單元識別出用戶沒有佩戴手指裝置。
專利摘要
提供了一種用于識別三維(3D)輸入裝置的佩戴的方法及其設備。該配置使用由用戶佩戴并檢測用戶的手指運動的手指裝置來執(zhí)行信息輸入操作的三維(3D)輸入裝置的方法包括識別用戶是否佩戴著手指裝置,并且識別該裝置的手指位置;和基于識別結果自適應地配置該3D輸入裝置。因此,可以通過自動或手動地配置該3D輸入裝置來實現(xiàn)用戶友好的3D輸入裝置。
文檔編號G06F3/033GKCN1975636SQ200610146732
公開日2007年6月6日 申請日期2003年12月26日
發(fā)明者李相國, 樸太植, 蘇秉石, 金成喆 申請人:三星電子株式會社導出引文BiBTeX, EndNote, RefMan