CN107402707A - 键盘手势指令的产生方法与计算机程序产品 - Google Patents

键盘手势指令的产生方法与计算机程序产品 Download PDF

Info

Publication number
CN107402707A
CN107402707A CN201710208144.XA CN201710208144A CN107402707A CN 107402707 A CN107402707 A CN 107402707A CN 201710208144 A CN201710208144 A CN 201710208144A CN 107402707 A CN107402707 A CN 107402707A
Authority
CN
China
Prior art keywords
instruction
button
keyboard
gesture
key
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710208144.XA
Other languages
English (en)
Inventor
姚秉洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Publication of CN107402707A publication Critical patent/CN107402707A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/0202Constructional details or processes of manufacture of the input device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/0202Constructional details or processes of manufacture of the input device
    • G06F3/021Arrangements integrating additional peripherals in a keyboard, e.g. card or barcode reader, optical scanner
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/0202Constructional details or processes of manufacture of the input device
    • G06F3/0219Special purpose keyboards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/041Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means
    • G06F3/042Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by opto-electronic means
    • G06F3/0425Digitisers, e.g. for touch screens or touch pads, characterised by the transducing means by opto-electronic means using a single imaging device like a video camera for tracking the absolute position of a single or a plurality of objects with respect to an imaged reference surface, e.g. video camera imaging a display or a projection screen, a table or a wall surface, on which a computer generated image is displayed or projected
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text

Abstract

一种键盘手势指令的产生方法,应用于相互连接的一实体键盘、一屏幕、一传感器及一电算装置,该实体键盘包含多个按键,该传感器用以检测并取得一操作位置影像,该键盘手势指令的产生方法包含:加载一指令条件定义表,该指令条件定义表包含多个手势指令,每个该手势指令包含多个指令条件及对应的一定义值;读取该传感器取得的该操作位置影像;将该操作位置影像转换为一操作位置数据,该操作位置数据包括被参考的该按键的一相对位置数据;根据多组连续的该操作位置数据识别一手势事件;取得该手势事件的多个检测值并与该些定义值比对;若该些检测值与其中一个该手势指令的所有该些指令条件的该定义值相符,停止该手势事件的追踪;及执行相符的该手势指令。

Description

键盘手势指令的产生方法与计算机程序产品
技术领域
本发明是关于一种计算机、行动装置或抬头显示设备/头戴显示设备/虚拟现实装置等电算装置的键盘操作方法,特别是关于一种利用实体键盘及传感器进行键盘手势操作指令的产生方法及其计算机程序产品。
背景技术
美国专利Patent No.8,928,590B1(发明者Tarek)的“GESTURE KEYBOARD METHODAND APPARATUS”,其中公开一种可捕捉操作手势的键盘,其利用装设在键盘上的一对相机镜头捕捉使用者在手势操作范围(即,相机镜头的可视范围)内的操作手势,经由手势辨识后,即可与系统互动。
现有技术的手势操作范围约在键盘上方4英寸处,其操作手势与实体键盘上的按键并无任何相对应的关系,其利用摄像镜头所拍摄的影像由于缺乏以按键位置作为参考依据,在影像辨识时缺乏参考依据易有手势(即指令)误判的问题,因此,实有必要改善现有技术以提出一种利用实体键盘上的按键位置作为参考依据以将手势操作转换为对应的手势指令,以操作电算装置上的应用程序,避免手势误判的问题。
发明内容
有鉴于此,本发明提出一种键盘手势指令的产生方法及其计算机程序产品与非暂态计算机可读取媒体,其目的在于,利用实体键盘与摄像镜头产生手势指令,以操控电算装置上所执行的应用程序。
本发明一实施例提出一种键盘手势指令的产生方法,应用于相互连接的一实体键盘、一屏幕、一传感器及一电算装置,该实体键盘包含多个按键,响应该些按键的击键而输出一按键扫描码至该电算装置,该传感器用以检测并取得一操作位置影像,该键盘手势指令的产生方法包含:加载一指令条件定义表,该指令条件定义表包含多个手势指令,每个该手势指令包含多个指令条件及对应的一定义值;读取该传感器取得的该操作位置影像;将该操作位置影像转换为一操作位置数据,该操作位置数据包括被参考的该按键的一相对位置数据;根据多组连续的该操作位置数据识别一手势事件;取得该手势事件的多个检测值并与该些定义值比对;若该些检测值与其中一个该手势指令的所有该些指令条件的该定义值相符,停止该手势事件的追踪;及,执行相符的该手势指令。
本发明又提出一种计算机程序产品,适于储存于一计算机可读取媒体,当计算机加载该计算机程序并执行后,可完成前述的该键盘手势指令的产生方法。
本发明又再提出一种非暂态计算机可读取媒体,储存一计算机程序,该计算机程序包含计算机可执行的多个指令,用以执行前述的该键盘手势指令的产生方法。
以下在实施方式中详细叙述本发明的详细特征以及优点,其内容足以使任何熟习相关技艺者了解本发明的技术内容并据以实施,且根据本说明书所公开的内容、申请专利范围及图式,任何熟习相关技艺者可轻易地理解本发明相关的目的及优点。
附图说明
图1为本发明第一实施例实体键盘装置的示意图。
图2为本发明第二实施例实体键盘装置的示意图。
图3为本发明第三实施例实体键盘装置的示意图。
图4为本发明第四实施例实体键盘装置的示意图。
图5为本发明第一实施例的实体键盘装置与对应电算装置的系统方块图。
图6为本发明第五实施例实体键盘装置与对应电算装置的系统方块图。
图7为本发明第六实施例实体键盘装置与对应电算装置的系统方块图。
图8为本发明一实施例手势指令产生的操作流程图。
图9为本发明第七实施例屏幕键盘的示意图(一)。
图10为本发明第七实施例屏幕键盘的示意图(二)。
图11为本发明第七实施例屏幕键盘的示意图(三)。
图12为本发明第七实施例屏幕键盘的示意图(四)。
图13为本发明第七实施例屏幕键盘的示意图(五)。
图14为本发明第七实施例屏幕键盘的示意图(六)。
图15为本发明第七实施例屏幕键盘的示意图(七)。
图16为本发明第八实施例屏幕键盘的示意图(一)。
图17为本发明第八实施例屏幕键盘的示意图(二)。
图18为本发明第八实施例屏幕键盘的示意图(三)。
图19为本发明第九实施例屏幕键盘的示意图。
图20为本发明第十实施例屏幕键盘的示意图。
图21为本发明一实施例屏幕键盘的操作流程图。
图22为本发明一实施例屏幕键盘与手势操作轨迹的示意图。
其中附图标记为:
10、20、30、40、50 实体键盘
11 基座
111 容置空间
112 固定座
12 按键
13、23 光源模块
14、35、45 第一传感器
15、36 第二传感器
16、38 控制模块
161 微控制单元
162 击键判断单元
163 感应控制单元
231、431、441 LED元件
232、432、442 电路板
31 第一键盘
311 第一基座
312 第一容置空间
313 第一按键
314 第一固定座
32 第二键盘
321 第二基座
322 第二容置空间
323 第二按键
324 第二固定座
33、43 第一光源模块
34、44 第二光源模块
37 第三传感器
51 第四传感器
52 第五传感器
53 第三光源模块
56 键盘驱动程序
57 手势指令产生模块
58 影像分析模块
60 第一缓冲区
62 第二缓冲区
63 第三缓冲区
64a、64b、64c 电算装置
66 处理器
68a、68b、68c、68d 屏幕键盘
70 操作系统桌面
72 第一按键标记
74 第二按键标记
76a、76b、76c 屏幕
78 作用中窗口
S101 加载指令条件定义表
S102 读取操作位置数据
S103 是否移动
S104 手势事件的指令条件比对
S105 是否符合区域
S106 是否符合起始位置
S107 是否符合移动方向
S108 是否符合起始数量
S109 是否符合移动距离
S110 是否符合特殊条件
S111 是否在有效时间内
S112 是否有按键扫描码
S113 产生手势指令
S114 处理器执行手势指令
S115 中止手势事件的比对
S201 手指触摸/接近按键
S202 产生操作位置影像
S203 储存操作位置影像至第三缓冲区
S204 影像分析模块分析操作位置影像
S205 在屏幕键盘对应操作位置数据的按键处显示第一按键标记
S206 手指是否离开按键?
S207 在屏幕键盘取消显示第一按键标记
S208 手指击键
S209 产生按键扫描码
S210 储存按键扫描码至第二缓冲区
S211 处理器读取按键扫描码
S212 在屏幕键盘对应按键扫描码的按键处显示第二按键标记
S213 在屏幕键盘取消显示第二按键标记
具体实施方式
本发明使用于但不限定于个人计算机(PC/Mac)、笔记本电脑(Laptop/Notebook/Portable Computer)、智能手机(Smartphone)、平板计算机(Tablet PC)、智能电视(SmartTV)、抬头显示设备(Head-Up Display)/头戴显示设备(Head-Mounted Display)/虚拟现实装置(Virtual Reality Display)、电视游乐器(Video Game Console,或TV GameConsole)…等等电算装置(Computing Device),通讯连接实体键盘10、20、30、40、50与屏幕76a、76b、76c。所述通讯连接的方式可为无线通信或有线通讯方式。实体键盘10、20、30、40、50与屏幕76a、76b、76c可设置于电算装置外部而与电算装置连接,或者可内置于电算装置中。
本说明书的图式用以说明本发明的功能及技术特征,并非用以限定本发明的外观造型。以下将分别说明实体键盘10、20、30、40、50的多个实施例及屏幕键盘68a、68b、68c、68d的多个实施例,此些不同实施例的实体键盘10、20、30、40、50可和此些不同实施例的屏幕键盘68a、68b、68c、68d任意配合。
请参阅图1。图1为本发明第一实施例实体键盘的示意图。本实施例的实体键盘10包括基座11、多个按键12、光源模块13、第一传感器14、第二传感器15以及控制模块16。基座11具有容置空间111用以容设多个按键12。图1所示的实体键盘10通过多个区域的开孔以容置不同功能的该些按键12,其为现有常用的技术手段,在此便不加以赘述。
光源模块13设置于基座11,用以向多个按键12提供光源。如图1中所示,在基座11上方较长边的中央位置外侧边,设置可容设光源模块13的固定座112。光源模块13是朝向多个按键12设置,以提供多个按键12所需的光源。在本实施例中,为能向所有按键12提供光源,光源模块13所设置的高度会高于所有按键的高度,以使得光源模块13所发出的光源,能够照射到所有按键12,亦或是使所有按键12位在的区域产生足够的环境亮度。另外,光源模块13可为一LED元件,且可发出可见光。在其他实施态样中,光源模块亦可为发出红外线光的LED元件,本发明不以此为限。
第一传感器14及第二传感器15亦设置于基座11并朝向多个按键12。在本实施例中,第一传感器14及第二传感器15同样设置于固定座112上,并朝向多个按键12。第一传感器14用以检测多个按键12的环境亮度,第二传感器15用以检测并取得操作位置影像。在本实施例中,固定座112设置于基座11上方较长边的中央位置外侧边,其是为了使光源模块13、第一传感器14及第二传感器15能够左右对称得向多个按键12提供光源或进行检测,但本发明不以此为限。在其他实施态样中,固定座112可设置于基座11的任一侧边的任一位置,只能要够提供多个按键12光源,并检测或照射多个按键12即可。另外,本实施例中的光源模块13、第一传感器14及第二传感器15皆设置于一个固定座112,但本发明亦不以此为限。光源模块13、第一传感器14及第二传感器15亦可分别设置于基座11的任一位置,或二二一组设置于基座11的任一位置。或第一传感器14设置于基座11的任一位置,光源模块13及第二传感器15设置于一个固定座112。
在本实施例中,第一传感器14为亮度传感器,或称环境光传感器(Ambient LightSensor)。第一传感器14可检测多个按键12所在环境的环境亮度。第一传感器14是为了判断多个按键12所在的环境亮度是否充足,以使第二传感器15可检测并取得所需数据。
在本实施例中,第二传感器15为摄像镜头,而第二传感器15检测并取得的操作位置影像即为拍摄到的手指与按键12影像,此影像由控制模块16传送至电算装置64a(如图5所示)端,由电算装置64a端的影像分析模块58进行分析影像,以转换成操作位置数据其为用户的手指与该些按键12的一相对位置数据。由于第二传感器15需要能够拍摄到所有按键12才能正确判断用户的手指与该些按键12的相对位置数据,因此第二传感器15所设置的位置要高于任一按键12的表面。
控制模块16设置于基座11的容置空间111中,并电连接多个按键12、光源模块13、第一传感器14及第二传感器15。控制模块16可位于基座11的容置空间111中的任一位置,本发明不以此为限。当控制模块16接收并判断第一传感器14检测到的环境亮度等于或大于预设环境亮度时,即会启动第二传感器15并接收第二传感器15的操作位置影像。当控制模块16判断第一传感器14检测到的环境亮度小于预设环境亮度时,控制模块16开启光源模块13向多个按键12提供光源。
在此,预设环境亮度即为使得第二传感器15能够清楚检测并取得操作位置影像的环境亮度。预设环境亮度可事先设定后预存于控制模块16中,以利进行后续比对判断。控制模块16所接收的操作位置影像,须交由电算装置64a端进行分析。
当控制模块16要开始取得操作位置影像前,先判断第一传感器14检测到的环境亮度是否等于或大于预设环境亮度,若是,则表示第二传感器15可清楚检测并取得操作位置影像。此时,则启动第二传感器15开始拍摄并检测取得操作位置影像。当控制模块16判断第一传感器14检测到的环境亮度小于预设环境亮度时,即表示此时第二传感器15所拍摄的影像可能会过暗而无法检测并取得操作位置影像。因此,控制模块16即会开启光源模块13向多个按键12提供光源,以改善多个按键12区域的环境亮度。
藉此,上述实体键盘可通过自动补光技术解决当环境光源不足,且应用在抬头显示设备、头戴显示设备或虚拟现实装置(VR)时,即使在未开灯光的黑暗环境中,使用者藉由本实施例的自动补光技术仍可利用实体键盘10输入数据。
在本实施例中,当第二传感器15已启动并持续拍摄、检测并取得操作位置影像时,控制模块16可得知操作位置影像是否包含手指与多个按键12的相对位置数据(详见后述图5的说明)。当操作位置影像未包含手指与多个按键12的相对位置数据时,即代表用户已没有在继续操作实体键盘10,此时控制模块16关闭第二传感器15,停止继续拍摄、检测并取得操作位置影像。藉此,可在用户未操作实体键盘10,或持续一段时间未操作实体键盘10时主动关闭第二传感器15,以节省电源。
另外,当光源模块13为启动状态,此时第一传感器14持续检测环境亮度,当第一传感器14检测到的环境亮度大于预设环境亮度时,控制模块16关闭该光源模块13。在此,是当环境亮度已被改善,例如使用者打开室内灯光,第一传感器14检测到的环境亮度已大于预设环境亮度,即不需要光源模块13的光源进行辅助。此时,控制模块16主动关闭该光源模块13,以节省电源。
接着请参阅图2,图2为本发明第二实施例实体键盘的示意图。本实施例中与第一实施例相同的元件及结构以相同的元件符号表示且不再赘述。本实施例与第一实施例不同之处在于,本实施例的实体键盘20的光源模块为多个光源模块23,且多个光源模块23是设置于基座11的容置空间111中,并位于多个按键12的下方,且可朝向多个按键12提供光源。本实施例中多个光源模块23为多个LED元件231设置于一个电路板232上并置于按键12下方。在其他实施态样中,多个光源模块亦可为在每一个按键背面设置LED元件,或是于基座的容置空间的侧边设置多个LED元件,并配合导光板、反射片等元件,使光源由容置空间朝向按键12方向射出。
在本实施例中,当控制模块16判断第一传感器14检测到的环境亮度小于预设环境亮度时,控制模块16陆续开启多个光源模块23的至少一个,直到控制模块16判断第一传感器14检测到的环境亮度等于或大于预设环境亮度或是多个光源模块23全部开启。也就是说,当控制模块16判断现在环境亮度不足时,可先控制一个或多个光源模块23开启,以提供光源。接着,控制模块16持续接收并判断第一传感器14检测到的环境亮度,若仍不足,则再开启一个或多个光源模块23。一直到控制模块16判断第一传感器14检测到的环境亮度已等于或大于预设环境亮度,才停止再开启光源模块23。或者控制模块16陆续开启光源模块23直到所有的光源模块23皆已被开启。
藉此,可通过控制模块16进行判断,开启足够提供所需环境亮度的光源模块23即可,而不需要每一次在环境亮度不足时就一次开启所有的光源模块23。如此,在本实施例的实体键盘20可在需要时开启足够的光源模块23,又可达到节约省电的功效。
请参阅图3,图3为本发明第三实施例实体键盘的示意图。本实施例的实体键盘30包括第一键盘31、第二键盘32、第一光源模块33、第二光源模块34、第一传感器35、第二传感器36、第三传感器37以及控制模块38。第一键盘31包括具有第一容置空间312的第一基座311及多个第一按键313,多个第一按键313设置于第一容置空间312中。第二键盘32包括具有第二容置空间322的第二基座321及多个第二按键323,多个第二按键323设置于第二容置空间322中。在本实施例中,第一键盘31及第二键盘32为将一般实体键盘的按键,分成可成组使用的左右键盘,但本发明不以此为限。第一键盘及第二键盘亦可为文字符号键盘与数字键盘的组合。
第一光源模块33设置于第一基座311,用以向多个第一按键313提供第一光源。如图3所示,在第一基座311上方较长边的中央位置外侧边,设置可容设第一光源模块33的第一固定座314。第一光源模块33是朝向多个第一按键313设置,以提供多个第一按键313所需的光源。在本实施例中,为能向所有第一按键313提供光源,第一光源模块33所设置的高度会高于所有按键的高度,以使得第一光源模块33所发出的光源,能够照射到所有第一按键313,亦或是使所有第一按键313位在的区域产生足够的环境亮度。
同样地,第二光源模块34设置于第二基座321,用以向多个第二按键323提供第二光源。如图3所示,在第二基座321上方较长边的中央位置外侧边,设置可容设第二光源模块34的第二固定座324。第二光源模块34是朝向多个第二按键323设置,以提供多个第二按键323所需的光源。在本实施例中,为能向所有第二按键323提供光源,第二光源模块34所设置的高度会高于所有按键的高度,以使得第二光源模块34所发出的光源,能够照射到所有第二按键323,亦或是使所有第二按键323位在的区域产生足够的环境亮度。
第一传感器35设置于第一基座311,用以检测多个第一按键313的环境亮度。如图3所示,第一传感器35则设置于此第一固定座314上,并朝向多个第一按键313。由于第一传感器35不一定要朝向所有按键,仅需单点检测,故,在另一些实施例中,第一传感器35亦可设置于第一基座311或第二基座321的其他位置,例如任意按键旁的平面空间(低于按键高度)。另外,第一键盘31与第二键盘32的距离一般来说不可能太远,两者的环境亮度通常不会有太大的差异,因此,本实施例以通过一个第一传感器35(仅检测第一键盘31的环境亮度)让控制模块16同时控制第一光源模块33与第二光源模块34。
在本实施例中,第一传感器35为亮度传感器,或称环境光传感器(Ambient LightSensor)。第一传感器35可检测多个第一按键313所在环境的环境亮度。在另一些实施例中,第一传感器35设置在第二键盘32的第二基座321,以检测多个第二按键323所在环境的环境亮度。第一传感器35是为了判断多个第一按键313(当设置于第一键盘31时)或多个第二按键323(当设置于第二键盘32时)所在的环境亮度是否充足,以使第二传感器36及第三传感器37可检测并取得所需数据。
第二传感器36设置于第一基座311并朝向多个第一按键313。在本实施例中,第二传感器36与第一光源模块33一起设置于第一固定座314上,并朝向多个第一按键313。第二传感器36用以检测并取得第一操作位置影像。在本实施例中,第一固定座314设置于第一基座311上方侧的中央位置外侧边,其是为了使第一光源模块33及第二传感器36能够左右对称得向多个第一按键313提供光源或进行检测,但本发明不以此为限。在其他实施态样中,第一固定座314可设置于第一基座311的任一侧边的任一位置,只能要够提供多个第一按键313光源,并检测或照射多个第一按键313即可。另外,本实施例中的第一光源模块33及第二传感器36皆设置于一个第一固定座314,但本发明亦不以此为限。第一光源模块33及第二传感器36亦可分别设置于第一基座311的任一位置。
第三传感器37设置于第二基座321并朝向多个第二按键323。在本实施例中,第三传感器37与第二光源模块34一起设置于第二固定座324上,并朝向多个第二按键323。第三传感器37用以检测并取得第二操作位置影像。在本实施例中,第二固定座324设置于第二基座321上方侧的中央位置外侧边,其是为了使第二光源模块34及第三传感器37能够左右对称得向多个第二按键323提供光源或进行检测,但本发明不以此为限。在其他实施态样中,第二固定座324可设置于第二基座321的任一侧边的任一位置,只能要够提供多个第二按键323光源,并检测或照射多个第二按键323即可。另外,本实施例中的第二光源模块34及第三传感器37皆设置于一个第二固定座324,但本发明亦不以此为限。第二光源模块34及第三传感器37亦可分别设置于第二基座321的任一位置。
在本实施例中,第二传感器36及第三传感器37为摄像镜头。而第二传感器36及第三传感器37检测并取得的操作位置影像即分别为拍摄到的第一影像与第二影像,此第一影像与第二影像由控制模块38传送至电算装置64a端,由电算装置64a端的影像分析模块58进行分析影像,以转换成操作位置数据其为用户的手指与多个第一按键313或多个第二按键323的相对位置数据。由于第二传感器36需要能够拍摄到所有第一按键313才能正确判断用户的手指与多个第一按键313的第一相对位置数据。第三传感器37需要能够拍摄到所有第二按键323才能正确判断用户的手指与多个第二按键323的第二相对位置数据。因此第二传感器36所设置的位置要高于任一第一按键313的表面,第三传感器37所设置的位置要高于任一第二按键323的表面。
控制模块38设置于第二容置空间322中,并电连接多个第一按键313、多个第二按键323、第一光源模块33、第二光源模块34、第一传感器35、第二传感器36及第三传感器37。在此,虽然控制模块38位于第二容置空间322,但本发明不以此为限。但在其他实施态样中,控制模块亦可设置于第一容置空间中。另外,本实施例的按制模块38虽然是设置于第二容置空间322中,但其可通过无线模块控制第一键盘31中各元件的开启或关闭,以及接收在第一键盘31中各元件所检测取得的数据。在其他实施态样中,亦可使用有线方式连接第一键盘及第二键盘,本发明不以此为限。另外,在一些实施态样中,亦可于第一键盘中设置一个第一控制模块,于第二键盘中设置一个第二控制模块,以分别控制第一键盘及第二键盘中的各元件的运作。
当控制模块38判断第一传感器35检测到的环境亮度等于或大于一预设环境亮度时,启动第二传感器36及第三传感器37并接收第二传感器36的第一操作位置影像与第三传感器37的第二操作位置影像。当控制模块38判断第一传感器35检测到的环境亮度小于预设环境亮度时,控制模块38开启第一光源模块33向多个第一按键313提供第一光源、开启第二光源模块34向多个第二按键323提供第二光源或同时开启第一光源模块33及第二光源模块34。
在此,预设环境亮度即为使得第二传感器36及第三传感器37能够清楚检测并取得操作位置影像的环境亮度。预设环境亮度可事先设定后预存于控制模块38中,以利进行后续比对判断。控制模块38所接收的操作位置影像,须交由电算装置64a端进行分析。
当控制模块38要开始取得第一操作位置影像及第二操作位置影像前,先判断第一传感器35检测到的环境亮度是否等于或大于预设环境亮度,若是,则表示第二传感器36及第三传感器37可清楚检测并取得操作位置影像。此时,则启动第二传感器15开始拍摄并检测取得第一操作位置影像及第二操作位置影像。当控制模块38判断第一传感器35检测到的环境亮度小于预设环境亮度时,即表示此时第二传感器36或第三传感器37所拍摄的影像可能会过暗而无法检测并取得第一操作位置影像或第二操作位置影像。因此,控制模块38即会开启第一光源模块33向多个第一按键313提供光源、开启第二光源模块34向多个第二按键323提供光源或同时开启第一光源模块33及第二光源模块34,以改善多个第一按键313及多个第二按键323区域的环境亮度。
藉此,上述结构可运用在左右分离式的实体键盘,并通过自动补光技术解决当环境光源不足,且应用在抬头显示设备、头戴显示设备或虚拟现实装置(VR)时,即使在未开灯光的黑暗环境中,使用者藉由本实施例的自动补光技术仍可利用实体键盘30输入数据。
在本实施例中,当第二传感器36及第三传感器37已启动并持续拍摄、检测并取得第一操作位置影像及第二操作位置影像后,控制模块38可得知第一操作位置影像是否包含手指与多个第一按键313的第一相对位置数据,以及第二操作位置影像是否包含手指与多个第二按键323的第二相对位置数据。此相对位置数据可由电算装置64a端分析后传回至控制模块38,详细可参阅后面关于图5的说明,虽然并非本实施例的装置,但原理大致相同。当第一操作位置影像及第二操作位置影像皆未包含手指与多个第一按键313的第一相对位置数据及手指与多个第二按键323的第二相对位置数据时,即代表用户已没有在继续操作实体键盘30,此时控制模块38关闭第二传感器36及第三传感器37,停止继续拍摄、检测并取得第一操作位置影像及第二操作位置影像。藉此,可在用户未操作实体键盘30,或持续一段时间未操作实体键盘30时主动关闭第二传感器36及第三传感器37,以节省电源。
另外,当第一光源模块33或第二光源模块34为启动状态,且第一传感器35检测到的环境亮度等于或大于预设环境亮度时,控制模块38关闭该第一光源模块33或第二光源模块34。意即,当第一光源模块33为启动状态、第二光源模块34为启动状态或第一光源模块33及第二光源模块34皆为启动状态,此时第一传感器35持续检测环境亮度,当第一传感器35检测到的环境亮度大于预设环境亮度时,控制模块38关闭第一光源模块33及第二光源模块34。在此,是当环境亮度已被改善,例如使用者打开室内灯光,第一传感器35检测到的环境亮度已大于预设环境亮度,即不需要第一光源模块33或第二光源模块34的光源进行辅助。此时,控制模块38主动关闭第一光源模块33及第二光源模块34,以节省电源。
接着请参阅图4,图4为本发明第四实施例实体键盘的示意图。本实施例中与第三实施例相同的元件及结构以相同的元件符号表示且不再赘述。本实施例与第三实施例不同之处在于,本实施例的实体键盘40的第一光源模块为多个第一光源模块43,且多个第一光源模块43是设置于第一基座311的第一容置空间312中,并位于多个第一按键313的下方,且可朝向多个第一按键313提供第一光源。且第二光源模块为多个第二光源模块44,且多个第二光源模块44是设置于第二基座321的第二容置空间322中,并位于多个第二按键323的下方,且可朝向多个第二按键323提供第二光源。
本实施例中多个第一光源模块43为多个设置于一个电路板432上并置于第一按键313下方的LED元件431。多个第二光源模块44为多个设置于一个电路板442上并置于第二按键323下方的LED元件441。在其他实施态样中,多个光源模块亦可为在每一个按键背面设置LED元件,或是于基座的容置空间的侧边设置多个LED元件,并配合导光板、反射片等元件,使光源由容置空间朝向按键方向射出。
另外,本实施例与第三实施例不同之处在于第一传感器45为二个,其中一个第一传感器45设置于第一基座311,且在本实施例中是与第二传感器36一起设置于第一固定座314。另一个第一传感器45则是设置于第二基座321。且在本实施例中是与第三传感器37一起设置于第二固定座324。
再者,第一键盘31及第二键盘32分别设置用来检测多个第一按键313及多个第二按键323的第一传感器45,可以针对第一键盘31及第二键盘32分别检测环境亮度,以各别得到各实体键盘的环境亮度值。如此,则可分别控制第一光源模块43及第二光源模块44的开启或关闭,以得到所需的环境亮度,而不用同时开启第一光源模块43及第二光源模块44,亦可达到节省电源的功效。
在本实施例中,当控制模块38判断位于第一基座311的第一传感器45检测到的环境亮度小于预设环境亮度时,控制模块38陆续开启多个第一光源模块43的至少一个,直到控制模块38判断第一传感器45检测到的环境亮度等于或大于预设环境亮度或是多个第一光源模块43全部开启。也就是说,当控制模块38判断现在环境亮度不足时,可先控制一个第一光源模块43开启(在此为控制一个LED元件431开启),以提供光源。接着,控制模块38持续接收并判断第一传感器45检测到的环境亮度,若仍不足,则再开启一个第一光源模块43(在此为控制一个LED元件431的开启)。一直到控制模块38判断第一传感器45检测到的环境亮度已等于或大于预设环境亮度,才停止再开启第一光源模块43。或者控制模块38陆续开启第一光源模块43直到所有的第一光源模块43皆已被开启。在此虽以一次开启一个LED元件431为举例说明,但在其他实施态样中,亦可将二个至多个LED元件431设定为一组,以一次开启二至多个LED元件431。
同样地,当控制模块38判断位于第二基座321的第一传感器45检测到的环境亮度小于预设环境亮度时,控制模块38陆续开启多个第二光源模块44的至少一个,直到控制模块38判断第一传感器45检测到的环境亮度等于或大于预设环境亮度或是多个第二光源模块44全部开启。也就是说,当控制模块38判断现在环境亮度不足时,可先控制一个第二光源模块44开启(在此为控制一个LED元件441开启),以提供光源。接着,控制模块38持续接收并判断第一传感器45检测到的环境亮度,若仍不足,则再开启一个第二光源模块44(在此为控制一个LED元件441的开启)。一直到控制模块38判断第一传感器45检测到的环境亮度已等于或大于预设环境亮度,才停止再开启第二光源模块44。或者控制模块38陆续开启第二光源模块44直到所有的第二光源模块44皆已被开启。在此虽以一次开启一个LED元件441为举例说明,但在其他实施态样中,亦可将二个至多个LED元件441设定为一组,以一次开启二至多个LED元件441。
藉此,可通过控制模块38进行判断,开启足够提供所需环境亮度的第一光源模块43或第二光源模块44即可,而不需要每一次在环境亮度不足时就一次开启所有的第一光源模块43或第二光源模块44。如此,在本实施例的实体键盘40可在需要时开启足够的第一光源模块43或第二光源模块44,又可达到节约省电的功效。
另外,由于本实施例有二个第一传感器45分别设置于第一基座311及第二基座321,而可分别检测多个第一按键313及第二按键323的环境亮度。因此,当第一光源模块43为启动状态,且位于第一基座311的第一传感器45检测到的环境亮度等于或大于预设环境亮度时,控制模块38关闭第一光源模块43。或是当第二光源模块44为启动状态,且位于第二基座321的第一传感器45检测到的环境亮度等于或大于预设环境亮度时,控制模块38关闭第二光源模块44。
意即,当第一光源模块43为启动状态、第二光源模块44为启动状态或第一光源模块43及第二光源模块44皆为启动状态,此时二个第一传感器45会持续检测第一键盘31及第二键盘32的环境亮度。并分别依据各第一传感器45检测到的环境亮度来关闭第一光源模块43或第二光源模块44。在此,是当环境亮度已被改善,例如使用者打开室内灯光,第一传感器45检测到的环境亮度已大于预设环境亮度,即不需要第一光源模块33或第二光源模块34的光源进行辅助。此时,控制模块38主动关闭第一光源模块43或第二光源模块44,以节省电源。
请参阅图5,图5为本发明第一实施例的实体键盘与对应电算装置的系统方块图。其中,控制模块16进一步包含微控制单元161(Micro Control Unit)、击键判断单元162及感应控制单元163。击键判断单元162电连接至对应于每一个按键12的接点(或称按键接点),用以检测接点因击键而由常开状态变化为通路状态,据以产生按键扫描码。微控制单元161通过键盘驱动程序(Keyboard Driver)将该按键扫描码储存至电算装置64a端的键盘缓冲区(Keyboard Buffer)的第二缓冲区62,并发送中断请求至电算装置64a的处理器66。接着,电算装置64a的处理器66响应中断请求,并自第二缓冲区62读取按键扫描码,而可得知哪一个按键12被击键,所谓的“击键”包含按键的按压(Key Down,产生Make Code)与释放(Key Up,产生Break Code)。以上属于本发明实体键盘击键的作动流程部分。
感应控制单元163电连接至第一传感器14、第二感应该15及光源模块13。前述的预设环境亮度储存于感应控制单元163,当第一传感器14检测到的环境亮度小于预设环境亮度时,由感应控制单元163开启光源模块13以提供光源,当检测到的环境亮度等于或大于预设环境亮度时,感应控制单元163启动第二传感器15开始检测取得操作位置影像。而第二传感器15检测并取得的操作位置影像,是由微控制单元161通过键盘驱动程序56储存至电算装置64a端的键盘缓冲区的第一缓冲区60,并发送中断请求至电算装置64a的处理器66,以便电算装置64a的处理器66响应中断请求,并自第一缓冲区60读取操作位置影像,接着,由电算装置64a端设置的影像分析模块58进行分析影像数据,以进一步转换成操作位置数据,在操作位置数据中包含被触摸或接近的该些按键12的相对位置数据,即用户的手指与按键12的相对位置数据。当操作位置影像因影像过暗而无法进行辨识分析时,影像分析模块通知微控制单元161,以便感应控制单元163开启光源模块13以提供光源或是加强光源。当操作位置数据不包含手指与按键12的相对位置数据时,影像分析模块58通知微控制单元161,以便感应控制单元163关闭第二传感器15,停止继续检测并取得操作位置影像。
上述缓冲区采用先进先出(FIFO,First-in First-out)的队列架构。在一些实施例中,操作位置影像储存至专属的第一缓冲区60后,不以发送中断请求的方式通知电算装置64a的处理器66,而是电算装置64a的处理器66以轮询(Polling)方式每隔一段时间自动读取专属储存操作位置影像的第一缓冲区60。同样地,按键扫描码储存至专属的二缓冲区62后,也可由电算装置64a的处理器66以轮询方式每隔一段时间自动读取专属储存按键扫描码的第二缓冲区62。
请参阅图6,图6为本发明第五实施例实体键盘与对应电算装置的系统方块图。本实施例的实体键盘50与第一实施例的实体键盘不同之处在于本实施例的实体键盘50不包括任何传感器,而其击键判断单元16的功能与作动流程如上述第一实施例所述,故不赘述。微控制单元161于此亦仅处理击键判断单元16所产生的按键扫描码,作动流程亦同上述第一实施例的作动流程。而电算装置64b与前述第一实施例电算装置64a的差异,主要在于电算装置64b设有第四传感器51,以及独立于键盘驱动程序56的键盘缓冲区的外的第三缓冲区63。第四传感器51用以检测并取得操作位置影像。在本实施例中,第四传感器51为摄像镜头,而第四传感器51检测并取得的操作位置影像即为拍摄到的手指与按键12影像,将操作位置影像储存至第三缓冲区63后,由影像分析模块58进行分析影像,以转换成操作位置数据,操作位置数据包括被被参考的该些按键12的相对位置数据,即用户的手指与该些按键12的一相对位置数据。第四传感器51可例如内建于笔记本电脑屏幕上方的摄像镜头,又例如HTC的虚拟现实装置Vive设于前端下方的摄像镜头,皆可用来拍摄实体键盘50的操作位置影像。
请参阅图7,图7为本发明第六实施例实体键盘与对应电算装置的系统方块图。本实施例的实体键盘50与第五实施例相同,不另赘述。而电算装置64c与第五实施例电算装置64b差异的处在于增设了第五传感器52及第三光源模块53,第五传感器52用以检测多个按键12的环境亮度是否充足,以使第四传感器51可检测并取得所需数据,于此第五传感器52为亮度传感器,或称环境光传感器。第三光源模块53可为一LED元件,且可发出可见光。在其他实施态样中,第三光源模块53亦可为发出红外线光的LED元件,本发明不以此为限。当处理器66接收并判断第五传感器52检测到的环境亮度等于或大于预设环境亮度时,即会启动使第四传感器51并接收使第四传感器51的操作位置影像。当处理器66判断第五传感器52检测到的环境亮度小于预设环境亮度时,处理器66开启第三光源模块53向多个按键12提供光源。
以下所述本发明键盘手势指令的产生方法及其计算机程序产品和非暂态计算机可读取媒体,即利用上述该些实施例的实体键盘10、20、30、40、50及电算装置64a、64b、64c据以实施。首先以第五实施例的实体键盘50及电算装置64b来说明下述的键盘手势指令的产生方法及其计算机程序产品。计算机程序产品除了包含前述键盘驱动程序56的外,还包含手势指令产生模块57,而可被处理器66加载而执行(如图6所示)。手势指令产生模块57包含指令条件定义表,用以判断由多笔操作位置数据所构成的手势事件对应为哪一个手势指令。换言的,手势指令产生模块57用以读取多笔操作位置数据,以识别出手势事件,而将此手势事件与分别包含多个指令条件的多个手势指令比对。若符合其中一个手势指令的所有指令条件,则产生该手势指令,以交由处理器66执行。
键盘手势指令用以操控电算装置64b上所执行的应用程序(Application),例如:关闭窗口、卷动窗口内容、放大/缩小窗口内容、旋转窗口内容…等。
手势指令产生模块57所读取的操作位置数据,是由影像分析模块58经由影像辨识分析操作位置影像后所产生。操作位置数据包括被参考的该些按键12的相对位置数据,即“用户的手指与该些按键12的相对位置数据”。所谓的“手指与该些按键12的相对位置数据”,亦即手指所触摸或接近但未碰触(例如手指以极近的距离悬浮在按键12上方)的按键12的相对位置数据。“被触摸(或接近但未碰触)的按键12”可称为“被利用的按键12”,或是“被参考的按键12”,因为键盘手势实际上在操作时并不需要碰触到实体键盘50的按键12,而手指触摸或接近按键12的目的在于利用实体按键12的位置做为手势辨识时位置的参考依据,以降低手势辨识时的误判问题。以下说明书中所称“被参考”的按键12,即是指使用者以手势操作时其手指所触模或接近的按键12。
在一些实施例中,指令条件包含:起始数量、移动方向、区域、起始位置、移动距离、有效时间以及特殊条件,各个条件均预设有定义值(或称条件值)以供手势指令产生模块57与当下取得的检测值比较。起始数量即“开始时被参考的按键12的数量”,因手势指令可定义单指手势操作与多指手势操作,故需区分起始的被参考的按键12的数量。在一些实施例中,指令条件的起始数量仅定义为“单指手势”与“多指手势”两种情况,故,手势指令产生模块57仅需判断单指或多指即可,例如:仅“按键J”的按键12被参考,则起始数量的检测值为“1”,符合单指条件;若“按键J”与“按键K”的按键12同时被参考,则起始数量的检测值为“2”,符合多指条件;若“按键J”、“按键K”与“按键L”的按键12同时被参考,则起始数量的检测值为“3”,亦符合多指条件。在一些实施例中,指令条件的起始数量可定义为“单指手势”、“双指手势”、“三指手势”…等多种情况,例如:仅“按键J”的按键12被参考,则起始数量的检测值为“1”,符合单指手势的条件;若“按键J”与“按键K”的按键12同时被参考,则起始数量的检测值为“2”,符合双指手势的条件;若“按键J”、“按键K”与“按键L”的按键12同时被参考,则起始数量的检测值为“3”,符合三指手势的条件,…以此类推。
移动方向即“手势操作时移动的方向”,是以第一个被参考按键12为原点(即,起始位置),再以邻近原点的“下一个被参考按键12”或“下两个被参考按键12”来判断移动方向。在一些实施例中,指令条件的移动方向定义以相邻的两个按键来判断,以QWERTY排列的键盘布局(Keyboard Layout)为例来说明(以下举例皆同此键盘布局,但本发明不限定于此),例如:“按键J”的按键12被参考,即“按键J”视为原点,紧接着,下一个被参考的为相邻的“按键K”的按键12,则手势指令产生模块取得检测值为“向右移动”。在一些实施例中,指令条件的移动方向定义以连续同方向且相邻的下两个按键12来判断,例如:“按键J”的按键12被参考,即“按键J”视为原点,紧接着,下一个被参考的为相邻的“按键K”的按键12被参考,此时手势指令产生模块57视第一段的检测值为“向右移动”,手势指令产生模块57继续追踪,再紧接着下一个被参考的为相邻的“按键L”的按键12,即第二段的检测值亦为“向右移动”,手势指令产生模块57必须等到连续滑到第三个按键12(即,三个按键12被参考),且中间的两段移动方向的检测值相同,最后才能断定其为“向右移动”。手势指令产生模块57所追踪的每一个手势事件,在符合比对条件时后即中止追踪,或者是,当超过预设的有效时间仍未移动至下一个按键(例如:预设有效时间为500毫秒),又或者是,发生击键操作(产生按键扫描码),以及,违反定义条件即中止追踪(例如:下一个被参考的按键12并未相邻前一个被参考的按键12,或,第二段的移动方向与第一段不同)。以上为单指移动判断方向的说明,当多指移动时的方向判断方式有两种可能,在一些实施例中,当多个按键同时被参考,在手指移动时手势指令产生模块57同时监控多个手势事件,当其中任一指的手势事件符合条件即可判断其移动方向,例如:假设指令条件的移动方向定义以连续同方向且相邻的下两个按键12来判断,当使用者以食指、中指与无名指分别同时触摸/接近“按键J”、“按键K”与“按键L”的按键12,手势指令产生模块视为三个原点,并且为三个手势事件,紧接着若“按键K”、“按键L”与“按键;”的按键12同时被参考,此时第一段移动方向的检测值为“向右”,继续追踪三个手势事件,再紧接着若只剩“按键L”与“按键;”的按键12同时被参考,有可能是食指在中途离开,也有可能是无名指中途离开,不管如何,第二段移动方向的检测值仍可视为“向右”,因为对手势指令产生模块而言,以“按键J”的按键12为原点的手势事件有符合“移动至连续同方向且相邻的下两个按键”,故断定为符合条件;在一些实施例中,当多个按键同时被参考,手势指令产生模块57将同方向的移动视为同一个手势事件但有多个原点,当手指从原点移动至相邻的下一个被参考的按键12时即可取得第一段移动方向的检测值,紧接着再移动至相邻的下一个被参考的按键12时即可取得第二段移动方向的检测值,若两段的检测值相同手势指令产生模块即可断定移动方向。
区域为“手势操作时在实体键盘50上的按键区”,以Windows的标准键盘为例来说明,区域的定义值包含:打字键区、功能键区、编辑键区、数字键区,以及全键盘(即,以上四区全部)。打字键区(Alphanumeric Keys)包含:数字键、英文字母键、移位键、符号键、空格键、退位键、大写锁定键、换行键(或称输入键)、控制键及转换键。功能键区(FunctionKeys)包含十二个功能键,位在实体键盘50的第一列。数字键区(Numeric Keys)包含:数字锁定键、数字键、运算符号键、换行键、小数点键,位在实体键盘50的最右端。编辑键区(Modifier Keys)包含:箭头键、插入键、删除键、归位键、结束键、跳离键、上一页键、下一页键。当某一指令的区域条件限制在某一特定区域时,即表示发生在该特定区域的手势事件才会被判断有效,例如:“关闭窗口操作指令”限定在数字键区才有效,若在打字键区操作即无效。划分区域以接收不同的手势指令可有效提升手势指令产生模块57监听手势事件的效率、减少指令误判,以及降低电算装置64b的硬件资源耗用(如处理器66的运算资源)。
起始位置是指原点(第一个被参考的按键12)是否需由指定的特定按键开始,例如:从数字键区的前三列、从打字键区的中间两排、从打字键区的两外侧,或是任意键。
移动距离即“同方向且连续被参考的按键12数量”,例如:大于等于(>=)三个按键。若移动距离的条件定义的太短(定义值太小),易造成手势指令产生模块57的误判,若移动距离的条件定义的太长(定义值太大),恐让使用者认为不易操作(例如:手指已滑动到区域的边缘但仍未达条件要求的距离)。
有效时间是指“滑过两个相邻按键12的最长间隔时间”,例如:当有效时间的预设定义值为500毫秒,当连续滑过两个相邻被参考的按键12的时间超过预设定义值时,即中止追踪手势事件。这里所谓的“滑过”是指手指“连续触摸”或是“连续接近”(不一定有碰触到按键12)相邻的按键12。在一些实施例中,有效时间可用两组具有不同相对位置数据的操作位置数据所产生的间隔时间来判断,同一组的操作位置数据是来自于同一张操作位置影像。假设影像分析模块58所分析得到的操作位置数据中,每隔300毫秒即得到一组具有不同的相对位置数据的操作位置数据,而有效时间的定义值若为500毫秒,则时间上连续的两组操作位置数据即是在有效时间内。
至于特殊条件是适用于较复杂的条件组合,例如:两组(即,两手各有一指以上)反向移动、两键向内拉近距离、两键向外扩张距离…等。
以下为一实施例指令条件定义表的部分内容,其中的定义值用以举例说明,而非用以限定本发明。请参照表一,为指令条件定义表。在“指令条件”字段中的所有条件皆须比对符合才能产生对应的手势指令,若条件的定义值为“无”或“任意键”则可略过比对;若条件的定义值为“横向”,表示所取得的检测值可“向左”或“向右”。在“执行”字段中的内容,即是产生对应的手势指令后,交由处理器66所执行的工作。其中,作用中窗口(ActiveWindow)即当下正在使用中的窗口,而窗口的内容即视图(View),例如:相片浏览程序的窗口内容是一张相片视图,若放大、缩小或旋转窗口内容,即表示放大、缩小或旋转该相片。
表一
以上表一的“内容放大指令”为例来说明其条件的定义值,此实施例内容放大指令的操作需要双手至少各一只手指,例如:左手食指与右手食指,故,起始数量>1;移动方向为横向,亦即被参考的按键12须在同一列上;有效区域限打字键区,但是不包含空格键该列,也就是说只有字母键的三列以及上方的数字键列共四列可操作;起始位置从中间的TY两排开始,也就是说起始按键须为“按键5”与“按键6”,或“按键T”与“按键Y”,或“按键G”与“按键H”,或是“按键B”与“按键N”,一共有四对可作为起始位置;移动距离>=3,亦即必须连续滑过相邻的三个按键才开始作动;有效时间<=500ms,亦即所有被参考的按键12的间隔时间须小于等于500ms;特殊条件是两键向外扩张距离,以“按键G”与“按键H”这一对按键来举例,第一步骤是左食指“按键G”、右食指“按键H”,第二步骤是左食指“按键F”、右食指“按键J”,第三步骤是左食指“按键D”、右食指“按键K”,第四步骤是左食指“按键S”、右食指“按键L”,当作用中窗口的内容为一张相片时,在第一步骤时相片大小不变,第二步骤时相片大小还是不变,到第三步骤时因满足移动距离的指令条件而将相片放大为原相片的25%,到第四步骤时继续将相片放大而放大为原相片的50%。以上举例的四个步骤为一气呵成的连续动作,滑过按键12的间隔时间皆不超出有效时间的定义值。若使用者欲继续放大相片,可在第四步骤之后,两手指继续向外扩张距离,或是从头开始,重复第一步骤到第四步骤的操作。
参阅图8,本发明一实施例手势指令产生的操作流程图,其说明手势指令产生模块57在加载指令条件后,读取操作位置数据并连续比较预设定义值的操作流程,包含:
步骤S101:加载指令条件定义表。手势指令产生模块57包含指令条件定义表,而可将指令条件定义表加载(Load)至电算装置64b的内存中。
步骤S102:读取操作位置数据。手势指令产生模块57所读取的操作位置数据,是由影像分析模块58经由影像辨识分析操作位置影像后所产生。操作位置数据包括被触摸或接近的该些按键12的相对位置数据,即“用户的手指与该些按键12的相对位置数据”。详细步骤说明参见图21的步骤S202至步骤S204。
步骤S103:是否移动。手势指令产生模块57依据已读取的操作位置数据判断手指是否移动,以决定是否进行一个新手势事件的连续比对。由操作位置影像经影像辨识分析后所转换成的操作位置数据可包含从零至多个被参考的按键12,而利用“时间上连续的两张操作位置影像”转换出来的操作位置数据即可比对出手指是否有移动。手势指令产生模块57依据被参考的按键12其相对位置以及时间上的先后顺序来判断手指是否在有效时间内连续滑过相邻的两个按键,若“在有效时间内连续滑过相邻的两个按键12”即视为其具有关联,亦可说成“时间上连续的两组操作位置数据有滑过相邻的两个按键12”,除了该两组操作位置数据,另外包含其后连续的数组操作位置数据皆暂时视为“具有关联”,具有关联的多个连续操作位置数据被视为一个新的手势事件。换言之,手势指令产生模块57根据多个连续的操作位置数据识别一手势事件。此时开始追踪该手势事件,所谓的追踪即取得“该些具有关联的操作位置数据”的多个检测值,用以连续比对各条件的定义值。若手指未移动跳回前一步骤S102以再次读取新的操作位置数据,若手指有移动,则至步骤S104。
步骤S104:手势事件的指令条件比对。在前一步骤当手势指令产生模块57判断手指有移动时,开始一个新手势事件的连续比对,比对前先取得手势事件的多个检测值以便与指令条件的各定义值比较。例如:当“多组连续的操作位置数据”为一个新的手势事件时,第一组操作位置数据其中被参考的按键12的所属区域若为打字键区,则该手势事件的区域检测值为“打字键区”,而第一组操作位置数据其中被参考的按键12即为起始位置,第一组操作位置数据其中被参考的按键12数量若为一个,则该手势事件的起始数量检测值即为“1”…等等。
步骤S105:是否符合区域。手势指令产生模块57以区域的检测值与定义值比较,以缩小比对范围,例如:当该手势事件的区域检测值为“打字键区”,之后的比对工作即可略过仅允许发生在数字键区、功能键区和编辑键区的手势指令,而只比对允许发生在打字键区的手势指令。若不符合即跳至步骤S115。若符合则跳至步骤S106。
步骤S106:是否符合起始位置。手势指令产生模块57以该手势事件的起始位置检测值与定义值比较。若不符合即跳至步骤S115。若符合则跳至步骤S107。
步骤S107:是否符合移动方向。手势指令产生模块57以该手势事件的移动方向检测值与定义值比较。若不符合即跳至步骤S115。若符合则跳至步骤S108。
步骤S108:是否符合起始数量。手势指令产生模块57以该手势事件的起始数量检测值与定义值比较。若不符合即跳至步骤S115。若符合则跳至步骤S109。
步骤S109:是否符合移动距离。手势指令产生模块57以该手势事件的移动距离检测值与定义值比较。若不符合即跳至步骤S115。若符合则跳至步骤S110。
步骤S110:是否符合特殊条件。手势指令产生模块57以该手势事件的特殊条件检测值与定义值比较。若不符合即跳至步骤S115。若符合则跳至步骤S111。
步骤S111:是否在有效时间内。在一些实施例中,操作位置数据产生的间隔时间即在有效时间内,故,手势指令产生模块57仅需检核该手势事件其中包含的操作位置数据是否为时间上连续的数据,即可确认是否在有效时间内。若不符合即跳至步骤S115。若符合则跳至步骤S112。
步骤S112:是否有按键扫描码。手势指令产生模块57检查第二缓冲区62,若有按键扫描码,即跳至步骤S115。若无按键扫描码则至步骤S113。当手势指令产生模块57在追踪手势事件的同时,若发生击键操作(产生按键扫描码),表示操作位置数据中手指触摸/接近按键12的目的并不是要以手势进行操作,而是要键入数据,故中止追踪手势事件。
步骤S113:产生手势指令。当上述步骤S105至步骤S112所进行的条件比对皆为符合时,手势指令产生模块57即产生手势指令。
步骤S114:处理器66执行手势指令。当产生手势指令后,手势指令产生模块57即把该手势指令交由处理器66执行。
步骤S115:中止手势事件的比对,即,停止该手势事件的追踪。
以上为一实施例手势指令产生的操作流程,其中条件比对的步骤在其他不同的实施例中可有不同的先后顺序,在其他不同的实施例中亦可有不同的指令条件用以比对,本发明并未限定比对流程的先后顺序及指令条件需如上述。
在一些实施例中,计算机程序产品另外包含一屏幕虚拟键盘(On-Screen VirtualKeyboard)又称为屏幕键盘(On-Screen Keyboard,英文简称OSK),微软Windows操作系统中称为“屏幕小键盘”。本实施例中的屏幕键盘为一种计算机程序安装于电算装置64b并由处理器66执行,用以显示一键盘布局、第一按键标记、第二按键标记以及手势操作轨迹。
参阅图9至图13,本发明第七实施例屏幕键盘68a的示意图。本实施例的屏幕键盘68a的显示,是应用第五实施例中的电算装置64b及实体键盘50进行说明。图9说明了本实施例屏幕键盘68a显示于电算装置64b内置或外接的屏幕76a,屏幕键盘68a执行后是位于操作系统桌面70的最顶层(即,视图属性设为“Topmost”),亦即,即使其他应用程序的窗口显示在屏幕键盘68a的同一位置,仍不会盖过屏幕键盘68a的显示。屏幕键盘68a的键盘布局(Keyboard Layout)对应实体键盘50(如图11所示)的布局而绘制,以避免与实际按键位置差异过大,让使用者不适应。屏幕键盘68a为计算机程序产品(Computer Program Product)的一部分。而作用中窗口78为一第三方应用程序,于此以一记事本为例。
图10为屏幕键盘68a的放大示意图,其说明了当使用者手指触摸或“接近但未碰触”实体键盘50的按键12时,第四传感器51检测并取得操作位置影像,操作位置影像即为拍摄到的手指与按键12影像,影像分析模块58进行分析操作位置影像后转换成操作位置数据,操作位置数据包括被触摸或接近的该些按键12的相对位置数据,即用户的手指与该些按键12的相对位置数据,处理器66再根据操作位置数据以转换成对应的第一按键标记72,以便于屏幕键盘68a中显示对应被参考的按键12的第一按键标记72,于此,第一按键标记72的标示位置包含:“按键a”、“按键s”、“按键d”、“按键f”、“按键j”、“按键k”、“按键l”、“按键;”及“空格键”。图11对应图10,图11说明了用户手指触摸实体键盘50上的“按键A”、“按键S”、“按键D”、“按键F”、“按键J”、“按键K”、“按键L”、“按键;”及“空格键”的按键12。当用户手指触摸或接近按键12而未击键时,此时手指的所在位置可称为“手指待命位置”(FingerStandby Position)或“手指准备位置”(Finger Ready Position)。
图12说明了屏幕键盘68a上的“按键j”同时标示有第一按键标记72与第二按键标记74,亦即,用户手指触摸或接近实体键盘50上的“按键A”、“按键S”、“按键D”、“按键F”、“按键J”、“按键K”、“按键L”、“按键;”及“空格键”的按键12,同时亦按下了“按键J”的按键12。换句话说,“按键J”的按键12不仅产生被参考的操作位置数据,同时,亦被击键而产生按键扫描码(属Make Code)。此情况发生在“按键J”的按键12被按压下(产生Make Code),但是尚未释放“按键J”的按键12(尚未产生Break Code),在正常速度打字时,第二按键标记74于屏幕键盘68a上的存在时间(或称显示时间)相当的短,通常不到一秒钟的时间,甚至低于十分的一秒,对人眼视觉来说算是“一闪而过”。
理论上,手指一定是先触摸到按键12,接着才能按下按键12,若是以稍快的速度打字时,并且于按压每一个按键的空档时手指都不触摸按键12的话,同一按键的操作位置数据与按键扫描码(属Make Code)“几乎”同时产生(两者的间仍会有时间差,但差距是以毫秒计算),亦即,同一按键的第一按键标记72与第二按键标记74会“几乎”同时显示(因肉眼不易察觉时间差,故,感觉是同时)于屏幕键盘68a。然而,多数人(尤其是以双手及正确指法打字的人)打字时,在未击键前(例如正在思考要用何字),习惯将手指放在“初始按键位置”(Home Keys,或称Home Row,即如图11手指所触摸的按键12)上,或是将手指放在“欲按压的”按键12上,接着,才按压按键12。也就是说,某些时候同一按键的第一按键标记72会明显比第二按键标记74较早显示于屏幕键盘68a。除了少数几个锁定按键(例如锁定键类型的“大写锁定键”、“数字锁定键”及“卷动锁定键”,或编辑键类型的“插入键”)的第二按键标记74可能会单独显示于屏幕键盘68a而未与第一按键标记72并存,其他按键的击键(指产生Make Code)一定是先显示第一按键标记72再显示第二按键标记74,或者,两者几乎同时显示于屏幕键盘68a,而不会发生第二按键标记74单独显示而无第一按键标记72。人眼在视觉上可明显分辨两个重叠标记与单独一个标记的不同(以图13为例),仅管第二按键标记74只是一闪而过,单独存在的第二按键标记74(如图13上方)明显与重叠的两个标记(如图13下方)不同,尤其当两种不同颜色的标记重叠显示且上层标记具有不完全透明的透明度时会混合出第三种颜色的视觉效果,肉眼可明显区别此第三种颜色与两标记颜色的不同。因此,“第二按键标记74不会单独显示”这一点可做为一种视觉上的检核机制,当某一按键的第二按键标记74单独显示于屏幕键盘68a即代表“错误发生”(例如摄像镜头所拍的操作位置影像不清,导致影像分析模块58误判),可提醒使用者注意。在一些实施例中,屏幕键盘68a具有自动修正机制,当某一按键的第二按键标记74单独显示于屏幕键盘68a上时,处理器66计算误判位置与实际位置两者间的误差值。再将此误差值反馈给影像分析模块58及/或处理器66,以便修正下一次的操作位置数据,降低误判发生的机率。
在此实际位置即是指单独显示的第二按键标记74,也就是因为实体键盘50上的按键12被击键时,所产生的与第二按键标记74。由于此第二按键标记74是因为真的有接收到按键12被击键,所以应为正确的标记。判误位置是指邻近的第一按键标记72,且于击键时未与第二按键标记74重叠显示的第一按键标记72。由于如前所述,当取得的数据皆正确时,第一按键标记72(手指触摸按键位置)应该会与第二按键标记74(被击键的按键12)有所重叠。因此,当按键12已被击键,而应该要显示有重叠的第一按键标记72与第二按键标记74的按键,在屏幕键盘68a中只显示第二按键标记74时,则有可能是因为分析得到的操作位置数据有所误差,使得第一按键标记72标示于错误位置,此时,被标记错误的第一按键标记72的位置即被定义为判误位置。
由于第二按键标记74只是一闪而过,在一些实施例中,屏幕键盘68a仅标示出第一按键标记72,以显示手指待命位置,而无第二按键标记74,屏幕键盘68a直接略过按键扫描码的处理,如图10所示。
图13为图12中屏幕键盘68a上“按键j”的放大示意图,以说明“按键j”上的两种标记,上方的第二按键标记74以反白标示(Highlight),于此为方形、黑底、白字的态样,而中间的第一按键标记72以不同形状的彩色半透明标示,于此为圆形、浅灰。下方的重叠标记图式即为图12中“按键j”的放大示意图。为明显区别第一按键标记72与第二按键标记74,在一些实施例中,第一按键标记72与第二按键标记74采用不同的形状来标示,例如:圆形与方形、方形与三角形、圆形与星形…等等组合。在一些实施例中,第一按键标记72与第二按键标记74采用不同的颜色来标示,例如:黄色与绿色、红色与蓝色、黑色与黄色、浅灰与红色…等等组合。在一些实施例中,第一按键标记72与第二按键标记74采用不同的形状以及不同的颜色来标示。在一些实施例中,标示在上层的标记为以稍微透明的方式呈现,以让位在下层的标记得以被看见,例如:若第一按键标记72位在上层而第二按键标记74位于下层,则第一按键标记72以50%的透明度呈现。也就是说,位于上层的第一按键标记72或第二按键标记74具有不完全透明的透明度。在一些实施例中,若同一按键12被触摸及击键可另外以不同形状、颜色等有别于第一按键标记72与第二按键标记74的第三按键标记来标记。
图14为用户手指触摸或接近实体键盘50上的“Shift按键”、“按键S”、“按键D”、“按键F”、“按键J”、“按键K”、“按键L”、“按键;”及“空格键”的按键12(产生操作位置影像),同时按压“Shift按键”及“按键J”的按键12(产生按键扫描码,属Make Code)时,在屏幕键盘68a上所显示的标记。此图式说明了当“Shift按键”的按键12被按下而产生按键扫描码后,屏幕键盘68a上的按键代表标记亦随的更换,即,字母键由原本小写的按键代表标记换成大写的按键代表标记,同时具有两个按键代表标记的按键(例如数字键及符号键)则由原本的下方按键代表标记换成上方的按键代表标记,举例来说:数字键的“按键1”同时具有两个按键代表标记,分别是上方的“!”与下方的“1”,而符号键的“按键/”同时具有两个按键代表标记,分别是上方的“?”与下方的“/”。在未按下“Shift按键”时显示下方的“1”及“/”(如图12所示),而当按下“Shift按键”后则显示上方的“!”及“?”(如图14所示)。
图15为用户于实体键盘50上已击键“大写锁定键”的按键12(产生按键扫描码,包含Make Code与Break Code,即,已释放按键12),同时触摸了(或接近)实体键盘50上的“按键A”、“按键S”、“按键D”、“按键F”、“按键J”、“按键K”、“按键L”、“按键;”及“空格键”的按键12,并且按压下“按键J”的按键12(产生按键扫描码,Make Code),此时在屏幕键盘68a上所显示的标记。此图说明了当“大写锁定键”的按键12产生按键扫描码后,屏幕键盘68a上的字母键由原本小写的按键代表标记换成大写的按键代表标记。
以上两图主要说明“Shift按键”与“大写锁定键”的按键扫描码可使屏幕键盘68a更换部分按键代表标记。同样的,“数字锁定键”亦可使屏幕键盘68a更换部分按键代表标记。亦即,屏幕键盘68a不仅仅只有显示第一按键标记72与第二按键标记74的功能,亦包含与按键扫描码互动的功能。
参阅图16至图18,本发明第八实施例屏幕键盘68b的示意图。本实施例的显示屏幕为虚拟现实装置的屏幕76b、76c,而屏幕76b、76c为双酒桶形(如图16所示)或双圆形(如图17所示),当用户将虚拟现实装置戴于头上后,其眼睛所见的画面即如图18所示。在一些实施例中,虚拟现实装置本身即为具有屏幕76b、76c的电算装置64b,例如Samsung的Gear VR利用智能型手机做为电算装置64b,在运行本发明时,即于该智能型手机安装屏幕键盘68b及键盘驱动程序56。在一些实施例中,虚拟现实装置提供屏幕76b、76c显示画面,另需通讯连接一电算装置64b以安装软件及提供硬件运算资源,例如HTC的Vive利用个人计算机做电算装置64b,在运行本发明时,即于该个人计算机安装屏幕键盘68b及键盘驱动程序56。于此,屏幕键盘68b以稍微透明的方式呈现键盘布局,以便用户在使用屏幕键盘68b时仍看见背景画面(虚拟现实画面)。若使用者不擅于盲打,且当用户无法直视实体键盘50时(例如头上戴有虚拟现实装置),利用屏幕键盘68b即可清楚得知当下用户的手指待命位置(通过第一按键标记72),以及击键的按键为何者(通过第二按键标记74),可协助用户轻松键入数据。
参阅图19,本发明第九实施例屏幕键盘68c的示意图,图式与第七实施例及第八实施例不同之处在于其为对应Mac实体键盘(未描绘)的键盘布局。屏幕键盘68c显示第一按键标记72与第二按键标记74,以及与按键扫描码互动更换部分按键代表标记的方法与前述实施例相同,故不赘述。
参阅图20,本发明第十实施例屏幕键盘68d的示意图。本实施例与第七实施例不同的处在于屏幕键盘68d的键盘布局分为左、右两部分,亦即,本实施例对应左、右分离式的实体键盘(未描绘)。至于本实施例的第一按键标记72与第二按键标记74的标示与前述实施例相同,故不赘述。于此,对应的实体键盘为105键(即,标准Windows 104键再加上重复的一个空格键)。在一些实施例中,实体键盘的键盘布局为“80%配置”(即,少了最右边的数字键区)具有88键,而其对应的左、右分离式屏幕键盘(未描绘)的键盘布局亦为“80%配置”。在一些其他实施例中,实体键盘的键盘布局可为“75%配置”或“80%配置”的左、右分离式键盘,亦或是Mac的左、右分离式键盘,其对应的屏幕键盘即与实体键盘采相同的键盘布局。
参阅图21,本发明一实施例用户操作过程中在屏幕键盘68a标示第一按键标记72与第二按键标记74的流程图,其说明使用者利用第五实施例的电算装置64b与实体键盘50产生操作位置影像及按键扫描码,并产生对应的第一按键标记72与第二按键标记74于屏幕键盘68a的操作流程,包含:
步骤S201:手指触摸或接近按键。用户手指触摸或接近实体键盘50的按键12,但未击键,如图11所示,于此被参考的按键12为“按键A”、“按键S”、“按键D”、“按键F”、“按键J”、“按键K”、“按键L”、“按键;”及“空格键”。
步骤S202:产生操作位置影像。前一步骤当手指触摸或接近实体键盘50的按键12时,第四传感器51检测并取得操作位置影像,操作位置影像系实体键盘50上的手指与按键12影像。
步骤S203:储存操作位置影像至第三缓冲区63。前一步骤当第四传感器51产生操作位置影像,处理器66将该操作位置影像储存至第三缓冲区63。
步骤S204:影像分析模块58分析操作位置影像。前一步骤当储存操作位置影像至第三缓冲区63后,有两种实施例使处理器66自第三缓冲区63读取操作位置影像。一实施例为第四传感器51发送中断请求至电算装置64b的处理器66,接着,电算装置64b的处理器66响应中断请求自第三缓冲区63读取操作位置影像;另一实施例为电算装置64b的处理器66以轮询方式每隔一段时间自动读取第三缓冲区63的操作位置影像。亦即,读取操作位置影像的动作可通过中断或轮询方式来触发。处理器66读取操作位置影像后,影像分析模块58分析操作位置影像,以将操作位置影像转换成操作位置数据,操作位置数据包括被触摸或接近的该些按键12的相对位置数据,即用户的手指与该些按键12的相对位置数据。
步骤S205:在屏幕键盘68a对应操作位置数据的按键处显示第一按键标记72。前一步骤当影像分析模块58将操作位置影像转换成操作位置数据后,处理器66再根据操作位置数据以转换成对应的第一按键标记72,即,在屏幕键盘68a上对应被参考的按键12的位置显示第一按键标记72。于此,对应操作位置影像的位置为:“按键a”、“按键s”、“按键d”、“按键f”、“按键j”、“按键k”、“按键l”、“按键;”及“空格键”,如图10所示。其中,屏幕键盘68a显示于显示画面最顶层(即,视图属性设为“Topmost”)。一般而言,屏幕键盘68a是在读取到操作位置数据或按键扫描码后才显示,但显示之后一般会在一空闲时间之后才消失。因此,在某些情况下,即使没有读取到操作位置数据或按键扫描码,屏幕键盘68a仍是显示的状态,直至经过空闲时间之后才消失(若期间没有读取到操作位置数据或按键扫描码)。在一些实施例中,屏幕键盘68a也可以是在应用程序执行时即显示,并保持显示状态,直到用户将应用程序结束才消失。在一些实施例中,屏幕键盘68a在应用程序执行时不会立刻显示,是由用户控制其显示与消失。
步骤S206:判断手指是否离开按键。影像分析模块58根据操作位置数据可判断出手指是否离开已被参考的按键12。意即,若所分析出的操作位置数据中,仅包含按键而未包含手指与按键的相对位置数据,则表示手指已离开原被参考的按键12。若某一手指离开已被参考的按键12(即,在前一步骤中已产生第一按键标记72的对应按键12),跳至步骤S207,若手指仍未离开被参考的按键12则跳至步骤S208。
步骤S207:在屏幕键盘68a取消显示第一按键标记72。当影像分析模块58判断出某一手指离开“已产生第一按键标记72的对应按键12”时,屏幕键盘68a取消显示对应的第一按键标记72。
步骤S208:手指击键。当手指击键(按压按键12)时,被击键的按键12其按键接点因击键而由常开状态变化为通路状态。
步骤S209:产生按键扫描码。当击键判断单元162检测到某一按键12的按键接点由常开状态变化为通路状态时,产生按键扫描码(此为按压按键12的按键扫描码)。于此,以“按键J”被击键为例,击键判断单元162产生“按键J”的按键扫描码(属Make Code)。
步骤S210:储存按键扫描码至第二缓冲区62。前一步骤当击键判断单元162产生按键扫描码(Make Code)后,微控制单元161可将其传送出去以让电算装置64b接收,电算装置64b便通过键盘驱动程序56将该“按键J”的按键扫描码(Make Code)储存至电算装置64b的第二缓冲区62。
步骤S211:处理器66读取按键扫描码。前一步骤当微控制单元161将按键扫描码(Make Code)储存至第二缓冲区62后,有两种实施例使处理器66自第二缓冲区62读取按键扫描码,一实施例为微控制单元161发送中断请求至电算装置64b的处理器66,接着,电算装置64b的处理器66响应中断请求自第二缓冲区62读取按键扫描码;另一实施例为电算装置64b的处理器66以轮询方式每隔一段时间自动读取第二缓冲区62的按键扫描码。亦即,读取按键扫描码的动作可通过中断或轮询方式来触发。
步骤S212:在屏幕键盘68a对应按键扫描码的按键处显示第二按键标记74。前一步骤当处理器66读取按键扫描码(Make Code)后,处理器66会根据按键扫描码,在屏幕键盘68a上对应被击键的按键12的按键处显示第二按键标记74,于此,对应按键扫描码的位置为“按键j”。显示第二按键标记74后,连同原本已显示的第一按键标记72,即如图12所示。
步骤S213:在屏幕键盘68a取消显示对应的第二按键标记74。当击键判断单元162检测到已被按压的按键12的按键接点由通路状态变化为开路状态时,产生按键扫描码(此为释放按键12的按键扫描码)。于此,以“按键J”被释放为例,击键判断单元162产生“按键J”的按键扫描码(属Break Code)。释放按键12后,电算装置64b通过键盘驱动程序56将该“按键J”的按键扫描码(Break Code)储存至第二缓冲区62,接着,处理器66读取“按键J”的按键扫描码(Break Code),最后,依据“按键J”的按键扫描码(Break Code)在屏幕键盘68a取消显示对应的第二按键标记74,如图10所示(假设用户在释放“按键J”后手指仍触摸或接近“按键J”的按键12)。特别是,处理器66可另外确认击键的按键属于如字母、数字的一般按键,或是如前述“Shift按键”等锁定按键,若已收到对应被释放的按键12的按键扫描码且此按键12非属于锁定按键,则取消显示对应的第二按键标记74。反之,若已收到对应被释放的按键12的按键扫描码且此按键12属于锁定按键,则保持显示对应的第二按键标记74。直到下次收到同样按键12对应击键的第二按键标记74,才取消显示第二按键标记74。
以上为本发明一实施例屏幕键盘68a标示第一按键标记72与第二按键标记74的方法。本发明更进一步,在一些实施例中,在步骤S207之后,假设使用者手指已完全离开所有按键12一空闲时间,即在此空闲时间内电算装置64b的处理器66不会检测(即读取)到包括使用者的手指与该些按键12的相对数据的该操作位置数据及该按键扫描码,屏幕键盘68a即自动隐藏(不显示于屏幕76a),反之,若原本屏幕键盘68a未显示于屏幕76a,当用户手指触摸任一按键12后,屏幕键盘68a即自动显示于屏幕76a。此实施例用意在于用户不需利用键盘操作/键入数据时,隐藏屏幕键盘68a以避免占用操作系统桌面70,好让用户利用其他操控装置操作其他应用程序,例如以鼠标或轨迹球操作网页浏览器以查看网页数据,或是以游戏杆玩计算机游戏。
上述屏幕键盘68a、68b、68c、68d上的第一按键标记72除了用以代表静态的手指待命位置,在一些实施例中,另外用以代表动态的手势操作轨迹,所谓的“手势操作轨迹”其实就是手指在实体键盘50上一个手势事件的操作轨迹。
参阅图22,本发明一实施例屏幕键盘68a与手势操作轨迹的示意图,图式上方的屏幕键盘68a与下方实体键盘50两者未依实际比例绘制。其说明了,当用户在实体键盘50下达一个手势指令,于此为“窗口缩小指令”(请对照前述实施例指令条件定义表),用户在数字键区的前三列,以单指向下滑动(仅触摸而未击键),手势指令产生模块最后产生窗口缩小指令并交由处理器66执行(中间的详细流程如前所述,不另赘述),以将作用中窗口78缩小,其时,屏幕键盘68a所呈现对应的第一按键标记72即代表了“窗口缩小指令”此手势事件的手势操作轨迹。
以上的手势指令的产生方法以及屏幕键盘68a的显示方法与计算机程序产品以第五实施例的实体键盘50及电算装置64b为例说明,其中检测并取得操作位置影像的第四传感器51为一摄像镜头。当利用第一实施例实体键盘10或第二实施例实体键盘20与电算装置64a来实施以上的方法与计算机程序产品时,其中检测并取得操作位置影像的为第二传感器15。当利用第三实施例实体键盘30或第四实施例实体键盘40与电算装置64a来实施以上的方法与计算机程序产品时,其中检测并取得操作位置影像的为第二传感器36与第三传感器37。当利用第六实施例实体键盘50与电算装置64c来实施以上的方法与计算机程序产品时,其中检测并取得操作位置影像的为第四传感器51。
本发明的计算机程序产品可包含屏幕键盘68a、键盘驱动程序56、手势指令产生模块57、函式库(Library,未描绘)及/或应用程序开发接口(Application ProgrammingInterfaces,APIs,未描绘),后两者可利用上述图8及/或图21的操作流程的部分或全部步骤,封装成函式库或应用程序开发接口,以便程序代码的再利用。而上述计算机程序产品可储存至一种计算机可读取记录媒体,例如:CD、DVD、USB随身碟、记忆卡…或其他各种规格的记录媒体,而可由计算机(即前述的电算装置64b)加载执行。
对本发明的不同实施例可理解的是,由电算装置执行的程序指令可实行流程图中的各个方块、流程图中方块的组合、以及各实施例中的步骤。把该等程序指令提供给一处理器操作以产生一机器或产生硬件与软件协同运作的资源,藉此在该处理器上执行该等指令时,将产生用以实行流程图方块指明的动作或技术效果的构件。不同集合的程序指令亦可使展示于流程图方块中的至少某些操作步骤并行地进行,且一应用程序的各个程序指令所表达的技术内容可能依不同实施例而不同。再者,亦可在不只一个处理器上进行某些该等步骤,例如行动通讯装置中微处理器与周边接口处理器所协同运作的状况。此外,在不偏离本发明范围或精神的条件下,流程图中的一或多个方块或方块的组合亦可与其他方块或方块组合同时地进行,或甚至以不同于展示出的顺序来进行。
因此,本发明流程图的方块支持用以进行指明动作或技术效果的构件组合、用以进行指明动作或技术效果的步骤组合、以及用以进行指明动作或技术效果的程序指令构件。亦将可了解的是,这些指明动作或技术效果是由特殊用途硬件式系统或者特殊用途硬件与程序指令协同运作来实行本发明流程图的各个方块以及流程图的方块组合。
综上所述,本发明的键盘手势指令由于参考了实体键盘上的按键位置做为手势比对的依据,可降低手势辨识时的误判问题,进而改善使用者体验(UserExperience),以满足用户利用实体键盘的手势指令操作系统的需求。
虽然本发明以前述的实施例公开如上,然其并非用以限定本发明,任何熟习相像技术者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的专利保护范围须视本说明书所附的申请专利范围所界定者为准。

Claims (8)

1.一种键盘手势指令的产生方法,应用于相互连接的一实体键盘、一屏幕、一传感器及一电算装置,该实体键盘包含多个按键,该传感器用以检测并取得一操作位置影像,其特征在于,该键盘手势指令的产生方法包括:
加载一指令条件定义表,该指令条件定义表包含多个手势指令,每个该手势指令包含多个指令条件及对应的一定义值;
读取该传感器取得的该操作位置影像;
将该操作位置影像转换为一操作位置数据,该操作位置数据包括被参考的该按键的一相对位置数据;
根据多组连续的该操作位置数据识别一手势事件;
取得该手势事件的多个检测值并与该些定义值比对;
若该些检测值与其中一个该手势指令的所有该些指令条件的该定义值相符,停止该手势事件的追踪;及
执行相符的该手势指令。
2.如权利要求1所述键盘手势指令的产生方法,其特征在于,该传感器为一摄像镜头。
3.如权利要求1所述键盘手势指令的产生方法,其特征在于,该实体键盘还响应该些按键的击键而输出一按键扫描码至该电算装置,该键盘手势指令的产生方法更包含:
读取该实体键盘输出对应该按键被击键的该按键扫描码;及
若读取到该按键扫描码,中止比对该手势事件。
4.如权利要求1所述键盘手势指令的产生方法,其特征在于,该些指令条件的其中之一为该实体键盘的一区域,该区域的该定义值为一打字键区、一功能键区、一数字键区、一编辑键区或一全键盘。
5.如权利要求1所述键盘手势指令的产生方法,其特征在于,该屏幕显示有一屏幕键盘,该键盘手势指令的产生方法更包含:
显示一第一按键标记于该屏幕的该屏幕键盘的对应该被参考的该按键的位置。
6.如权利要求1所述键盘手势指令的产生方法,其特征在于,该些手势指令中至少包含一水平卷动指令、一垂直滚动指令、一切换程序指令、一关闭程序指令、一窗口缩小指令、一窗口放大指令、一内容放大指令、一内容缩小指令或一旋转指令;
其中该水平卷动指令是使该屏幕显示的一作用中窗口的一水平滚动条依该手势指令的一移动方向进行卷动,该垂直滚动指令是使该作用中窗口的一垂直滚动条依该手势指令的该移动方向进行卷动,该切换程序指令是使一执行中程序切换成该作用中窗口,该关闭程序指令是使该作用中窗口关闭,该窗口缩小指令是使该作用中窗口最小化,该窗口放大指令是使该作用中窗口最大化,该内容放大指令是使该作用中窗口的一内容放大,该内容缩小指令是使该作用中窗口的该内容放大,该旋转指令是使该作用中窗口的该内容依该手势指令的该移动方向进行顺时针或逆时针旋转。
7.一种计算机程序产品,适于储存于一计算机可读取媒体,其特征在于,当一计算机加载该计算机程序并执行后,可完成如权利要求1至6中任一项所述的键盘手势指令的产生方法。
8.一种非暂态计算机可读取媒体,储存一计算机程序,其特征在于,该计算机程序包含计算机可执行的多个指令,用以执行如权利要求1至6中任一项所述的键盘手势指令的产生方法。
CN201710208144.XA 2016-04-29 2017-03-31 键盘手势指令的产生方法与计算机程序产品 Pending CN107402707A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
TW105113622 2016-04-29
TW105113622A TWI695297B (zh) 2016-04-29 2016-04-29 鍵盤手勢指令之產生方法及其電腦程式產品與非暫態電腦可讀取媒體

Publications (1)

Publication Number Publication Date
CN107402707A true CN107402707A (zh) 2017-11-28

Family

ID=60157895

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710208144.XA Pending CN107402707A (zh) 2016-04-29 2017-03-31 键盘手势指令的产生方法与计算机程序产品

Country Status (3)

Country Link
US (1) US10365726B2 (zh)
CN (1) CN107402707A (zh)
TW (1) TWI695297B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI698773B (zh) * 2016-04-29 2020-07-11 姚秉洋 螢幕鍵盤之顯示方法及其電腦程式產品與非暫態電腦可讀取媒體
CN108064372A (zh) * 2016-12-24 2018-05-22 深圳市柔宇科技有限公司 头戴式显示设备及其内容输入方法
US10394342B2 (en) * 2017-09-27 2019-08-27 Facebook Technologies, Llc Apparatuses, systems, and methods for representing user interactions with real-world input devices in a virtual space
USD920976S1 (en) * 2018-02-13 2021-06-01 Kye Systems Corp. Keyboard
USD914681S1 (en) * 2018-02-13 2021-03-30 Kye Systems Corp. Keyboard
USD881190S1 (en) * 2018-06-05 2020-04-14 Razer (Asia-Pacific) Pte. Ltd. Keyboard
USD890755S1 (en) * 2018-06-05 2020-07-21 Razer (Asia-Pacific) Pte. Ltd. Keyboard
USD882571S1 (en) * 2018-06-05 2020-04-28 Razer (Asia-Pacific) Pte. Ltd. Keyboard

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110006991A1 (en) * 2009-07-08 2011-01-13 John Greer Elias Image Processing for Camera Based Motion Tracking
CN101995964A (zh) * 2010-11-19 2011-03-30 中兴通讯股份有限公司 一种处理键盘指令的方法、装置、键盘及终端设备
CN102279693A (zh) * 2010-06-11 2011-12-14 深圳富泰宏精密工业有限公司 触控式键盘
US20120249587A1 (en) * 2011-04-04 2012-10-04 Anderson Glen J Keyboard avatar for heads up display (hud)
CN102929553A (zh) * 2012-10-26 2013-02-13 苏州达方电子有限公司 利用产生于触控键盘的触控信号作为触控指令输入的方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8928590B1 (en) * 2012-04-03 2015-01-06 Edge 3 Technologies, Inc. Gesture keyboard method and apparatus

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110006991A1 (en) * 2009-07-08 2011-01-13 John Greer Elias Image Processing for Camera Based Motion Tracking
CN102279693A (zh) * 2010-06-11 2011-12-14 深圳富泰宏精密工业有限公司 触控式键盘
CN101995964A (zh) * 2010-11-19 2011-03-30 中兴通讯股份有限公司 一种处理键盘指令的方法、装置、键盘及终端设备
US20120249587A1 (en) * 2011-04-04 2012-10-04 Anderson Glen J Keyboard avatar for heads up display (hud)
CN103534665A (zh) * 2011-04-04 2014-01-22 英特尔公司 平视显示器的键盘化身
CN102929553A (zh) * 2012-10-26 2013-02-13 苏州达方电子有限公司 利用产生于触控键盘的触控信号作为触控指令输入的方法

Also Published As

Publication number Publication date
TWI695297B (zh) 2020-06-01
US20170315621A1 (en) 2017-11-02
TW201738695A (zh) 2017-11-01
US10365726B2 (en) 2019-07-30

Similar Documents

Publication Publication Date Title
CN107402707A (zh) 键盘手势指令的产生方法与计算机程序产品
CN107479717A (zh) 屏幕键盘的显示方法及其计算机程序产品
US9658766B2 (en) Edge gesture
EP2495644B1 (en) Portable information terminal comprising two adjacent display screens
US8325150B1 (en) Integrated overlay system for mobile devices
US9261972B2 (en) Ergonomic motion detection for receiving character input to electronic devices
US20120304107A1 (en) Edge gesture
US20120304131A1 (en) Edge gesture
US20090231281A1 (en) Multi-touch virtual keyboard
US20110095992A1 (en) Tools with multiple contact points for use on touch panel
CN103729160A (zh) 多显示设备和多显示方法
KR20110081040A (ko) 투명 디스플레이를 구비한 휴대단말에서 컨텐츠 운용 방법 및 장치
US9317171B2 (en) Systems and methods for implementing and using gesture based user interface widgets with camera input
CN107340875A (zh) 内建传感器及光源模块的键盘装置
CN102262504A (zh) 带虚拟键盘的用户交互手势
CN107402639A (zh) 键盘触控指令的产生方法与计算机程序产品
CN105320265B (zh) 电子装置的控制方法
TW200910167A (en) Computer system with multi-touch screen
TWI540491B (zh) 觸控面板之虛擬按鍵的設定與偵測方法
CN104216644A (zh) 一种映射被遮挡区的系统和方法
CN104281318A (zh) 减少软键盘按压的显示延迟的方法和装置
TWM529213U (zh) 虛擬輸入控制器
US20150309601A1 (en) Touch input system and input control method
US20120245741A1 (en) Information processing apparatus, information processing method, recording medium, and program
CN104063046B (zh) 输入装置及切换输入方式的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 6 / F, 4 / F, No.1, Section 1, Chongyang Road, Sanjiang District, Xinbei, Taiwan, China

Applicant after: Yao Bingyang

Address before: 3 / F, Lane 2, Lane 70, Section 2, Heping West Road, longxingli, Zhongzheng District, Taipei, Taiwan, China

Applicant before: Yao Bingyang

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20171128