自动校准重力感应器方向的系统及方法转让专利

申请号 : CN201610416863.6

文献号 : CN106125160B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 邵文奇杜忠华朱辉

申请人 : 重庆蓝岸通讯技术有限公司

摘要 :

本发明公开了一种自动校准重力感应器方向的系统及方法,包括:校准支架,当重力感应器方向标准时的移动设备放在校准支架上时,在X坐标轴的重力感应器数据在第一预定范围值内,在Y坐标轴的重力感应器数据在第二预定范围值内,在Z坐标轴的重力感应器数据在第三预定范围值内;校准模块,其获取重力感应器三个通道上的重力感应器数据,根据在X坐标轴、Y坐标轴和Z坐标轴上的预定范围值,判断每个通道的重力感应器数据对应的坐标轴,以进行方向校准,并将方向校准后的数据传送至重力感应器方向配置模块中;重力感应器方向配置模块,用于接收方向校准后的数据并存储。本发明解决了对重力感应器方向进行调试时需修改源代码,既耗时又麻烦的问题。

权利要求 :

1.一种自动校准重力感应器方向的系统,其特征在于,包括:

校准支架,其用于放置重力感应器方向待校准的移动设备,当重力感应器方向标准时的移动设备放置在所述校准支架上时,在X坐标轴轴方向上的重力感应器数据在第一预定范围值内,在Y坐标轴轴方向上的重力感应器数据在第二预定范围值内,在Z坐标轴轴方向上的重力感应器数据在第三预定范围值内;

校准模块,其设置在所述重力感应器方向待校准的移动设备中并连接至所述重力感应器,当所述重力感应器方向待校准的移动设备放置在所述校准支架上时,所述校准模块获取所述重力感应器三个通道上的重力感应器数据,根据所述重力感应器方向标准时的移动设备放置在所述校准支架上时分别在X坐标轴、Y坐标轴和Z坐标轴上的预定范围值,判断获取的每个通道的重力感应器数据对应的坐标轴,以对所述重力感应器三个通道上的重力感应器数据进行方向校准,并将方向校准后的数据传送至重力感应器方向配置模块中;

重力感应器方向配置模块,其连接至所述校准模块,用于接收方向校准后的数据并进行存储;

开机启动脚本模块,其用于在所述重力感应器方向待校准的移动设备开机时,从所述重力感应器方向配置模块中读取方向校准后的数据,并将方向校准后的数据发送至重力感应器驱动模块中,以使所述重力感应器方向待校准的移动设备系统获取的重力感应器数据正常。

2.如权利要求1所述的自动校准重力感应器方向的系统,其特征在于,所述校准支架为三角支架,所述校准支架的三个角在三维坐标轴系中分别相对X坐标轴方向偏移第一预定角度,相对Y坐标轴方向偏移第二预定角度,相对Z坐标轴方向偏移第三预定角度。

3.如权利要求1所述的自动校准重力感应器方向的系统,其特征在于,所述根据所述重力感应器方向标准时的移动设备放置在所述校准支架上时分别在X坐标轴、Y坐标轴和Z坐标轴上的预定范围值,判断获取的每个通道的重力感应器数据对应的坐标轴具体包括:判断获取的每个通道的重力感应器数据绝对值是否在所述第一预定范围值内;

若是,则继续判断该通道的重力感应器数据是否小于零,若小于零,则确定该通道的重力感应器数据为X坐标轴方向的重力感应器数据,并需要反转方向,若不小于零,则确定该通道的重力感应器数据为X坐标轴方向的重力感应器数据,不需要反转方向;

若否,则继续判断该通道的重力感应器数据绝对值是否在所述第二预定范围值内;

若是,则继续判断该通道的重力感应器数据是否小于零,若小于零,则确定该通道的重力感应器数据为Y坐标轴方向的重力感应器数据,并需要反转方向,若不小于零,则确定该通道的重力感应器数据为Y坐标轴方向的重力感应器数据,不需要反转方向;

若否,则继续判断该通道的重力感应器数据绝对值是否在所述第三预定范围值内;

若是,则继续判断该通道的重力感应器数据是否小于零,若小于零,则确定该通道的重力感应器数据为Z坐标轴方向的重力感应器数据,并需要反转方向,若不小于零,则确定该通道的重力感应器数据为Z坐标轴方向的重力感应器数据,不需要反转方向;

若否,则需重新放置所述重力感应器方向待校准的移动设备。

4.如权利要求2所述的自动校准重力感应器方向的系统,其特征在于,所述第一预定角度为30~40度,所述第二预定角度为10~20度,所述第三预定角度为50~60度。

5.一种自动校准重力感应器方向的方法,其特征在于,包括:

将重力感应器方向待校准的移动设备放置在校准支架上;

启动校准模块,所述校准模块获取重力感应器三个通道上的重力感应器数据,根据重力感应器方向标准时的移动设备放置在所述校准支架上时分别在X坐标轴、Y坐标轴和Z坐标轴上的预定范围值,判断获取的每个通道的重力感应器数据对应的坐标轴,以对所述重力感应器三个通道上的重力感应器数据进行方向校准,并将方向校准后的数据传送至重力感应器方向配置模块中;

重力感应器方向配置模块接受方向校准后的数据并进行存储;

重新启动所述重力感应器方向待校准的移动设备,开机启动脚本模块从所述重力感应器方向配置模块中读取方向校准后的数据,并将方向校准后的数据发送至重力感应器驱动模块中。

说明书 :

自动校准重力感应器方向的系统及方法

技术领域

[0001] 本发明属于重力感应器方向校准领域,特别涉及一种自动校准重力感应器方向的系统及方法。

背景技术

[0002] G-sensor(Gravity–sensor,重力感应器)是智能移动终端上不可或缺的器件,该器件由于硬件布线,器件布局的不同,粘贴在硬件板子上的正方向就不同,从而导致开机情况下系统的UI(User Interface,用户界面)旋转不正常。因此,必须对重力感应器方向进行调试,由于现在Android的ODM(Original design manufacture,简称ODM)供应商项目很多,临时调试展示的样机阶段性也很多,再加上异地联调,即软件和硬件设计部门不在一个地方,对重力感应器进行方向调试就成了一个麻烦,耗时的事情。现有技术中,对重力感应器进行方向调试时需要修改驱动源码,且一般需要调试多次才能解决该问题,修改驱动源码时,需要进行编译,且编译很耗时,同时调试、沟通也很耗时。

发明内容

[0003] 本发明的目的是提供了一种自动校准重力感应器方向的系统及方法,能够解决现有技术中对重力感应器方向进行调试时需要修改源代码,既耗时又麻烦的问题。
[0004] 本发明提供的技术方案为:
[0005] 第一方面,本发明提供的自动校准重力感应器方向的系统,包括:
[0006] 校准支架,其用于放置重力感应器方向待校准的移动设备,当重力感应器方向标准时的移动设备放置在所述校准支架上时,在X坐标轴轴方向上的重力感应器数据在第一预定范围值内,在Y坐标轴轴方向上的重力感应器数据在第二预定范围值内,在Z坐标轴轴方向上的重力感应器数据在第三预定范围值内;
[0007] 校准模块,其设置在所述重力感应器方向待校准的移动设备中并连接至所述重力感应器,当所述重力感应器方向待校准的移动设备放置在所述校准支架上时,所述校准模块获取所述重力感应器三个通道上的重力感应器数据,根据所述重力感应器方向标准时的移动设备放置在所述校准支架上时分别在X坐标轴、Y坐标轴和Z坐标轴上的预定范围值,判断获取的每个通道的重力感应器数据对应的坐标轴,以对所述重力感应器三个通道上的重力感应器数据进行方向校准,并将方向校准后的数据传送至重力感应器方向配置模块中;
[0008] 重力感应器方向配置模块,其连接至所述校准模块,用于接收方向校准后的数据并进行存储。
[0009] 优选的是,所述的自动校准重力感应器方向的系统,还包括:
[0010] 开机启动脚本模块,其用于在所述重力感应器方向待校准的移动设备开机时,从所述重力感应器方向配置模块中读取方向校准后的数据,并将方向校准后的数据发送至重力感应器驱动模块中,以使所述重力感应器方向待校准的移动设备系统获取的重力感应器数据正常。
[0011] 优选的是,所述的自动校准重力感应器方向的系统,所述校准支架为三角支架,所述校准支架的三个角在三维坐标轴系中分别相对X坐标轴方向偏移第一预定角度,相对Y坐标轴方向偏移第二预定角度,相对Z坐标轴方向偏移第三预定角度。
[0012] 优选的是,所述的自动校准重力感应器方向的系统,所述根据所述重力感应器方向标准时的移动设备放置在所述校准支架上时分别在X坐标轴、Y坐标轴和Z坐标轴上的预定范围值,判断获取的每个通道的重力感应器数据对应的坐标轴具体包括:
[0013] 判断获取的每个通道的重力感应器数据绝对值是否在所述第一预定范围值内;
[0014] 若是,则继续判断该通道的重力感应器数据是否小于零,若小于零,则确定该通道的重力感应器数据为X坐标轴方向的重力感应器数据,并需要反转方向,若不小于零,则确定该通道的重力感应器数据为X坐标轴方向的重力感应器数据,不需要反转方向;
[0015] 若否,则继续判断该通道的重力感应器数据绝对值是否在所述第二预定范围值内;
[0016] 若是,则继续判断该通道的重力感应器数据是否小于零,若小于零,则确定该通道的重力感应器数据为Y坐标轴方向的重力感应器数据,并需要反转方向,若不小于零,则确定该通道的重力感应器数据为Y坐标轴方向的重力感应器数据,不需要反转方向;
[0017] 若否,则继续判断该通道的重力感应器数据绝对值是否在所述第三预定范围值内;
[0018] 若是,则继续判断该通道的重力感应器数据是否小于零,若小于零,则确定该通道的重力感应器数据为Z坐标轴方向的重力感应器数据,并需要反转方向,若不小于零,则确定该通道的重力感应器数据为Z坐标轴方向的重力感应器数据,不需要反转方向;
[0019] 若否,则需重新放置所述重力感应器方向待校准的移动设备。
[0020] 优选的是,所述的自动校准重力感应器方向的系统,所述第一预定角度为30~40度,所述第二预定角度为10~20度,所述第三预定角度为50~60度。
[0021] 第二方面,本发明提供的自动校准重力感应器方向的方法,包括:
[0022] 将重力感应器方向待校准的移动设备放置在校准支架上;
[0023] 启动校准模块,所述校准模块获取重力感应器三个通道上的重力感应器数据,根据重力感应器方向标准时的移动设备放置在所述校准支架上时分别在X坐标轴、Y坐标轴和Z坐标轴上的预定范围值,判断获取的每个通道的重力感应器数据对应的坐标轴,以对所述重力感应器三个通道上的重力感应器数据进行方向校准,并将方向校准后的数据传送至重力感应器方向配置模块中;
[0024] 重力感应器方向配置模块接受方向校准后的数据并进行存储;
[0025] 重新启动所述重力感应器方向待校准的移动设备,开机启动脚本模块从所述重力感应器方向配置模块中读取方向校准后的数据,并将方向校准后的数据发送至重力感应器驱动模块中。
[0026] 本发明至少包括以下有益效果:由于设置了校准支架,校准模块和重力感应器方向配置模块,因此对移动设备的重力感应器方向进行调试时,只需把移动设备放置在校准支架上,启动校准模块,校准模块就能够自动地对重力感应器的方向进行校准,并把校准后的数据传送至重力感应器方向配置模块中,这样只要重新启动移动设备,开机启动脚本模块从重力感应器方向配置模块中读取方向校准后的数据,并将方向校准后的数据发送至重力感应器驱动模块中,就能够保证移动设备系统获取的重力感应器数据正常。该系统结构简单,任何一个不懂代码的人都能够进行操作,能够节省大量时间,且不要修改源代码就能够完成自动校准。

附图说明

[0027] 图1为本发明所述的自动校准重力感应器方向的系统的结构关系示意图;
[0028] 图2为本发明所述的自动校准重力感应器方向的系统中的校准支架示意图;
[0029] 图3为本发明实施例校准过程中获取X坐标轴数据的流程示意图;
[0030] 图4为所述重力感应器方向待校准的移动设备中重力感应器的布局方式;
[0031] 图5为本发明实施例中开机后重力感应器驱动模块工作流程示意图;
[0032] 图6为本发明所述的自动校准重力感应器方向的方法的流程示意图。

具体实施方式

[0033] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
[0034] 为使本发明技术方案的优点更加清楚,下面结合附图和实施例对本发明作详细说明。
[0035] 如图1所示,本发明实施例提供的自动校准重力感应器方向的系统,包括:校准支架,其用于放置重力感应器方向待校准的移动设备,当重力感应器方向标准时的移动设备放置在所述校准支架上时,在X坐标轴轴方向上的重力感应器数据在第一预定范围值内,在Y坐标轴轴方向上的重力感应器数据在第二预定范围值内,在Z坐标轴轴方向上的重力感应器数据在第三预定范围值内;校准模块,其设置在所述重力感应器方向待校准的移动设备中并连接至所述重力感应器,当所述重力感应器方向待校准的移动设备放置在所述校准支架上时,所述校准模块获取所述重力感应器三个通道上的重力感应器数据,根据所述重力感应器方向标准时的移动设备放置在所述校准支架上时分别在X坐标轴、Y坐标轴和Z坐标轴上的预定范围值,判断获取的每个通道的重力感应器数据对应的坐标轴,以对所述重力感应器三个通道上的重力感应器数据进行方向校准,并将方向校准后的数据传送至重力感应器方向配置模块中;重力感应器方向配置模块,其连接至所述校准模块,用于接收方向校准后的数据并进行存储。
[0036] 其中,如图2所示,所述校准支架为三角支架,所述校准支架的三个角在三维坐标轴系中分别相对X坐标轴方向偏移第一预定角度β,相对Y坐标轴方向偏移第二预定角度α,相对Z坐标轴方向偏移第三预定角度γ。所述第一预定角度为30~40度,所述第二预定角度为10~20度,所述第三预定角度为50~60度。
[0037] 需要说明的是,第一预定角度β,第二预定角度α以及第三预定角度γ,可以根据需要自己定义,但定义时一定要保证相对的间距一定较大,否则会导致误识别的情况。
[0038] 其中,所述根据所述重力感应器方向标准时的移动设备放置在所述校准支架上时分别在X坐标轴、Y坐标轴和Z坐标轴上的预定范围值,判断获取的每个通道的重力感应器数据对应的坐标轴具体包括:
[0039] 判断获取的每个通道的重力感应器数据绝对值是否在所述第一预定范围值内;
[0040] 若是,则继续判断该通道的重力感应器数据是否小于零,若小于零,则确定该通道的重力感应器数据为X坐标轴方向的重力感应器数据,并需要反转方向,若不小于零,则确定该通道的重力感应器数据为X坐标轴方向的重力感应器数据,不需要反转方向;
[0041] 若否,则继续判断该通道的重力感应器数据绝对值是否在所述第二预定范围值内;
[0042] 若是,则继续判断该通道的重力感应器数据是否小于零,若小于零,则确定该通道的重力感应器数据为Y坐标轴方向的重力感应器数据,并需要反转方向,若不小于零,则确定该通道的重力感应器数据为Y坐标轴方向的重力感应器数据,不需要反转方向;
[0043] 若否,则继续判断该通道的重力感应器数据绝对值是否在所述第三预定范围值内;
[0044] 若是,则继续判断该通道的重力感应器数据是否小于零,若小于零,则确定该通道的重力感应器数据为Z坐标轴方向的重力感应器数据,并需要反转方向,若不小于零,则确定该通道的重力感应器数据为Z坐标轴方向的重力感应器数据,不需要反转方向;
[0045] 若否,则需重新放置所述重力感应器方向待校准的移动设备。
[0046] 需要说明的是,一般情况下,重力感应器的三个通道使用CH0-重力感应器通道0上的数据(通常是X/Y坐标轴的数据),CH1-重力感应器通道1上的数据(通常是Y/X坐标轴的数据),CH2-重力感应器通道2上的数据(通常是Z坐标轴的数据),重力感应器方向配置模块保存的“重力感应器方向配置文件”文件格式为:
[0047] {Xch,Xsig,Ych,Ysig,Zch,Zsig}
[0048] Xch–X坐标轴的数据从Xch表示的通道上获取;
[0049] Xsig–X坐标轴上的数据是否需要反转方向;1表示不需要反转,-1表示需要反转;
[0050] Ych–Y坐标轴的数据从Ych表示的通道上获取;
[0051] Ysig–Y坐标轴上的数据是否需要反转方向;1表示不需要反转,-1表示需要反转;
[0052] Zch–Z坐标轴上的数据从Zch表示的通道上获取;
[0053] Zsig–Z坐标轴上的数据是否需要反转方向;1表示不需要反转,-1表示需要反转;
[0054] 例如流程图3所示,给出了获取X坐标轴数据的过程,其中,GXmin,GXmax分别表示第一预定范围值的最小值和最大值。同样地,获取Y坐标轴数据和Z坐标轴数据的过程,和获取X坐标轴数据的过程一样,我们使用GYmin,GYmax分别表示第二预定范围值的最小值和最大值,GZmin,GZmax分别表示第三预定范围值的最小值和最大值。
[0055] 需要说明的是,所述重力感应器方向待校准的移动设备中重力感应器的布局方式有8种方式。如图4所示,正是由于这硬件的设计有8种方式,才导致重力感应器的方向有多种。至于硬件采用哪种方式是依据硬件器件布局以及布线的局限而设计的(或者是处于其他目的考虑的)。
[0056] 进一步的,如图1所述的自动校准重力感应器方向的系统,还包括:开机启动脚本模块,其用于在所述重力感应器方向待校准的移动设备开机时,从所述重力感应器方向配置模块中读取方向校准后的数据,并将方向校准后的数据发送至重力感应器驱动模块中,以使所述重力感应器方向待校准的移动设备系统获取的重力感应器数据正常。
[0057] 如图5所示,给出了开机后重力感应器驱动模块工作流程示意图。
[0058] 其中,重力感应器驱动模块还具有向外提供接口-文件设备节点供外部控制重力感应器的方向选择。
[0059] 如图6所示,本发明又一实施例提供的自动校准重力感应器方向的方法,包括:
[0060] S01、将重力感应器方向待校准的移动设备放置在校准支架上;
[0061] S02、启动校准模块,所述校准模块获取重力感应器三个通道上的重力感应器数据,根据重力感应器方向标准时的移动设备放置在所述校准支架上时分别在X坐标轴、Y坐标轴和Z坐标轴上的预定范围值,判断获取的每个通道的重力感应器数据对应的坐标轴,以对所述重力感应器三个通道上的重力感应器数据进行方向校准,并将方向校准后的数据传送至重力感应器方向配置模块中;
[0062] S03、重力感应器方向配置模块接收方向校准后的数据并进行存储;
[0063] S04、重新启动所述重力感应器方向待校准的移动设备,开机启动脚本模块从所述重力感应器方向配置模块中读取方向校准后的数据,并将方向校准后的数据发送至重力感应器驱动模块中。
[0064] 其中,启动校准模块后,本发明实施例计算首先清除系统内部的重力感应器本身的校准数据,然后再进行重力感应器方向数据分析从而完成方向校准。
[0065] 如上所述,本发明实施例由于设置了校准支架,校准模块和重力感应器方向配置模块,因此对移动设备的重力感应器方向进行调试时,只需把移动设备放置在校准支架上,启动校准模块,校准模块就能够自动地对重力感应器的方向进行校准,并把校准后的数据传送至重力感应器方向配置模块中,这样只要重新启动移动设备,开机启动脚本模块从重力感应器方向配置模块中读取方向校准后的数据,并将方向校准后的数据发送至重力感应器驱动模块中,就能够保证移动设备系统获取的重力感应器数据正常。该系统结构简单,任何一个不懂代码的人都能够进行操作,能够节省大量时间,且不要修改源代码就能够完成自动校准。
[0066] 尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。