在智能移动终端上实现卷尺功能的方法
技术领域
本发明涉及软件领域,尤其涉及一种在智能移动终端上实现卷尺功能的方法。
背景技术
智能移动终端在人们的生活中越来越普及,可以实现定位,计步,导航等功能。但是还没有发现可以做短距离的长度测量的。
对短距离的长度测量的需要也很常见,比如在购买家具的时候,为了确定家具的尺寸,人们就必须要随身携带卷尺。这增加了人们生活的不方便程度。
发明内容
针对上述技术问题,本发明提供了一种在智能移动终端上实现卷尺功能的方法,从而使人们可以随时随地进行测量。
本发明提供的技术方案为:
一种在智能移动终端上实现卷尺功能的方法,在智能移动终端上设置加速度传感器、电子罗盘和陀螺仪,所述方法包括:
步骤一、检测所述陀螺仪的中心E在所述智能移动终端上的位置,在所述智能移动终端上选择一个标记点O,并检测该标记点O与中心E的相对位置;
步骤二、开始测量时,移动所述智能移动终端,使标记点O与待测量长度的起点重合;以所述陀螺仪的中心E的当前位置作为原点,利用所述加速度传感器确定重力反方向,以重力反方向作为Z轴方向,利用所述电子罗盘确定南方,以南方作为X轴方向,以东方作为Y轴方向,建立一个坐标系;
步骤三、根据标记点O与中心E的相对位置,确定标记点O在所述坐标系下的初始坐标;
步骤四、移动所述智能移动终端,直至所述标记点O与待测量长度的终点重合;通过所述陀螺仪测量中心E在所述坐标系中的当前位置,并利用中心E在所述坐标系中的当前位置确定标记点O在所述坐标系下的终止坐标;
步骤五、以标记点O的终止坐标和初始坐标计算出待测量长度,并将待测量长度显示于所述智能移动终端的显示界面,结束测量。
优选的是,所述的在智能移动终端上实现卷尺功能的方法中,所述步骤四中,沿着待测量长度的路径移动所述智能移动终端,并且随着所述智能移动终端的移动,每隔一定时间间隔更新一次标记点O的当前坐标,利用标记点O的当前坐标和初始坐标计算出当前长度,并将当前长度显示于所述智能移动终端的显示界面。
优选的是,所述的在智能移动终端上实现卷尺功能的方法中,所述时间间隔为100ms。
优选的是,所述的在智能移动终端上实现卷尺功能的方法中,所述标记点O为所述智能移动终端的其中一个顶点。
优选的是,所述的在智能移动终端上实现卷尺功能的方法中,所述步骤二中,开始测量是通过以下方式确定:通过点击所述智能移动终端上的开始测量按键,或通过用所述智能移动终端碰触待测量长度的起点,并由所述加速度传感器生成一个开始测量检测信号。
优选的是,所述的在智能移动终端上实现卷尺功能的方法中,所述步骤五中,结束测量是通过以下方式确定:通过点击所述智能移动终端上的结束测量按键,或通过用所述智能移动终端碰触待测量长度的终点,并由所述加速度传感器生成一个结束测量检测信号。
优选的是,所述的在智能移动终端上实现卷尺功能的方法中,所述智能移动终端为智能手机或平板电脑。
本发明所述的在智能移动终端上实现卷尺功能的方法利用陀螺仪、电子罗盘和加速度传感器建立一个坐标系,在智能移动终端上选定一个标记点,并且预先检测了标记点与陀螺仪中心的相对位置,在整个测量过程中,陀螺仪可以直接测量得出陀螺仪中心在坐标系中的当前位置,之后开始测量时,移动智能移动终端,使标记点与待测量长度的起点重合,并且根据标记点与陀螺仪中心的相对位置,确定标记点在坐标系下的初始坐标,之后继续移动智能移动终端,使标记点与待测量长度的终点重合,再根据标记点与陀螺仪中心的相对位置以及陀螺仪中心在坐标系中的当前位置,来计算出标记点在坐标系下的终止坐标,利用标记点的终止坐标和初始坐标来计算出待测量长度。基于本发明,人们可以利用智能移动终端实现随时随地地测量,从而提高了短距离测量的方便程度。
附图说明
图1为本发明所述的在智能移动终端上实现卷尺功能的方法的示意图;
图2为本发明所述的智能移动终端的结构示意图;
图3为本发明所述的坐标系的示意图;
图4为本发明所述的智能移动终端的显示界面的示意图。
具体实施方式
下面结合附图对本发明做进一步的详细说明,以令本领域技术人员参照说明书文字能够据以实施。
如图1所示,本发明提供一种在智能移动终端上实现卷尺功能的方法,在智能移动终端上设置加速度传感器、电子罗盘和陀螺仪,所述方法包括:
步骤一、检测所述陀螺仪的中心E在所述智能移动终端上的位置,在所述智能移动终端上选择一个标记点O,并检测该标记点O与中心E的相对位置。在智能移动终端的移动过程中,陀螺仪可以测量得出其自身中心E的坐标。在确定中心E在智能移动终端上的位置时,结构工程师可以打开智能移动终端的外壳,并手动测量出中心E到智能移动终端的四个顶点的距离(将智能移动终端的四个顶点分别命名为A、B、C、D,如图2所示)。
步骤二、开始测量时,移动所述智能移动终端,使标记点O与待测量长度的起点重合;以所述陀螺仪的中心E的当前位置作为原点,利用所述加速度传感器确定重力反方向,以重力反方向作为Z轴方向,利用所述电子罗盘确定南方,以南方作为X轴方向,以东方作为Y轴方向,建立一个坐标系(如图3所示)。本发明所述的加速度传感器包含重力传感器。
步骤三、根据标记点O与中心E的相对位置,确定标记点O在所述坐标系下的初始坐标。
步骤四、移动所述智能移动终端,直至所述标记点O与待测量长度的终点重合;通过所述陀螺仪测量中心E在所述坐标系中的当前位置,并利用中心E在所述坐标系中的当前位置确定标记点O在所述坐标系下的终止坐标。本发明可以选择智能移动终端上位置相对易于确定的点作为标记点,比如,当以智能移动终端的四个顶点A、B、C、D中的任意一个作为标记点时,可以手动测量出以下线段长度:AB,BC,CD,AD,AE,BE,CE,DE,则可以很容易计算出中心E到AB,BC,CD,AD的垂直距离,进而得出四个顶点A、B、C、D中任意一点在坐标系中的初始坐标,同时也可以随着智能移动终端的移动,通过中心E的当前位置计算出四个顶点A、B、C、D中任意一点在坐标系下的终止坐标。
步骤五、以标记点O的终止坐标和初始坐标计算出待测量长度,并将待测量长度显示于所述智能移动终端的显示界面,结束测量(显示界面如图4所示)。本发明提高了短距离测量的方便程度,人们可以利用智能移动终端实现随时随地地测量。
在一个优选的实施例中,为了使用户可以了解到长度的实时变化,所述的在智能移动终端上实现卷尺功能的方法中,所述步骤四中,沿着待测量长度的路径移动所述智能移动终端,并且随着所述智能移动终端的移动,每隔一定时间间隔更新一次标记点O的当前坐标,利用标记点O的当前坐标和初始坐标计算出当前长度,并将当前长度显示于所述智能移动终端的显示界面。用户可以通过显示界面查看到当前的长度数值。该实施例进一步提高了卷尺功能使用上的方便程度。
在一个优选的实施例中,所述的在智能移动终端上实现卷尺功能的方法中,所述时间间隔为100ms。时间间隔过短,即更新过快时,人眼无法清除地看到数值的变化;时间间隔过长时,又可能影响测量的准确度。
在一个优选的实施例中,所述的在智能移动终端上实现卷尺功能的方法中,所述标记点O为所述智能移动终端的其中一个顶点。当选择其中一个顶点作为标记点时,对标记点的坐标计算过程更容易实现,简化了长度测量的难度。
在一个优选的实施例中,所述的在智能移动终端上实现卷尺功能的方法中,所述步骤二中,开始测量是通过以下方式确定:通过点击所述智能移动终端上的开始测量按键,或通过用所述智能移动终端碰触待测量长度的起点,并由所述加速度传感器生成一个开始测量检测信号。采用后者时,当用智能移动终端碰触待测量长度的起点时,加速度传感器会检测到智能移动终端的这种移动,进而生成开始测量检测信号。
在一个优选的实施例中,所述的在智能移动终端上实现卷尺功能的方法中,所述步骤五中,结束测量是通过以下方式确定:通过点击所述智能移动终端上的结束测量按键,或通过用所述智能移动终端碰触待测量长度的终点,并由所述加速度传感器生成一个结束测量检测信号。采用后者时,当用智能移动终端碰触待测量长度的起点时,加速度传感器会检测到智能移动终端的这种移动,进而生成开始测量检测信号。
在一个优选的实施例中,所述的在智能移动终端上实现卷尺功能的方法中,所述智能移动终端为智能手机或平板电脑。智能手机和平板电脑是人们随时携带的智能移动终端。本发明在这两种设备上实现卷尺功能,将极大地提高人们日常生活的方便程度,满足人们随时随地进行短距离测量的需要。
为了更清晰地理解技术方案,以下给出一个实施例中的测量过程:
(1)图2中显示了陀螺仪在智能移动终端上的相对位置,将智能移动终端的四个顶点分别命名为A,B,C,D,将陀螺仪的中心命名为E。分别手工测量出以下线段长度:AB,BC,CD,AD,AE,BE,CE,DE。根据以上数据,可以轻松得到从中心E到AB,BC,CD,AD的垂直距离。将这些数据作为offset保存到智能移动终端的buffer内,以便后续应用程序调用。
(2)打开应用程序,调用加速度传感器、电子罗盘和陀螺仪的数据,确定原点坐标方向。定义寄存器L1,L2,L3,L4,L5分别保存A,B,C,D,E点的坐标值。设置一个timer,用于计时测量时间。设置指针P1用于存放A,B,C,D,E的初始坐标值,设置指针P2用于存放A,B,C,D,E的更新后的坐标值(分别用A新,B新,C新,D新表示),设置指针P3用于存放如下长度的数据区:A新-A初;B新-B初;C新-C初;D新-D初;E新-E初;B新-A初;A新-B初;D新-C初;C新-D初。
将寄存器L5(E点坐标值)置为(0,0,0),根据buffer内的offset数据,分别计算更新寄存器L1,L2,L3,L4的值,并在显示界面上显示出当前的A,B,C,D点的初始坐标值,同时将这一组初始坐标值保存到用指针P1指示的数据区。
(3)随着智能移动终端的移动,A,B,C,D,E点的当前坐标值也是动态变化。每隔100ms采样一次,更新寄存器L1,L2,L3,L4,L5的值并刷新LCD(即显示界面),以显示A,B,C,D,E点的当前坐标值。同时将这一组值保存到指针P2指示的数据区,每隔100ms刷新覆盖一次。根据寄存器L1,L2,L3,L4,L5的当前坐标值,分别计算如下长度,并保存到以P3为指针的数据区,同时在显示界面显示:A新-A初;B新-B初;C新-C初;D新-D初;E新-E初;B新-A初;A新-B初;D新-C初;C新-D初。
LCD显示出最后一次刷新的A,B,C,D,E的终止坐标,并显示出最新的指针P3的数据区数据,即待测量长度。
尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。