配置三维输入装置的方法、重新配置三维输入装置的方法、识别三维输入装置的佩戴的方...的制作方法

文档序号:63803阅读:327来源:国知局
专利名称:配置三维输入装置的方法、重新配置三维输入装置的方法、识别三维输入装置的佩戴的方 ...的制作方法
技术领域
本发明涉及一种配置三维(3D)信息输入装置的方法、一种重新配置3D信息输入装置的方法、一种识别3D信息输入装置的佩戴的方法,及其设备。
背景技术
公开号为1998-36079的韩国专利公开了一种用于输入数字数据的手套接口装置,该手套接口装置包括比较手指上的数字传感器和3D传感器的手套,用于输出指示手指间的接触状态、手的位置和旋转的数字数据;和处理器,用于基于从手套接收的数字数据检测包括手指间的接触状态、手的位置和旋转的信息,并将该检测的信息提供给主机计算机。
公开号为1998-36077的韩国专利公开了一种数字手套输入装置,该输入装置包括放置在手指上的传感器块,检测对于用户的手指弯曲而产生的手指弯曲信号,并响应于该手指弯曲信号而检测手指弯曲信息。该数字手套输入装置还包括控制块,该控制块基于检测的手指弯曲信息产生运动控制信号。
此外,公开号为1996-272520的日本专利公开了一种手套指令呼叫发起装备,该装备包括扩张/收缩检测传感器和运动识别部分。传感器被缚在手套的手指部分、手背部分、和手掌部分,并同时输入各个传感器的信号。运动识别部分持续地处理一组输入信号模式并综合提供的结果,以便判断并决定某指令。
如上所述,已有了许多涉及开发用于使用用户的手或手指来向计算机输入信息的装置的研究。这些装置中的一些已经经历了现实生活应用。
通过普通键盘输入信息的技术水平和方法因人而异。一些用户可以仅仅使用双手的两个食指或者双手的四或六个手指通过QWERTY键盘来输入信息。熟练于QWERTY键盘的其他人可使用双手的所有手指来输入信息。
同样地,使用缚于手上的装置输入3D空间的信息的技术水平和方法因人而异。因此,在包括用于双手的所有手指的十个手指部件的输入装置中,一些用户可能想仅仅使用双手的四或六个手指部件。一些用户可能被迫仅仅使用几个手指部件,这是由于剩下的手指部件的机械故障。
然而,还没有自适应地自重新配置手指部件的3D输入装置的任何公开。从而,需要开发一种能够自适应地自重新配置手指部件以使用户方便性得到改进的3D输入装置。可能在这样的情形下需要自适应的自重新配置,在该情形下,用户想选择使用哪些手指部件或者由于其它的手指部件的机械故障而被迫仅仅使用几个手指部件。
可能在这样的情形下也需要自适应的自重新配置,在该情形下,用户当佩戴着3D输入装置时想去激活特定的手指部件,以改变用户的键盘的键阵列或者改变语言。
目前,没有能确定用户是否佩戴手指部件以及确定手指部件的位置的技术的公开。例如,如图20所示,如果附于手指部件的传感器X1发生故障并且不能产生边沿信号,则手指部件的识别单元不能识别手指装置。设计该识别单元以顺序地识别传感器X1、X2、X3、和X4。当传感器X1发生故障时,其持续地在环中循环,因而不能确定用户是否佩戴手指部件以及手指部件的位置。因此,即使当仅仅一个手指部件发生故障时,也不能完整地使用3D输入装置。

发明内容
本发明提供了一种配置三维(3D)输入装置的方法、一种重新配置3D输入装置的方法、及其设备,所述的方法及设备允许改进用户的方便性。
本发明还提供了一种用于识别三维(3D)输入装置的佩戴的方法及其设备,所述的方法及设备识别用户是否佩戴着3D输入装置并识别该3D输入装置的手指部件位置。
根据本发明的一方面,提供了一种配置使用手指装置来执行信息输入操作的三维(3D)信息输入装置的方法,该手指装置由用户佩戴并检测用户的手指运动。所述的方法包括以下步骤识别用户是否佩戴着手指装置并且识别手指装置的手指位置;和基于识别结果自适应地配置3D输入装置。
根据本发明的另一方面,提供了一种重新配置通过使用手指装置输入信息的三维(3D)信息输入装置的方法,该手指装置由用户佩戴并检测用户的手指运动。所述的方法包括通过用户接口从用户接收用于3D信息输入装置的重新配置的重新设置信息;和基于接收的重新设置信息来重新配置3D输入装置的装置驱动程序。
根据本发明的另一方面,提供了一种识别用户是否佩戴着三维(3D)输入装置的方法,该三维输入装置包括带有多个附于其上的用于检测手指运动的传感器,并基于由传感器检测的手指运动信号来输入信息的手指装置。该方法包括(a)获得用于检测手指装置的运动的传感器信号;(b)确定从获得的传感器信号中是否检测到至少预定数量的边沿;和(c)基于步骤(b)的结果来识别用户是否佩戴着3D输入装置。
根据本发明的另一方面,提供了一种三维(3D)输入装置,该装置自适应地可配置并使用由用户佩戴并检测用户的手指运动的手指装置来执行信息输入操作。该3D输入装置包括预处理单元,用于识别用户是否佩戴着手指装置并识别手指装置的手指位置;和信号处理单元,其基于预处理单元的识别结果而被自适应地配置以处理从由用户佩戴的手指装置输出的运动信号。
根据本发明的另一方面,提供了一种重新配置使用手指装置执行信息输入操作的三维(3D)输入装置的设备,该手指装置由用户佩戴并检测用户的手指运动。所述的设备包括应用程序,用于通过用户接口从用户接收用于3D信息输入装置的重新配置的重新设置信息;和装置驱动程序,其基于从应用程序接收的重新设置信息而被重新配置。
根据本发明的另一方面,提供了一种识别用户是否佩戴着三维(3D)信息输入装置的设备,该三维信息输入装置使用由用户佩戴并检测用户的手指运动的手指装置来执行信息输入操作。该设备包括信号获取单元,用于获得指示手指装置的运动的传感器信号;端口改变识别单元,用于确定从获得的传感器信号中是否检测到至少预定数量的边沿;和手指装置识别单元,用于基于端口改变识别单元的确定结果来识别用户是否佩戴着手指装置。



通过参照附图对本发明的示例性实施例进行详细的描述,本发明的上述和其它的方面和优点将会变得清楚,其中图1A是根据本发明的三维(3D)输入装置的示意性方框图;图1B是附于图1A的手指装置上的检测单元的示图;图2是根据本发明的初始化图1A的3D输入装置的配置的示意性流程图;图3A是图1A的预处理单元的详细方框图;图3B是示出根据本发明的图3A的预处理单元中的用于初始化图1A的3D输入装置的配置的操作的流程图;图4A是图1A的信号处理单元的详细方框图;图4B是示出根据本发明的图4A的信号处理单元中的用于初始化图1A的3D信息输入装置的配置的操作的流程图;图5A是图1A的装置驱动程序的详细方框图;图5B是示出根据本发明的图5A的装置驱动程序中的用于初始化图1A的3D输入装置100的配置的操作的流程图;图6A是图1A的应用程序的详细方框图;图6B是示出根据本发明的图6A的应用程序中的用于初始化图1A的3D输入装置的配置的操作的流程图;图7是示出根据本发明的图6A中的用于图1A的3D输入装置的重新配置的应用程序中的操作的流程图;图8是从图6A的应用程序输出到输出单元的软键盘的示例性示图;图9是图6A的应用程序中的用于重新配置图1A的3D输入装置的用户接口的示例性示图;图10是图1A中的预处理单元中的操作的详细流程图;图11是图10中的传感器信号获取步骤的详细流程图;图12是图10中的计算占空比和识别用户是否佩戴手指部件的步骤的详细流程图;图13是图10中的发送信号值的步骤的详细流程图;图14是图10中的预处理程序的算法的初期步骤的详细流程图;图15A是图11中的用于获得传感器信号的算法的详细流程图;图15B是用于解释如何获得图15A中的Current_Input和Last_Input值的概念图;图15C是用于解释如何获得图15A中的指示当前和先前使用的值之间的变化的VXOR的概念图;图15D是用于解释如何获得图15A中的Port_Status的概念图;图15E示出了在图15A中的传感器信号获取之后获得的数据表;
图16A是图12中的识别用户是否佩戴着3D输入装置的程序的算法的详细流程图;图16B是用于解释图16A中的Port_Status和Bit-Mask的AND_bit运算的概念图;图16C是用于解释如何获得图16A中的Init_Edge_Status的概念图;图16D示出了在图16A中的Init_Edge_Status和Time[]获取之后获得的数据表;图17是图12中的计算占空比的算法的详细流程图;图18A是图13中的发送信号值的算法的详细流程图;图18B是用于解释如何获得图18A中的No_Exist_Signals的概念图;图19示出了当附在手指部件上的所有传感器X1、X2、X3、和X4都正常操作时的传感器信号;和图20示出了当传感器X1不正常操作时的传感器输出信号。
具体实施方式
现在将参照附图对本发明进行更完全地描述,其中,显示了本发明的优选实施例。
图1A示出根据本发明的三维(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输出的信号,即,关于手指的第一和第二关节间的角度的检测信号可被用作信息选择信号。
然而,传感器不局限于上述的那些。本发明可包括任何其它种类的能够检测手指的运动以输出用于信息输入或信息选择的信号的传感器。例如,本发明可以使用输出数字信号的传感器,比如惯性传感器;或者输出模拟信号的传感器,比如电位计、巨磁阻(GMR)传感器、光学传感器、开/关开关、或压力传感器。
信号处理装置120接收并处理从手指装置110的传感器111、112、113、和114输出的信号。信号处理装置120可被安装在用户的手背上。信号处理装置120包括预处理单元130和信号处理单元140。预处理单元130以有线或无线方式通过线缆或空气经由连接单元115接收从手指装置110输出的信号,并识别由用户佩戴的手指装置110。信号处理单元140接收从预处理单元130输出的手指装置识别信息,基于该手指装置识别信息自配置信号处理装置120,基于选择的算法处理从传感器111、112、113、和114输出的手指运动信息,从该手指运动信息提取运动特征信息,并将该运动特征信息通过诸如通用串行总线(USB)的连接发送到计算机150的装置驱动程序160。这里,信号处理单元140的自配置指的是自配置固件,即,算法。例如,如果手指装置识别信息是用于三个手指的,则信号处理单元140自配置算法以处理从三个传感器输出的三个信号。
计算机150包括装置驱动程序160和应用程序170。装置驱动程序160基于基本设置信息和从信号处理单元140接收的运动特征信息来配置其自身,然后基于从应用程序170接收的重新设置信息来重新配置其自身。基本设置信息指的是包括使用的语言或键盘的键阵列等的输入情况信息。应用程序170接收来自装置驱动程序160的基本设置信息和运动特征信息,基于接收的基本设置信息将软键盘发送到输出装置(未显示),解释接收的运动特征信息,并基于该解释的运动特征信息将输入信息项输出到输出装置(未显示)或另一应用程序(未显示)。此外,应用程序170允许用户通过用户接口来重新配置3D输入装置100。
图2是根据本发明的初始化3D输入装置100的配置的示意性流程图200。
在第一步骤S210中,用户佩戴手指装置110。在步骤S220中,从包括在手指装置110中的传感器111、112、113、和114输出传感器信号。预处理单元130接收传感器信号。
预处理单元130基于接收的传感器信号识别用户是否佩戴着手指装置110并识别手指装置110的位置(步骤S230),并且将手指装置识别信息和从传感器111、112、113、和114输出的手指运动信息一起发送到信号处理单元140。
在步骤S240中,信号处理单元140基于手指装置识别信息来配置固件,处理手指运动信息,并将运动特征信息发送到装置驱动程序160。
装置驱动程序160基于运动特征信息和基本设置信息配置其自身(步骤S250)。
应用程序170根据装置驱动程序160的配置信息输出在其上手指的位置被显示到输出装置(未显示)的软键盘(步骤S260),解释手指装置110的运动特征信息,并执行信息输入过程(步骤S270)。
在下文中,将参照图3A到图9来描述图1A的每个部件以及配置的初始化操作。
图3A是图1A的预处理单元130的详细方框图,图3B是根据本发明的图3A的预处理单元130中的用于配置3D输入装置的初始化操作的流程图。参照图3A和3B,将描述预处理单元130的配置和操作。
图3A的预处理单元130包括第一端口131、第二端口132、第三端口133、和第四端口134,用于从手指装置110接收检测信息;端口改变识别与存储单元135,用于识别每个端口的先前时期和当前时期之间的改变;输出值计算单元136,用于使用存储在端口改变识别与存储单元135中的值来计算输出值;和输出值发送单元137,用于将计算的输出发送到信号处理单元140。
预处理单元130初始化硬件和软件(步骤S310)。
其后,预处理单元130从手指装置110的第一传感器111、第二传感器112、第三传感器113、和第四传感器114接收传感器信号(步骤S320)。第一端口131、第二端口132、第三端口133、和第四端口134分别检测传感器信号。传感器信号包括用于信息项选择的信号和用于信息输入的信号。信息项选择指的是在多个信息项之中选择信息项,例如,在多个字符键之中选择字符键。信息输入指的是点击选择的字符键。
在步骤S330中,使用接收的传感器信号识别用户是否佩戴着手指装置110以及手指装置110的手指位置。被用于识别手指装置110的传感器信号可以是用于信息项选择的信号或者是用于信息输入的信号。然而,在下文中,传感器信号是指从加速度传感器116输出的信息输入信号。此外,手指装置识别信息指的是关于传感器使用和手指位置的传感器信息。步骤S330可由将在随后描述的端口改变识别与存储单元135和输出计算单元136来执行。
紧接着,输出发送单元137将手指装置识别信息和传感器信号发送到信号处理单元140(步骤S340)。手指装置识别信息指的是由预处理单元130识别的信息,传感器输出信号指的是手指装置110的手指运动信息。
图4A是图1A的信号处理单元140的详细方框图,图4B是根据本发明的图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基于配置的固件对从佩戴的传感器输出的信号执行信号处理算法。即,手指运动信息处理单元142将接收的传感器信号输入到关于第二112、第三113、和第四114传感器的算法,计算通过手指装置110的操作而获得的选择信息,并确定手指装置110的操作是否对应于信息输入。例如,手指运动信息处理单元142计算手指的位置以确定哪些信息项被对应的手指选择,确定对应于手指的被计算出的位置的键,或者通过估计用于信息输入的信号值是否已越过了预定的阈值来确定手指装置110的操作是否对应于信息输入。选择信息的计算结果和对输入操作的确定结果成为运动特征信息。
其后,在步骤S450中,手指运动信息处理单元142将运动特征信息以及先前接收的手指装置识别信息发送到计算机150的装置驱动程序160。信号处理单元140可使用USB来将运动特征信息发送到计算机150的装置驱动程序160。
图5A是图1A的装置驱动程序160的详细方框图,图5B是根据本发明的图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的调用(步骤S540),则装置驱动程序自配置/重新配置单元161从信号处理装置120获得手指装置识别信息(步骤S550),并基于获得的手指装置识别信息来重新配置装置驱动程序160。例如,如果用户在四个手指上佩戴着四个传感器并且将其中的一个脱下,则装置驱动程序配置/重新配置单元161从信号处理装置120接收新的手指装置识别信息,并基于该接收的手指装置识别信息来重新配置装置驱动程序160。
如果在步骤S560中从应用程序170接收到调用,则装置驱动程序配置/重新配置单元161从应用程序170获得基本设置信息(步骤S570),并基于该获得的设置信息来重新配置装置驱动程序160。首先,装置驱动程序配置/重新配置单元161通过用于输入情况和用户语言的缺省值来配置装置驱动程序160。其后,用户可通过由应用程序170提供的用户接口(未显示)来改变输入情况或用户语言。在这种情况下,装置驱动程序配置/重新配置单元161从应用程序170获得设置信息以自配置装置驱动程序160。
在步骤S580中,设置信息与运动特征信息传递单元162将接收的运动特征信息和设置信息传递到应用程序170。
图6A是图1A的应用程序170的详细方框图,图6B是根据本发明的图6A的应用程序170中的用于初始化3D输入装置的配置的操作的流程图。参照图6A和6B,将描述应用程序170的配置和操作。
图6A的应用程序170包括软键盘显示单元171,用于从装置驱动程序160接收运动特征信息和设置信息,并在输出装置180上显示软键盘;运动特征信息解释单元172,用于解释接收的运动特征信息;信息输入单元173,用于基于解释的运动特征信息来输入信息;和用户设置单元174,用来允许用户重新配置图1A的3D输入装置。
在下文中,将参照图6B描述应用程序1 70中的操作。
软键盘显示单元171从装置驱动程序160接收运动特征信息和设置信息(步骤S610)。
在步骤S620中,软键盘显示单元171基于接收的设置信息在显示手指位置的软键盘上显示手指位置,并将该软键盘发送到输出装置180(步骤S620)。图8显示被显示在输出装置180上的软键盘的例子。如图8所示,所采用的语言是英语并且输入情况是蜂窝电话类型。还知道的是三个传感器被连接。
在步骤S630中,运动特征信息解释单元172解释接收的运动特征信息。如先前所述,运动特征信息包括选择信息的计算结果和是否存在任何输入操作的确定结果。运动特征解释单元172解释计算结果并确定与选择的信息相对应的键。此外,运动特征解释单元172解释是否存在任何输入操作的确定结果,并决定是否将确定结果作为信息输入来处理。
紧接着,在步骤S640中,信息输入单元173接受与运动特征信息解释单元172的解释的结果相对应的信息。
图7是根据本发明的图6A中的用于图1A的3D输入装置的重新配置的应用程序170中的操作的流程图700。可由应用程序170的用户设置单元174执行3D信息输入装置的重新配置。
在第一步骤S710中,应用程序170接收用于3D输入装置110的手动设置的用户请求。可由用户使用图9所示的用户接口来执行该手动设置。用户接口可以以作为一般键盘注册信息的键盘注册信息910的形式被包括在由Microsoft Windows提供的控制板900中。
用户请求对特定传感器的使用的设置改变允许或取消(步骤S720),在步骤S730中选择输入情况,或者在手动设置菜单中选择用户语言(步骤S740)。如图9所示,用户接口允许用户选择键盘类型、键阵列、使用的手指、和用户语言。
当应用程序170接收到这样的改变的请求时,其将设置信息发送到装置驱动程序160(步骤S750),然后装置驱动程序160基于接收到的设置信息重新配置其自身。
到目前为止描述了用于初始化3D输入装置,特别是用于基于手指装置识别信息来识别手指装置和配置3D输入装置的部件及其操作。以下将描述识别手指装置110的预处理单元130的详细操作。
图10是图1A中的预处理单元130中的操作的示意流程图1000。
预处理单元130初始化系统(步骤S1010)并从手指装置110获取传感器信号(步骤S1020)。将参照图11详细地描述用于接收传感器信号的操作。
预处理单元130计算接收到的信号的占空比(步骤S1030),然后基于接收到的传感器信号识别用户是否佩戴着手指装置(步骤S1040)。将参照图12详细地描述用于计算占空比和识别用户是否佩戴着手指装置的操作。
预处理单元130将具有计算出的占空比的信号值和在其中存储有手指装置识别信息的标识因子发送到信号处理单元140(步骤S1050)。将参照图13详细地描述用于将该信号值和该标识因子发送到信号处理单元140的操作。
以下将参照图11详细地描述从手指装置110获取传感器信号的操作。端口的数量可以和传感器信号的数量一样多。在本描述中,每个点值可以被用作经过相应端口的每个传感器信号。
预处理单元130接收从手指装置110的传感器111、112、113、和114输出的当前端口值(步骤S1110)。当前端口值在预定时间量之后被存储为先前端口值。
接着,预处理单元130确定在当前端口值和先前端口值之间是否存在任何变化(步骤S1120)。端口值的变化表示在经过相应端口的信号中边沿被触发。
接着,预处理单元130将当前端口值和关于具有端口值变化的端口的信息存储在端口状态变量中(步骤S1130)。
预处理单元130将在端口值和端口信息被写入端口状态变量的当前时间的定时器值存储在事件时间变量中(步骤S1140)。即,当前定时器值指示边沿被触发的时间。
图12是图10中的步骤1030和1040的详细流程图。
在第一步骤S1210中,预处理单元130确定是否能够从每个传感器获得三个边沿触发时间。边沿触发时间被存储在事件时间变量中。当用于每个传感器的三个事件时间变量被获得时,这三个事件时间变量被存储在time[0]、time[1]、和time[2]中。
如果不能够从每个传感器提取三个边沿触发时间,那么错误值被存储在输出变量中(步骤S1240)。具体地讲,不能提取三个边沿触发时间的事实表明在预定的时间周期边沿触发小于三次。这指示传感器没有正常地操作。因此,错误被写到输出变量中。
如果能够提取三个边沿触发时间,那么预处理单元130存储用于每个传感器的初始边沿状态(步骤S1220)。
在步骤S1230中,预处理单元130基于事件时间变量计算比例值,并且将计算出的比例值存储到输出变量中。
在步骤S1250中,如果存储的比例值小于最小阈值,那么预处理单元130将最小阈值存储在输出变量中。在步骤S1260中,如果存储的比例值大于最大阈值,那么预处理单元130将最大阈值存储在输出变量中。
图13是图10中的步骤1050的详细流程图。
在第一步骤S1310中,预处理单元130检验具有错误值的输出变量,并且将该值存储在无信号变量中。无信号变量包括指示传感器没有正常输出传感器信号的信息。
在步骤S1320中,预处理单元130将输出变量和包括在无信号变量中的值发送到信号处理单元140。
图14至图20显示了在预处理单元130中使用的用于识别用户是否佩戴着手指装置并用于识别手指装置的手指位置的详细算法。
参照图14,预处理单元130初始化系统(步骤S1401),并且如果在步骤S1402中发生中断,则进行到‘A’。
参照图15A,预处理单元130初始化变量(步骤S1501),更具体地讲,将Transition_Counter和Input_Counter的值设置为‘0’。
接着,预处理单元130将当前端口值输入到Current_Input,并且将先前端口值输入到Last_Input(步骤S1502)。预处理单元130顺序地排列在当前时间从N个端口捕捉的值,并且将它们存储在Current_Input中。这里,N指的是戴在手指上的传感器的数量或点击信号的数量。在本实施例中,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执行信号组合,以确定在当前端口值和先前端口值之间是否存在任何变化。预处理单元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’,那么在当前端口值和先前端口值之间没有变化,指示在任何传感器信号中没有任何边沿(上升沿或下降沿)被触发。因此,预处理单元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位指示边沿触发。在图15D中,Port_Status值指示当前传感器值[X1X2 X3 X4]是
,并且边沿触发的传感器是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。
根据图15A中所示的运算的结果,获得了图15E中的数据表,具有以下信息Input_Counter;Current_Input,其存储当前端口值;Last_Input,其存储先前端口值;VXOR,指示当前端口值或先前端口值的变化;Transition_Counter;Port_Status,指示当前端口值和关于变化剧烈(change-stricken),即边沿触发的端口的信息;和Event_Time,表示边沿被触发的时间。例如,在图15E中,在Transition_Counter为12的当前时间,当前端口值为1010,变化剧烈的传感器是第三传感器,并且当前定时器值是450。
以下将参照图16A来描述在B之后的操作。
B之后的操作包括基于图15E的数据识别没有正常操作的传感器和获得预定数量的边沿触发时间,即用于正常操作的传感器的定时器值。
在步骤S1601中,预处理单元130将Bit_Mask设置为00000001,并且将count设置为‘0’。
在步骤S1602中,预处理单元130确定count值是否小于N(步骤S1602)。步骤S1602用于确定以下的操作是否被执行与戴在手指上的传感器的数量一样多的次数。
如果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值的超出。即,在预定量的时间内,在从传感器输出的信号中不多于两个边沿已经被触发,这指示该传感器没有正常操作。因此,预处理单元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中的数据表)和具有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执行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。
根据图16A的算法运算图15E的数据表中的值生成图16D的数据表中的值。每个传感器获得Init_Edge_Status、time[0]、time[1]、和time[2]的值。例如,在第一传感器X1的情况下,如图15E所示,当第一传感器X1的端口值为‘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位信号被发送,那么输出变量值可以在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中将Va1ue_Something_Wrong存储在输出变量Output[count]中,并进行到步骤S1709。由于根据占空比计算存储的输出变量值可从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中的所有操作已经完成。在这种情况下,预处理单元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(指示现存信号的数量的变量)和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发送到信号处理单元140。例如,Output[1]、Output[2]和No_Exist_Signals=[00001100]被输出,那么第一传感器X1和第二传感器X2没有被用户佩戴,第三传感器X3和第四传感器X4正被用户佩戴。
因此,预处理单元130可以识别正被用户佩戴的传感器和没有被用户佩戴的传感器。
产业上的可利用性根据本发明,可以通过自动或手动配置3D输入装置来实现用户友好的3D输入装置。
权利要求
1.一种配置使用手指装置来执行信息输入操作的三维信息输入装置的方法,该手指装置由用户佩戴并检测用户的手指运动,所述的方法包括以下步骤识别用户是否佩戴着手指装置并且识别手指装置的手指位置;和基于识别结果自适应地配置三维输入装置。
2.如权利要求
1所述的方法,其中,自适应地配置三维输入装置的步骤包括基于识别结果自适应地配置用于处理由手指装置检测的运动信号的信号处理单元;和基于识别结果和用于信息输入的基本设置信息自适应地配置三维输入装置的装置驱动程序。
3.如权利要求
2所述的方法,其中,基本设置信息包括关于通过手指运动而被选择的信息项的排列的输入情况信息和用于信息输入的语言。
4.如权利要求
2所述的方法,其中,当应用程序从装置驱动程序接收到识别结果和基本设置信息时,应用程序基于识别结果和基本设置信息来配置软键盘。
5.如权利要求
4所述的方法,其中,应用程序将配置的软键盘输出到输出装置。
6.如权利要求
5所述的方法,其中,软键盘在通过手指运动而被选择的信息项的阵列上显示手指装置的手指位置。
7.一种重新配置通过使用手指装置输入信息的三维信息输入装置的方法,该手指装置由用户佩戴并检测用户的手指运动,所述的方法包括通过用户接口从用户接收用于三维信息输入装置的重新配置的重新设置信息;和基于接收的重新设置信息来重新配置三维输入装置的装置驱动程序。
8.如权利要求
7所述的方法,其中,重新设置信息包括关于允许或取消使用手指装置的特定手指的信息;关于有关通过手指运动而被选择的信息项的排列的输入情况的选择的信息;和关于用于信息输入的语言的选择的信息。
9.如权利要求
7所述的方法,其中,用户接口使用Window系统的控制板。
10.一种识别用户是否佩戴着三维输入装置的方法,该三维输入装置包括具有多个附于其上的传感器的手指装置,该手指装置检测手指运动并且基于由传感器检测的手指运动信号来输入信息,该方法包括(a)获得用于检测手指装置的运动的传感器信号;(b)确定从获得的传感器信号中是否检测到至少预定数量的边沿;和(c)基于步骤(b)的结果来识别用户是否佩戴着三维输入装置。
11.如权利要求
10所述的方法,其中,步骤(a)还包括(a1)存储关于经历了当前传感器信号值与先前传感器信号值之间的改变的传感器的信息和在该改变发生的时间的定时器值。
12.如权利要求
11所述的方法,其中,步骤(b)还包括确定是否检测到至少预定数量的定时器值。
13.如权利要求
12所述的方法,其中,步骤(c)还包括如果检测到至少预定数量的定时器值,则识别出用户正佩戴着手指装置,该手指装置具有附于其上的输出获得的传感器信号的对应的传感器;和除非检测到预定数量的定时器值,否则识别出用户没有佩戴着具有输出获得的传感器信号的对应的传感器的手指装置。
14.如权利要求
13所述的方法,其中,该方法还包括(d)如果识别出用户没有佩戴着手指装置,则输出指示错误值的信息;知(e)如果识别出用户正佩戴着手指装置,则通过使用定时器值来计算占空比,将计算出的占空比按比例增减预定的值,并输出该按比例被增减的值。
15.一种三维输入装置,其可自适应地配置,并且使用由用户佩戴并检测用户的手指运动的手指装置来执行信息输入操作,该三维输入装置包括预处理单元,其识别用户是否佩戴着手指装置,并且识别手指装置的手指位置;和信号处理单元,其基于预处理单元的识别结果被自适应地配置,以处理从由用户佩戴的手指装置输出的运动信号。
16.如权利要求
15所述的三维输入装置,还包括装置驱动程序,其基于预处理单元的识别结果和用于信息输入的基本设置信息被自适应地配置,以处理从信号处理单元输出的运动信号。
17.如权利要求
16所述的三维输入装置,其中,基本设置信息包括用于信息输入的语言、以及与由手指运动选择的信息项的排列相关的输入情况信息。
18.如权利要求
17所述的三维信息输入装置,还包括应用程序,其基于从装置驱动程序接收的识别结果和基本设置信息,来配置用于在由手指运动选择的信息项的排列上显示手指装置的手指位置的软键盘。
19.一种用于重新配置三维输入装置的设备,该三维输入装置使用由用户佩戴并检测用户的手指运动的手指装置来执行信息输入操作,该设备包括应用程序,其通过用户接口从用户接收用于三维信息输入装置的重新配置的重新设置信息;和装置驱动程序,其基于从应用程序接收的重新设置信息被重新配置。
20.如权利要求
19所述的设备,其中,重新设置信息包括关于手指装置的特定手指的使用的允许或取消的信息、关于与由手指运动选择的信息项的排列相关的输入情况的选择的信息、以及关于用于信息输入的语言的选择的信息。
21.一种用于识别用户是否佩戴着三维信息输入装置的设备,该三维信息输入装置使用由用户佩戴并检测用户的手指运动的手指装置来执行信息输入操作,该设备包括信号获取单元,其获取指示手指装置的运动的传感器信号;端口变化识别单元,其确定是否至少预定数量的边沿从获取的传感器信号被检测到;和手指装置识别单元,其基于端口变化识别单元的确定结果来识别用户是否佩戴着手指装置。
22.如权利要求
21所述的设备,其中,信号获取单元包括端口状态存储单元,其存储关于带有当前传感器信号值和先前传感器信号值之间的变化的传感器的信息;和事件时间存储单元,其存储在当前传感器信号值和先前传感器信号值之间的变化的时间设置的定时器值。
23.如权利要求
22所述的设备,其中,端口变化识别单元确定存储在事件时间存储单元中的至少预定数量的定时器值是否被检测到。
24.如权利要求
23所述的设备,其中,如果至少预定数量的定时器值被检测到,那么手指装置识别单元识别出用户佩戴着手指装置,或者如果至少预定数量的定时器值没有全部被检测到,那么手指装置识别单元识别出用户没有佩戴手指装置。
专利摘要
提供了一种用于配置三维(3D)输入装置的方法、一种用于重新配置该3D输入装置的方法、一种用于识别该3D输入装置的佩戴的方法、及其设备。该配置使用由用户佩戴并检测用户的手指运动的手指装置来执行信息输入操作的三维(3D)输入装置的方法包括识别用户是否佩戴着手指装置,并且识别该装置的手指位置;和基于识别结果自适应地配置该3D输入装置。因此,可以通过自动或手动地配置该3D输入装置来实现用户友好的3D输入装置。
文档编号G06F3/00GKCN1732429SQ200380108059
公开日2006年2月8日 申请日期2003年12月26日
发明者李相国, 朴太植, 苏秉石, 金成喆 申请人:三星电子株式会社导出引文BiBTeX, EndNote, RefMan
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1