一种基于手机传感器控制电脑的方法转让专利

申请号 : CN201110412458.4

文献号 : CN102622082B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 时清凯华金茹刘钦眭椰敏索坤赵垠兰邵栋荣国平

申请人 : 南京大学

摘要 :

基于手机传感器控制电脑的方法,建立智能手机与计算机控制信息交互的系统;在智能手机端,首先从手机传感器得到相应的数据,进行数据的过滤拟合,得到动作命令,通过蓝牙传输至电脑端接口;手机主传感器打包消息,通过消息机制,利用流水线pipeline技术,将数据从传感器模块传递给当前模式控制器模块的动作拟合器模块;动作拟合器在初始化时已将预定义的动作初始化并存入动作池中,动作拟合器模块对传感器数据进行动作生成;动作拟合器接收通过消息队列由传感器模块产生的数据消息,并解析为实数数组,对数据通过算法抽象出动作;而在电脑端,通过编辑配置文件,将特定的动作或消息指令映射到某个键盘、鼠标或其他硬件操作,实现手机传感器控制电脑操作。

权利要求 :

1.基于手机传感器控制电脑的方法,其特征是包括如下步骤:

1)建立智能手机与计算机控制信息交互的系统;

在智能手机端,首先从手机传感器得到相应的数据,进行数据的过滤拟合,得到动作命令,通过蓝牙传输至电脑端接口;

步骤1-1.启动手机端系统,

步骤1-2.初始化手机端系统的解释器、蓝牙和控制模块;

步骤1-3.控制模块从传感器模块获取数据;

步骤1-3.1控制模块接受传感器模块的主传感器、若干辅助传感器对应的数据;

步骤1-3.2辅助传感器获得辅助传感器相应数据,给主传感器;

步骤1-3.3主传感器获得本身数据,并通过当前模式获得辅助数据;

步骤1-3.4主传感器打包消息,通过消息机制,利用流水线pipeline技术,将数据从传感器模块传递给当前模式控制器模块的动作拟合器模块;

步骤1-4.动作拟合器在初始化时已将预定义的动作初始化并存入动作池中,动作拟合器模块对传感器数据进行动作生成;动作拟合器接收通过消息队列由传感器模块产生的数据消息,并解析为实数数组,对数据通过算法进行处理抽象出动作;

步骤1-5.模式控制器通过蓝牙传送由动作拟合器产生的动作给电脑端步骤1-5.1从动作拟合器获取动作或消息指令,建立一个传输队列;

步骤1-5.2将动作或指令信息通过蓝牙模块传递到电脑端,同时使用了消息机制和流水线pipeline技术;

而在电脑端,通过编辑配置文件,将特定的动作或消息指令映射到某个键盘、鼠标或其他硬件操作,实现手机传感器控制电脑操作;

步骤2-1.启动电脑端系统;

步骤2-2.初始化电脑端的解释器、蓝牙和配置模块;

步骤2-3.配置模块对系统文件读取并解析,初始化游戏配置;

步骤2-4.系统从蓝牙模块获取手机端的动作或信息指令

步骤2-5.解释器模块进行解析完成对应动作;

采用流水线的技术,即数据获取,数据处理以及数据蓝牙传输交错并行执行,其中每个部分之间的信息传输使用消息队列机制完成;

手机端设有6个模块,分别为启动模块,模式控制模块,蓝牙模块,拟合器模块,消息或动作模块以及传感器模块;系统从启动模块启动,初始化解释器,蓝牙以及控制模块;控制模块从传感器模块获得各种传感器数据,使用拟合模块进行动作拟合,生成某种动作,并通过蓝牙传输给电脑端:步骤3-1:启动模块负责模块启动系统;

步骤3-2:初始化解释器、蓝牙和控制模块3部分;

步骤3-3:控制模块通过手机传感器模块获得各种传感器数据;

主从传感器协作控制方法:传感器模块中有主传感器和辅助传感器2种类型,主传感器负责向模式控制模块传递某时刻各个传感器的数据,辅助传感器仅仅负责提供辅助传感器数据,由主传感器一并传与模式控制器;每个模式包含一个主传感器和若干辅助传感器;

传感器获得数据后通过打包为一条消息,并传递给当前模式控制器;设有配置模块通过对系统配置文件的读取与解析并启动系统,初始化各个应用的配置;动作映射及其他资源设置均配置在xml文件中;使用XML配置的方式实现动作与硬件操作的映射,如键盘按键、鼠标移动;组合动作由简单动作组合而成;手机端在产生动作时,会给每个动作制定一个名字,这个名字与xml配置文件中的名字一致,从而使得手机动作与电脑端的键盘、鼠标等操作对应;

以主传感器为加速度传感器,辅助传感器为方向传感器,加速度传感器获得的数据需要方向信息来消除重力加速度的影响;最终传给模式控制器的传感器数据是一个实数类型的数组,分别为加速度传感器的3个方向上的数据、方向传感器在3个方向上的数据以及一个时间戳;由模式控制器进行计算,获得动作信息。

2.根据权利要求1所述的基于手机传感器的控制电脑的方法,其特征是传感器与模式控制器之间的数据传递部分,数据处理以及数据蓝牙传输并行执行,每个部分之间的信息传输按消息队列机制完成。

3.根据权利要求1所述的基于手机传感器的控制电脑的方法,其特征是数据的获取来源于传感器模块,模式控制模块在注册传感器后,传感器便能产生数据,通过消息队列,传给控制模块进行处理,在此期间继续获取数据;数据处理后,将产生的动作交由下一个消息队列,由蓝牙模块进行传输。

说明书 :

一种基于手机传感器控制电脑的方法

技术领域

[0001] 本发明涉及一种基于手机传感器的控制电脑的方法。在这种开发方法中,用户手握手机做出相应动作,手机端传感器接收到相应数据,处理器将数据转为抽象的动作接口,利用蓝牙技术传至接收端,控制电脑操作。该方法致力于在不增加硬件设备,不编写额外控制代码的条件下,改善传统的人机交互模式。

背景技术

[0002] 从硬件条件上看,带有传感器的智能手机不断普及,新一代的智能手机上大多内置了多种传感器,典型的如重力传感器、速度传感器和倾角传感器甚至配置微型陀螺仪,并且提供了良好的接口调用,并且提供了良好的接口调用;这些传感器的信号可以通过接口输出。智能手机中传感器的种类和精度都在不断增加。手机内置传感器的迅猛发展为手机控制电脑提供了良好的硬件支持。现有技术已经就传感器动作等相关数据进行了识别计算和输出。
[0003] 从软件应用上看,传感器只是把动作等相关数据输出,但最关键的是如何应用好这些数据。现有的用智能手机传感器控制电脑的软件都仅局限于特定的应用内,没有一套能通过简单配置,就能适用于多种应用的手机动作控制电脑的方法。
[0004] 因此,本方法致力于建立一种能在不增加其他硬件设备的条件下,实现用手机动作控制电脑操作的通用方法。它主要利用将手机动作映射到键盘上某些键的操作,或者鼠标操作的方式实现手机动作对电脑操作的控制。
[0005] 参考文献如下:
[0006] 侯文生.基于加速度传感器的前臂运动姿态检测[J].传感器与微系统,2009,28(1)106-108.
[0007] 赵学玲.加速度传感器在动作识别中的应用[J].机床与液压,2011,39(2):118-120.
[0008] 黄启友.基于陀螺传感器的三维手势识别方案[J].计算机工程,2011,37(22):153-155。

发明内容

[0009] 本发明目的是,提出致力于建立一种能在不增加其他硬件设备的条件下,实现用手机动作控制电脑操作的通用方法。它主要利用将手机动作映射到键盘上某些键的操作,或者鼠标操作的方式实现手机动作对电脑操作的控制。尤其是建立智能手机与计算机交互的框架,用手机传感器控制电脑操作。本发明目的在于不增加硬件设备,不编写额外控制代码的条件下,改善传统的人机交互模式。同时,该方法提出一种实现手机动作在计算机端的及时反馈的机制,提供常用的手机端接口,给出一套连接手机和电脑端的接口标准,用户手握手机做出相应动作,手机端传感器接收到相应数据,处理器将数据转为抽象的动作命令接口,利用蓝牙技术传至接收端,控制电脑操作,快速开发如用手机传感器控制电脑游戏、控制幻灯片放映等众多应用。
[0010] 本发明目的还在于提高智能手机与计算机数据处理与传输的效率,实现手机动作在计算机端的及时反馈、提高智能手机与计算机交互软件开发效率。
[0011] 为实现本发明的所述目的,本发明技术方案是:基于手机传感器控制电脑的方法,包括如下步骤:
[0012] 1)建立智能手机与计算机控制信息交互的系统;
[0013] 在智能手机端,首先从手机传感器得到相应的数据,进行数据的过滤拟合,得[0014] 到动作命令,通过蓝牙传输至电脑端接口;
[0015] 步骤1-1.启动手机端系统,
[0016] 步骤1-2.初始化手机端系统的解释器、蓝牙和控制模块;
[0017] 步骤1-3.控制模块从传感器模块获取数据;
[0018] 步骤1-3.1控制模块接受传感器模块的主传感器、若干辅助传感器对应的数据;
[0019] 步骤1-3.2辅助传感器获得辅助传感器相应数据,给主传感器;
[0020] 步骤1-3.3主传感器获得本身数据,并通过当前模式获得辅助数据;
[0021] 步骤1-3.4主传感器打包消息,通过消息机制,利用流水线pipeline技术,将数据从传感器模块传递给当前模式控制器模块的动作拟合器模块;
[0022] 步骤1-4动作拟合器在初始化时已将预定义的动作初始化并存入动作池中,动作拟合器模块对传感器数据进行动作生成;动作拟合器接收通过消息队列由传感器模块产生的数据消息,并解析为实数数组,对数据通过算法进行处理抽象出动作;
[0023] 一个简单的例子——如何判断手机倾斜:获取加速度传感器数据,判断重力加速度在某个方向上的分量大小,就可以判断其在某个方向上的倾斜程度;当然也可以使用方向传感器判断倾斜程度;
[0024] 步骤1-5.动作拟合器模块通过蓝牙传送给电脑端
[0025] 步骤1-5.1从拟合器获取动作或消息指令,建立一个传输队列;
[0026] 步骤1-5.2将动作或指令信息通过蓝牙模块传递到电脑端,同时使用了消息机制和流水线pipeline技术;
[0027] 而在电脑端,通过编辑配置文件,将特定的动作或消息指令映射到某个键盘、[0028] 鼠标或其他硬件操作,实现手机传感器控制电脑操作;
[0029] 步骤2-1.启动电脑端系统;
[0030] 步骤2-2.初始化电脑端的解释器、蓝牙和配置模块;
[0031] 步骤2-3.配置模块对系统文件读取并解析,初始化游戏配置;
[0032] 步骤2-4.系统从蓝牙模块获取手机端的动作或信息指令
[0033] 步骤2-5.解释器模块进行解析完成对应动作。
[0034] 2)提高数据处理与传输的效率,手机动作在计算机端的及时反馈,
[0035] 为了提高数据处理的效率,该方法采用流水线的技术,即数据获取,数据处理以及数据蓝牙传输交错并行执行,其中每个部分之间的信息传输使用消息队列机制完成的。
[0036] 本发明的有益效果是:克服现有的用智能手机传感器控制电脑仅局限于特定的应用内,实现一套能通过简单配置,就能适用于多种应用的手机动作控制电脑的方法。在不增加硬件设备,不编写额外控制代码的条件下,改善传统的人机交互模式。另外,该方法还规定了手机动作在计算机端的及时反馈的机制,提高数据处理与传输的效率,实现手机传感器对电脑操作的精确控制。本发明提出的一种基于手机传感器的控制电脑的方法。在这种开发方法中,用户手握手机做出相应动作,手机端传感器接收到相应数据,处理器将数据转为抽象的动作接口,利用蓝牙技术传至接收端,控制电脑操作。在不增加硬件设备,不编写额外控制代码的条件下,改善传统的人机交互模式。同时,该方法提出一种实现手机动作在计算机端的及时反馈的机制,提高数据处理与传输的效率,实现手机传感器对电脑操作的精确控制。

附图说明

[0037] 图1.手机端系统状态转换图。
[0038] 图2.电脑端系统转换图。
[0039] 图3.手机端处理流程图。
[0040] 图4.电脑端处理流程图。
[0041] 图5.电脑端模块图。
[0042] 图6.手机端模块图。
[0043] 图7.主从传感器协作控制图。
[0044] 图8.消息队列示意图。
[0045] 图9.消息定义形式图说明。

具体实施方式

[0046] 图1说明:
[0047] 1、系统启动,进行蓝牙连接
[0048] 2、进行系统设置,包括游戏选择,游戏的按键设置,然后进入游戏
[0049] 3、传感器在流水线同步机制下产生数据、处理数据,而后将动作信息传给电脑[0050] 4、最终断开蓝牙,系统停止。
[0051] 电脑端系统转换图(图2)说明:
[0052] 1、系统启动
[0053] 2、读取配置文件,配置系统信息,配置各游戏动作信息;消息解释器就绪[0054] 3、蓝牙连接
[0055] 4、消息解释器获取数据,并解析,获得动作名称及其数据,根据动作信息以及电脑端配置做出相应动作;以此循环往复。
[0056] 5、蓝牙断开,系统停止。
[0057] 消息定义主要用于封装动作、系统行为等信息,并通过蓝牙传送至电脑端。类型包括“系统”和“动作”两种类型,分别表示系统信息和动作信息;“系统”类型的子类型包括“开始游戏”,“终止游戏”等子类型;“动作”类型包括“鼠标动作”,“键盘动作”等子类型;参数为该动作的其他信息。
[0058] ●手机端软件体系结构
[0059] 本方法分为手机端部分和电脑端部分,两部分互相合作,完成方法期望达到的目的。本节将从模块层次上描述手机端部分的体系结构
[0060] 模块图
[0061] 本方法的手机端分为6个模块,分别为启动模块,模式控制模块,蓝牙模块,拟合器模块,消息或动作模块以及传感器模块。模块图如图1所示:各模块分工合作,完成系统任务。系统从启动模块启动,初始化解释器,蓝牙以及控制模块;控制模块从传感器模块获得各种传感器数据,使用拟合模块进行动作拟合,生成某种动作,并通过蓝牙传输给电脑端软件。
[0062] 处理流程图
[0063] 本发明的手机端的处理流程图如图3所示
[0064] 步骤3-1:启动模块负责模块启动系统;
[0065] 步骤3-2:初始化解释器、蓝牙和控制模块3部分。
[0066] 步骤3-3:控制模块通过手机传感器模块获得各种传感器数据。
[0067] 主从传感器协作控制图:
[0068] 如图7表示传感器间的协作关系,这里传感器模块,有主传感器和辅助传感器2种类型,主传感器负责向模式控制模块传递某时刻各个传感器的数据,辅助传感器仅仅负责提供辅助传感器数据,由主传感器一并传与模式控制器。每个模式包含一个主传感器和若干辅助传感器。传感器获得数据后通过打包为一条消息,并传递给当前模式控制器。例:以主传感器为加速度传感器,辅助传感器为方向传感器为例,由于加速度传感器获得的数据并非为手机运动的实际加速度,而是实际运动加速度与重力加速度(9.8m/s2)在各个方向上的加和,因此我们需要方向信息来消除重力加速度的影响。最终传给模式控制器的传感器数据是一个实数类型的数组,分别为加速度传感器的3个方向上的数据、方向传感器在3个方向上的数据以及一个时间戳。由模式控制器进行计算,进一步获得动作信息。
[0069] 消息队列示意图
[0070] 图8表示传感器与模式控制器之间的数据传递部分,为了提高数据处理的效率,这里采用了流水线的思想,即数据获取,数据处理以及数据蓝牙传输并行执行,其中每个部分之间的信息传输按照图8所示的消息队列机制完成。
[0071] 消息定义形式图
[0072] 图9定义了消息的具体形式。即,一条消息由一个消息头(类型及其子类型),消息参数(由参数间隔符相隔)以及消息尾构成。
[0073] 数据的获取来源于传感器模块,模式控制模块在注册传感器后,传感器便可产生数据,通过消息队列,传给控制模块进行处理,在此期间继续获取数据。
[0074] 数据处理后,将产生的动作交由下一个消息队列,由蓝牙模块进行传输。
[0075] 通过结构化的、紧凑的协议定义,一方面方便了手机与计算机的信息处理,另一方面提高了信息处理的速度。
[0076] 步骤3-4:拟合器模块对各种数据进行动作的拟合,生成对应的某种动作或消息。这里使用了享元模式,为动作的产生封装一系列的算法。
[0077] 步骤3-5:通过蓝牙模块传输给电脑端,这里同样采用了消息队列的思想。
[0078] ●电脑端软件体系结构
[0079] 模块图
[0080] 如图5,电脑端部分分为4个主要模块,分别为系统启动模块,配置模块,蓝牙模块以及消息或动作模块。各模块分工合作,完成系统任务。
[0081] 系统从主模块启动,初始化解释器,蓝牙以及配置模块;配置模块通过对系统配置文件的读取与解析,启动系统,初始化各个应用的配置,包括各个动作;系统从蓝牙模块获得从手机端接收到的消息,交由解释器模块进行解析,并作出相应操作。
[0082] 处理流程图
[0083] 本发明的电脑端的处理流程图如图4。
[0084] 步骤4-1:主模块负责启动电脑端系统。
[0085] 步骤4-2:初始化解释器、蓝牙和配置模块。
[0086] 步骤4-3:配置模块通过对系统配置文件的读取与解析并启动系统,初始化各个应用的配置。动作映射及其他资源设置均配置在xml文件中,xml配置文件的使用,使得系统的可扩展性大大增强。
[0087] 使用XML配置的方式实现动作与硬件操作的映射,如键盘按键、鼠标移动等。组合动作由简单动作组合而成。手机端在产生动作时,会给每个动作制定一个名字,这个名字与xml配置文件中的名字一致,从而使得手机动作与电脑端的键盘、鼠标等操作对应。
[0088] 步骤4-4:通过蓝牙模块获取手机端的消息。
[0089] 步骤4-5:通过解释器模块进行解析和完成相应的系统功能或硬件动作,如键盘按键、鼠标移动等。
[0090] 本发明方法致力于在不增加任何硬件设备的条件下,改善传统人机交互模式,通过用户自身的运动参与到应用当中,让人有身临其境的感觉,适合普通家庭的娱乐休闲活动。该方法的另一个优点在于我们改变了现有应用软件,而不是特别开发的应用软件的键盘和鼠标控制法,给现有应用软件注入了新的生命力。