CN102937446A - 一种二维电子罗盘数据的取得方法及装置 - Google Patents
一种二维电子罗盘数据的取得方法及装置 Download PDFInfo
- Publication number
- CN102937446A CN102937446A CN2012104677873A CN201210467787A CN102937446A CN 102937446 A CN102937446 A CN 102937446A CN 2012104677873 A CN2012104677873 A CN 2012104677873A CN 201210467787 A CN201210467787 A CN 201210467787A CN 102937446 A CN102937446 A CN 102937446A
- Authority
- CN
- China
- Prior art keywords
- magnetic field
- field intensity
- value
- variable
- sensor
- 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
Links
Images
Landscapes
- Measuring Magnetic Variables (AREA)
Abstract
本发明涉及一种二维电子罗盘数据的取得方法,二维电子罗盘包括第一传感器和第二传感器,方法包括:将二维电子罗盘在水平面内旋转;读取两个传感器测量的磁场强度的值并保存每一磁场强度的最大值和最小值;判断旋转的圈数是否小于设定的圈数,如是,返回继续读取两个传感器的测量值;否则,停止旋转;分别取得每一磁场强度的偏移量;读取两个传感器测量的磁场强度的实际值,并将其分别减去对应的偏移量得到校正值;取得二维电子罗盘所附载体显示屏正方向与地磁北方向的夹角,并由夹角取得载体的指示针的指示方向。本发明还涉及一种实现上述方法的装置。实施本发明的二维电子罗盘数据的取得方法及装置,具有以下有益效果:公式简单、计算步骤较少。
Description
技术领域
本发明涉及传感器领域,更具体地说,涉及一种二维电子罗盘数据的取得方法及装置。
背景技术
在电子产品呈爆炸式增长的今天,竞争的压力导致电子研发对成本的考虑越来越多,因此很多产品都极度压低主控芯片的主频和功耗,甚至直接定制芯片,芯片的性能被发挥到极致,这对软件编程提出了一定的要求;在电子产品智能化的过程中,越来越多的传感器被加入电子产品中,软件编写者必须考虑到主控的性能和传感器的算法,以达到最优化的设计。在这种背景下,探索传感器的优化算法就很有意义,比如,光学传感器所涉及的图像压缩算法,已经在现在的电子产品中占有相当大的比重,可以说是现代电子产品不可或缺的一部分,所带来的经济效益是不可估量的。
通常而言,如果主控性能不是很好,要加入传感器并实现算法是有困难的,尤其是在一些以控制为主的单片机中,乘法运算会占用比较多的处理时间,要加入算法就更困难,即使是一些简单的传感器,也需要时间去做优化。
当前对传感器的算法设计,比较通用的方法是数学建模,其次是依靠数学方法直接推导出理想化的公式,在程序中实现并做补偿。通常的二维电子罗盘算法是基于椭圆参考的算法设计,由于乘法和除法运算比较多,所以其公式复杂、计算步骤比较多,导致一些性能不高的主控难以实现,因此必须做优化。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述公式复杂、计算步骤较多的缺陷,提供一种公式简单、计算步骤较少的二维电子罗盘数据的取得方法及装置。
本发明解决其技术问题所采用的技术方案是:构造一种二维电子罗盘数据的取得方法,所述二维电子罗盘包括第一传感器和第二传感器,所述方法包括如下步骤:
A)使所述二维电子罗盘的第一传感器和第二传感器在水平面内旋转,分别读取所述第一传感器测量的第一磁场强度和第二传感器测量的第二磁场强度的值,并保存所述第一磁场强度及第二磁场强度的最大值和最小值;
B)判断所述旋转的圈数是否小于预先设定的圈数,如是,返回步骤A)继续读取所述第一传感器测量的第一磁场强度和第二传感器测量的第二磁场强度的值;否则,停止所述旋转并执行步骤C);
C)根据所述第一磁场强度及第二磁场强度的最大值和最小值,分别取得所述第一磁场强度偏移量及第二磁场强度偏移量;
D)分别读取所述第一传感器当前测量的第一实际磁场强度和第二传感器当前测量的第二实际磁场强度的值,并将所述第一实际磁场强度减去所述第一磁场强度偏移量得到第一磁场强度校正值,将所述第二实际磁场强度减去所述第二磁场强度偏移量得到第二磁场强度校正值;
E)依据所述第一磁场强度校正值和第二磁场强度校正值取得所述二维电子罗盘所附载体的显示屏正方向与地磁北方向的夹角,并由所述夹角取得所述二维电子罗盘所附载体的指示针的指示方向。
在本发明所述的二维电子罗盘数据的取得方法中,所述步骤C)进一步包括:
C1)将所述第一磁场强度的最大值和最小值进行相加得到第一之和;
C2)将所述第一之和除以2得到所述第一磁场强度偏移量;
C3)将所述第二磁场强度的最大值和最小值进行相加得到第二之和;
C4)将所述第二之和除以2得到所述第二磁场强度偏移量;
上述步骤中,先顺序执行所述步骤C1)和C2)再顺序执行所述步骤C3)和C4),或先顺序执行所述步骤C3)和C4)再顺序执行所述步骤C1)和C2)。
在本发明所述的二维电子罗盘数据的取得方法中,所述步骤C)中除以2是通过在单片机中进行右移1位实现的。
在本发明所述的二维电子罗盘数据的取得方法中,所述步骤A)进一步包括:
A1)设定第一变量、第二变量、第三变量和第四变量;
A2)使所述二维电子罗盘的第一传感器和第二传感器在水平面内旋转,分别读取所述第一传感器测量的第一磁场强度和第二传感器测量的第二磁场强度的值,并将所述第一磁场强度的值分别赋值给所述第一变量和第二变量,将所述第二磁场强度的值分别赋值给所述第三变量和第四变量;
A3)继续分别读取所述第一传感器测量的第一磁场强度和第二传感器测的第二磁场强度的值;
A4)判断当前第一磁场强度的值是否大于所述第二变量的值,如是,将当前第一磁场强度的值赋值给第二变量并保存;否则,执行步骤A5);
A5)判断当前第一磁场强度的值是否小于所述第一变量的值,如是,将当前第一磁场强度的值赋值给第一变量并保存;否则,执行步骤A6);
A6)判断当前第二磁场强度的值是否大于所述第四变量的值,如是,将当前第二磁场强度的值赋值给第四变量并保存;否则,执行步骤A7);
A7)判断当前第二磁场强度的值是否小于所述第三变量的值,如是,将当前第二磁场强度的值赋值给第三变量并保存,执行步骤B);否则,执行步骤B);
所述第一变量、第二变量、第三变量和第四变量的值分别为所述第一磁场强度的最小值、第一磁场强度的最大值、第二磁场强度的最小值和第二磁场强度的最大值。
在本发明所述的二维电子罗盘数据的取得方法中,所述步骤A)进一步包括:
A1)设定第一变量、第二变量、第三变量和第四变量,并分别赋初值为第一设定值、第二设定值、第三设定值和第四设定值;
A2)使所述二维电子罗盘的第一传感器和第二传感器在水平面内旋转,分别读取所述第一传感器测量的第一磁场强度和第二传感器测量的第二磁场强度的值;
A3)判断当前第一磁场强度的值是否大于所述第二变量的值,如是,将当前第一磁场强度的值赋值给第二变量并保存;否则,执行步骤A4);
A4)判断当前第一磁场强度的值是否小于所述第一变量的值,如是,将当前第一磁场强度的值赋值给第一变量并保存;否则,执行步骤A5);
A5)判断当前第二磁场强度的值是否大于所述第四变量的值,如是,将当前第二磁场强度的值赋值给第四变量并保存;否则,执行步骤A6);
A6)判断当前第二磁场强度的值是否小于所述第三变量的值,如是,将当前第二磁场强度的值赋值给第三变量并保存,执行步骤B);否则,执行步骤B);
所述第一变量、第二变量、第三变量和第四变量的值分别为所述第一磁场强度的最小值、第一磁场强度的最大值、第二磁场强度的最小值和第二磁场强度的最大值。
在本发明所述的二维电子罗盘数据的取得方法中,所述步骤E)进一步包括:
E1)依据所述第一磁场强度校正值和第二磁场强度校正值通过公式计算取得所述二维电子罗盘所附载体的显示屏正方向与地磁北方向的夹角;
E2)将所述二维电子罗盘所附载体的显示屏正方向顺时针旋转所述夹角即得到所述二维电子罗盘所附载体的指示针的指示方向。
本发明还涉及一种实现上述二维电子罗盘数据的取得方法的装置,所述二维电子罗盘包括第一传感器和第二传感器,所述装置包括:
磁场强度读取及保存模块:用于使所述二维电子罗盘的第一传感器和第二传感器在水平面内旋转,分别读取所述第一传感器测量的第一磁场强度和第二传感器测量的第二磁场强度的值,并保存所述第一磁场强度及第二磁场强度的最大值和最小值;
旋转圈数判断模块:用于判断所述旋转的圈数是否小于预先设定的圈数,如是,返回继续读取所述第一传感器测量的第一磁场强度和第二传感器测量的第二磁场强度的值;否则,停止所述旋转;
偏移量取得模块:用于根据所述第一磁场强度及第二磁场强度的最大值和最小值,分别取得所述第一磁场强度偏移量及第二磁场强度偏移量;
磁场强度校正模块:用于分别读取所述第一传感器当前测量的第一实际磁场强度和第二传感器当前测量的第二实际磁场强度的值,并将所述第一实际磁场强度减去所述第一磁场强度偏移量得到第一磁场强度校正值,将所述第二实际磁场强度减去所述第二磁场强度偏移量得到第二磁场强度校正值;
指示方向取得模块:用于依据所述第一磁场强度校正值和第二磁场强度校正值取得所述二维电子罗盘所附载体的显示屏正方向与地磁北方向的夹角,并由所述夹角取得所述二维电子罗盘所附载体的指示针的指示方向。
在本发明所述的实现上述二维电子罗盘数据的取得方法的装置中,所述偏移量取得模块进一步包括:
第一之和取得单元:用于将所述第一磁场强度的最大值和最小值进行相加得到第一之和;
第一相除单元:用于将所述第一之和除以2得到所述第一磁场强度偏移量;
第二之和取得单元:用于将所述第二磁场强度的最大值和最小值进行相加得到第二之和;
第二相除单元:用于将所述第二之和除以2得到所述第二磁场强度偏移量。
在本发明所述的实现上述二维电子罗盘数据的取得方法的装置中,所述除以2是通过在单片机中进行右移1位实现的。
在本发明所述的实现上述二维电子罗盘数据的取得方法的装置中,所述磁场强度读取及保存模块进一步包括:
变量设定单元:用于设定第一变量、第二变量、第三变量和第四变量;
变量赋值单元:用于使所述二维电子罗盘的第一传感器和第二传感器在水平面内旋转,分别读取所述第一传感器测量的第一磁场强度和第二传感器测量的第二磁场强度的值,并将所述第一磁场强度的值分别赋值给所述第一变量和第二变量,将所述第二磁场强度的值分别赋值给所述第三变量和第四变量;
磁场强度读取单元:用于继续分别读取所述第一传感器测量的第一磁场强度和第二传感器测的第二磁场强度的值;
第二变量判断单元:用于判断当前第一磁场强度的值是否大于所述第二变量的值,如是,将当前第一磁场强度的值赋值给第二变量并保存;
第一变量判断单元:用于判断当前第一磁场强度的值是否小于所述第一变量的值,如是,将当前第一磁场强度的值赋值给第一变量并保存;
第四变量判断单元:用于判断当前第二磁场强度的值是否大于所述第四变量的值,如是,将当前第二磁场强度的值赋值给第四变量并保存;
第三变量判断单元:用于判断当前第二磁场强度的值是否小于所述第三变量的值,如是,将当前第二磁场强度的值赋值给第三变量并保存;
所述第一变量、第二变量、第三变量和第四变量的值分别为所述第一磁场强度的最小值、第一磁场强度的最大值、第二磁场强度的最小值和第二磁场强度的最大值。
实施本发明的二维电子罗盘数据的取得方法及装置,具有以下有益效果:由于通过使二维电子罗盘的第一传感器和第二传感器在水平面上旋转,分别读取旋转过程中第一传感器测量的第一磁场强度和第二传感器测量的第二磁场强度的值,并通过比较运算得到第一磁场强度及第二磁场强度的最大值和最小值;分别取得第一磁场强度的最大值和最小值的第一之和,以及第二磁场强度的最大值和最小值的第二之和,并将第一之和以及第二之和分别除以2即可得到第一磁场强度及第二磁场强度的偏移量,在单片机中可将第一之和以及第二之和分别右移1位得到第一磁场强度及第二磁场强度的偏移量;在使用中,分别读取第一传感器当前测量的第一实际磁场强度和第二传感器当前测量的第二实际磁场强度的值,并将第一实际磁场强度减去所述第一磁场强度偏移量得到第一磁场强度校正值,将第二实际磁场强度减去所述第二磁场强度偏移量得到第二磁场强度校正值,根据公式可得到二维电子罗盘所附载体的显示屏正方向与地磁北方向的夹角,并由上述夹角取得二维电子罗盘所附载体的指示针的指示方向;整个过程比较运算较多,涉及的乘除法很少,所以其公式简单、计算步骤较少。
附图说明
图1是本发明二维电子罗盘数据的取得方法及装置实施例其方法的流程图;
图2是理想情况下二维电子罗盘在水平面内的数据分布图;
图3是二维电子罗盘在水平面内的数据分布发生偏移的示意图;
图4是二维电子罗盘及所附载体显示屏的示意图;
图5是二维电子罗盘及所附载体旋转90度后的示意图;
图6是第一传感器和第二传感器与地磁北的关系示意图;
图7是显示屏正方向与地磁北之间的夹角示意图;
图8是所述实施例中取得第一磁场强度和第二磁场强度最大值和最小值的具体流程图;
图9是所述实施例中取得第一磁场强度偏移量和第一磁场强度偏移量的具体流程图;
图10是所述实施例中取得指示针指示方向的具体流程图;
图11是所述实施例中装置的结构示意图;
图12是所述实施例中磁场强度读取及保存模块的结构示意图;
图13是所述实施例中偏移量取得模块的结构示意图。
具体实施方式
为了便于本领域的普通技术人员能够理解并实施本发明,下面将结合附图对本发明实施例作进一步说明。
在本发明二维电子罗盘数据的取得方法及装置实施例中,其方法的流程图如图1所示。本实施例中,二维电子罗盘包括第一传感器和第二传感器,图1中,该方法包括:
步骤S01使二维电子罗盘的第一传感器和第二传感器在水平面内旋转,分别读取第一传感器测量的第一磁场强度和第二传感器测量的第二磁场强度的值,并保存第一磁场强度及第二磁场强度的最大值和最小值:如图2所示,二维电子罗盘是两轴电子罗盘,在理想的情况下,二维电子罗盘在水平面的数据(磁场强度)分布是一个圆,且圆心在(0, 0)点上,本实施例中,将第一传感器和第二传感器的方向和位置标记为(X,Y), X轴和Y轴在水平面内正交,第一传感器和第二传感器分别测量水平面内两个正交方向的磁场,也即测量地磁场的水平分量在其正交的两测量轴(X轴和Y轴)的分量。当然,第一传感器和第二传感器的方向和位置也可以标记为其他字母。如图3所示,由于PCB板上的电磁影响以及外部干扰,圆心会有偏移,这需要进行校正,本实施例中,在校正过程中,使二维电子罗盘的第一传感器和第二传感器在水平面内旋转。第一传感器测量的第一磁场强度和第二传感器测量的第二磁场强度其实分别是地磁场的水平分量在X轴和Y轴上的分量,也即第一磁场强度是地磁场的水平分量在X轴上的分量,第二磁场强度是地磁场的水平分量在Y轴上的分量。在二维电子罗盘的第一传感器和第二传感器旋转过程中,X轴方向和Y轴方向的分量值会不断变化,正是在这种变化中产生了原点的偏移,因此需要分别记录X轴和Y轴方向分量的最大值和最小值,也即分别记录第一磁场强度的最大值和最小值,以及第二磁场强度的最大值和最小值。值得一提的是,本步骤中,是通过比较运算得到第一磁场强度和第二磁场强度的最大值和最小值的。
步骤S02判断旋转的圈数是否小于预先设定的圈数:本实施例中,预先设定旋转的圈数,也即第一传感器和第二传感器旋转的圈数达到预先设定的圈数时,就会停止旋转。二维电子罗盘的第一传感器和第二传感器在旋转过程中可以是绕某个固定点旋转,也可以不绕固定点旋转,旋转过程中每经过坐标系的四个象限就算是旋转一圈。本实施例中,设定的圈数为5圈,当然,根据实际需要,设定的圈数可进行调节。本步骤中,如果判断的结果为是,返回步骤S01继续读取第一传感器测量的第一磁场强度和第二传感器测量的第二磁场强度的值;如果判断的结果为否,执行步骤S03。
步骤S03 停止旋转:如果上述步骤S02的判断结果为否,则执行本步骤。本步骤中,由于第一传感器和第二传感器旋转的圈数已达到设定的圈数,所以停止旋转。执行完步骤,执行步骤S04。
步骤S04根据第一磁场强度及第二磁场强度的最大值和最小值,分别取得第一磁场强度偏移量及第二磁场强度偏移量:本步骤中,根据第一磁场强度及第二磁场强度的最大值和最小值,分别取得第一磁场强度偏移量及第二磁场强度偏移量,第一磁场强度偏移量及第二磁场强度偏移量就是要补偿的量。本实施例中,第一磁场强度偏移量其实就是第一磁场强度的最大值和最小值的平均值,第二磁场强度偏移量其实就是第二磁场强度的最大值和最小值的平均值。
步骤S05分别读取第一传感器当前测量的第一实际磁场强度和第二传感器当前测量的第二实际磁场强度的值,并将第一实际磁场强度减去所述第一磁场强度偏移量得到第一磁场强度校正值,将第二实际磁场强度减去所述第二磁场强度偏移量得到第二磁场强度校正值:在实际使用中,要对实际测量的第一磁场强度和第二磁场强度进行补偿。分别读取第一传感器当前测量的第一实际磁场强度和第二传感器当前测量的第二实际磁场强度的值,并将第一实际磁场强度减去所述第一磁场强度偏移量得到第一磁场强度校正值,将第二实际磁场强度减去所述第二磁场强度偏移量得到第二磁场强度校正值。第一磁场强度校正值和第二磁场强度校正值就是经过补偿后的值。
步骤S06依据第一磁场强度校正值和第二磁场强度校正值取得二维电子罗盘所附载体的显示屏正方向与地磁北方向的夹角,并由夹角取得二维电子罗盘所附载体的指示针的指示方向:二维电子罗盘所附的载体(电子产品)中,都是靠二维电子罗盘确定的地磁北方向和载体的显示屏的显示方向的夹角,来确定载体中指向正北方的指示针的显示方向。本实施例中将显示屏的正上方定义为显示屏的正方向,如图4所示,第二传感器( Y轴正方向)指向北方,显示屏的正方向也面向北方,这时候只有第二传感器(Y轴)有值且为磁场感应强度最强的方向,第一传感器(X轴)测量的值为0,地磁北N与显示屏的正方向的夹角为0度。地磁北方向是固定的,当二维电子罗盘所附载体旋转时,其显示屏正方向与地磁北方向的夹角会发生变化。如图5所示,载体顺时针转动了90度,这时候显示屏的正方向指向东方,第一传感器(X轴)有值且为磁场感应强度最强的方向,但是值是负数,地磁北N与显示屏的正方向的夹角为90度。
如图6所示,(X,Y)是二维电子罗盘中第一传感器和第二传感器的方向和位置,X轴和Y轴方向感应的磁场强度的和向量方向即为地磁北N方向,如果设第一传感器测量的磁场强度值为x,第二传感器测量的磁场强度值为y, 也即地磁场水平分量在X轴和Y轴方向的分量分别是x和y(x<0,y<0),同样,当第一传感器和第二传感器的位置变化到(X’,Y’)位置时,在X轴和Y轴方向的分量分别是x’和y’(x’>0,y’<0),上述结论是在假设二维电子罗盘水平放置的条件下得出的,本实施例中,将地磁北N与显示屏正方向的相对夹角设定为α,根据图6中传感器与地磁北的关系,可以推出α的大小(传感器与显示屏的方位关系是固定的)。下面的公式一也是在上述假设下推导出来的(这里假设Y轴正方向与显示屏的正方向相同,这个与PCB板上二维电子罗盘芯片的放置方向有关):
其中,显示屏正方向与地磁北N的夹角关系如图7所示,因为显示屏正方向与地磁北N的关系确定,因此将显示屏正方向顺时针旋转α角度即是指示针显示的正北方向。同理,如果要使指示针显示偏北30度的方向,只需要将指示针顺时针旋转30度即可。本实施例中,角度统一用度数或弧度表示。
图8是本实施例中取得第一磁场强度和第二磁场强度最大值和最小值步骤的具体流程图,图8中,其包括:
步骤S101设定第一变量、第二变量、第三变量和第四变量:本步骤中,二维电子罗盘的第一传感器和第二传感器在旋转过程中,为了保存读取的表示第一磁场强度和第二磁场强度的最大值和最小值,设定了四个变量,这四个变量分别为第一变量、第二变量、第三变量和第四变量,最终将在整个旋转过程中读取的第一磁场强度的最小值赋值给第一变量并保存,将第一磁场强度的最大值赋值给第二变量并保存,将第二磁场强度的最小值赋值给第三变量并保存,将第二磁场强度的最大值赋值给第四变量并保存。
步骤S102使二维电子罗盘的第一传感器和第二传感器在水平面内旋转,分别读取第一传感器测量的第一磁场强度和第二传感器测量的第二磁场强度的值,并将第一磁场强度的值分别赋值给第一变量和第二变量,将第二磁场强度的值分别赋值给第三变量和第四变量:本步骤中,将第一变量、第二变量、第三变量和第四变量赋初值,即将旋转过程中第一次读取的第一磁场强度的值分别赋值给第一变量和第二变量,将第一次读取的第二磁场强度的值分别赋值给第三变量和第四变量。
值得一提的是,在读取第一磁场强度和第二磁场强度的值之前,也可以事先给第一变量、第二变量、第三变量和第四变量赋初值,可以将第一变量、第二变量、第三变量和第四变量分别赋初值为第一设定值、第二设定值、第三设定值和第四设定值,上述第一设定值、第二设定值、第三设定值和第四设定值可根据实际需要设置其大小。例如:将上述第一变量、第二变量、第三变量和第四变量依次赋初值为32767、0、32767和0。将旋转过程中每次读取的第一磁场强度值分别与第一变量和第二变量的值比较大小,每次读取的第二磁场强度值分别与第三变量和第四变量的值比较大小。
步骤S103继续分别读取第一传感器测量的第一磁场强度和第二传感器测量的第二磁场强度的值:本步骤中,在二维电子罗盘的第一传感器和第二传感器旋转过程中,继续分别读取第一传感器测量第一磁场强度和第二传感器测量的第二磁场强度的值。
步骤S104判断当前第一磁场强度的值是否大于第二变量的值:本步骤中,判断当前第一磁场强度的值是否大于第二变量的值,也即比较当前第一磁场强度的值与第二变量的值的大小,可通过比较运算得到比较结果, 如果判断的结果为是,即当前第一磁场强度的值大于第二变量的值,执行步骤S105,如果判断的结果为否,执行步骤S106。
步骤S105将当前第一磁场强度的值赋值给第二变量并保存:如果上述步骤S104的判断结果为是,则执行本步骤。本步骤中,将当前第一磁场强度的值赋值给第二变量并保存。
步骤S106判断当前第一磁场强度的值是否小于第一变量的值:如果上述步骤S104的判断结果为否,则执行本步骤。本步骤中,判断当前第一磁场强度的值是否小于第一变量的值,如果判断的结果为是,执行步骤S107,否则,执行步骤S108。
步骤S107将当前第一磁场强度的值赋值给第一变量并保存:如果上述步骤S106的判断结果为是,则执行本步骤。本步骤中,将当前第一磁场强度的值赋值给第一变量并保存。
步骤S108判断当前第二磁场强度的值是否大于第四变量的值:如果上述步骤S106的判断结果为否,则执行本步骤。本步骤中,判断当前第二磁场强度的值是否大于第四变量的值,如果判断的结果为是,执行步骤S109,否则,执行步骤S110。
步骤S109将当前第二磁场强度的值赋值给第四变量并保存:如果上述步骤S108的判断结果为是,则执行本步骤。本步骤中,将当前第二磁场强度的值赋值给第四变量并保存。
步骤S110判断当前第二磁场强度的值是否小于第三变量的值: 如果上述步骤S108的判断结果为否,则执行本步骤。本步骤中,判断当前第二磁场强度的值是否小于第三变量的值,如果判断的结果为是,执行步骤S111,否则,执行步骤S02。
步骤S111将当前第二磁场强度的值赋值给第三变量并保存:如果上述步骤S110的判断结果为是,则执行本步骤。本步骤中,将当前第二磁场强度的值赋值给第三变量并保存。执行完本步骤,执行步骤S02。
值得一提的是,上述步骤S104-S107和步骤S108-S111的执行顺序可互换,即先顺序执行步骤S104-S107再顺序执行步骤S108-S111,或先顺序执行步骤S108-S111再顺序执行步骤S104-S107。从二维电子罗盘的第一传感器和第二传感器开始旋转一直到停止旋转,整个过程中读取的第一磁场强度和第二磁场强度分别有个最大值和最小值,上述第一变量、第二变量、第三变量和第四变量的值分别为第一磁场强度的最小值、第一磁场强度的最大值、第二磁场强度的最小值和第二磁场强度的最大值。整个过程都是比较运算,不涉及乘法和除法运算,所以其算法简单、运算步骤较少。
在本实施例中,更进一步而言,对于步骤S03还可以进一步具体细化,请参见图9,其进一步包括:
步骤S301将第一磁场强度的最大值和最小值进行相加得到第一之和:本步骤中,将第一磁场强度的最大值和最小值进行相加得到第一之和,本实施例中,将第一磁场强度的最大值、第一磁场强度的最小值和第一之和分别标记为max_x、min_x和x1 ,也即max_x与 min_x的和为x1。
步骤S302将第一之和除以2得到第一磁场强度偏移量:本步骤中,将第一之和除以2得到第一磁场强度偏移量,其实就是求取max_x与 min_x的平均值,本实施例中,将第一磁场强度偏移量标记为off_x。通过一步除法求取off_x,其算法较简单。
步骤S303将第二磁场强度的最大值和最小值进行相加得到第二之和:本步骤中,将第二磁场强度的最大值和最小值进行相加得到第二之和,本实施例中,将第二磁场强度的最大值、第二磁场强度的最小值和第二之和分别标记为max_y、min_y和y1 ,也即max_y与 min_y的和为y1。
步骤S304 将第二之和除以2得到第二磁场强度偏移量:本步骤中,将第二之和除以2得到第二磁场强度偏移量,其实就是求取max_y与 min_y的平均值,本实施例中,将第二磁场强度偏移量标记为off_y。通过一步除法求取off_y,其公式比较简单。其实off_x和off_y分别是圆心在X轴方向和Y轴方向的偏移量。
值得一提的是,上述本步骤S302和S304中除以2可通过在单片机中进行右移1位来实现,具体来讲,当x1用二进制表示时将其右移1位得到off_x,当y1用二进制表示时将其右移1位得到off_y,由于通过移位实现,不涉及乘除法,所以其公式更简单、计算步骤较少。
值得一提的是,上述步骤中,先顺序执行步骤S301和S302再顺序执行步骤S303和S304,或先顺序执行步骤S303和S304再顺序执行步骤S301和S302。也即先计算off_x的值再计算off_y的值,或先计算off_y的值再计算off_x的值。
在本实施例中,更进一步而言,对于步骤S05还可以进一步具体细化,请参见图10,其进一步包括:
步骤S501依据第一磁场强度校正值和第二磁场强度校正值通过公式计算取得二维电子罗盘所附载体的显示屏正方向与地磁北方向的夹角:本步骤中,将第一磁场强度校正值和第二磁场强度校正值代入上述公式一,通过计算可得到二维电子罗盘所附载体的显示屏正方向与地磁北方向的夹角(即α)。
步骤S502将二维电子罗盘所附载体的显示屏正方向顺时针旋转夹角即得到二维电子罗盘所附载体的指示针的指示方向:本步骤中,将二维电子罗盘所附载体的显示屏正方向顺时针旋转α角度即得到二维电子罗盘所附载体的指示针的指示方向。
本实施例还涉及一种实现上述二维电子罗盘数据的取得方法的装置,其结构示意图如图11所示。上述二维电子罗盘包括第一传感器和第二传感器,图11中,该装置包括磁场强度读取及保存模块1、旋转圈数判断模块2、偏移量取得模块3、磁场强度校正模块4和指示方向取得模块5;其中,磁场强度读取及保存模块1用于使二维电子罗盘的第一传感器和第二传感器在水平面内旋转,分别读取第一传感器测量的第一磁场强度和第二传感器测量的第二磁场强度的值,并保存第一磁场强度及第二磁场强度的最大值和最小值;旋转圈数判断模块2用于判断旋转的圈数是否小于预先设定的圈数,如是,返回继续读取第一传感器测量的第一磁场强度和第二传感器测量的第二磁场强度的值;否则,停止旋转;偏移量取得模块3用于根据第一磁场强度及第二磁场强度的最大值和最小值,分别取得第一磁场强度偏移量及第二磁场强度偏移量;磁场强度校正模块4用于分别读取第一传感器当前测量的第一实际磁场强度和第二传感器当前测量的第二实际磁场强度的值,并将第一实际磁场强度减去第一磁场强度偏移量得到第一磁场强度校正值,将第二实际磁场强度减去第二磁场强度偏移量得到第二磁场强度校正值;指示方向取得模块5用于依据第一磁场强度校正值和第二磁场强度校正值取得二维电子罗盘所附载体的显示屏正方向与地磁北方向的夹角,并由夹角取得二维电子罗盘所附载体的指示针的指示方向。
本实施例中,磁场强度读取及保存模块1的结构示意图如图12所示,图12中,磁场强度读取及保存模块1进一步包括变量设定单元11、变量赋值单元12、磁场强度读取单元13、第二变量判断单元14、第一变量判断单元15、第四变量判断单元16和第三变量判断单元17;其中,变量设定单元11用于设定第一变量、第二变量、第三变量和第四变量;变量赋值单元12用于使二维电子罗盘的第一传感器和第二传感器在水平面内旋转,分别读取第一传感器测量的第一磁场强度和第二传感器测量的第二磁场强度的值,并将第一磁场强度的值分别赋值给第一变量和第二变量,将第二磁场强度的值分别赋值给第三变量和第四变量;磁场强度读取单元13用于继续分别读取第一传感器测量的第一磁场强度和第二传感器测的第二磁场强度的值;第二变量判断单元14用于判断当前第一磁场强度的值是否大于第二变量的值,如是,将当前第一磁场强度的值赋值给第二变量并保存; 第一变量判断单元15用于判断当前第一磁场强度的值是否小于第一变量的值,如是,将当前第一磁场强度的值赋值给第一变量并保存; 第四变量判断单元16用于判断当前第二磁场强度的值是否大于第四变量的值,如是,将当前第二磁场强度的值赋值给第四变量并保存; 第三变量判断单元17用于判断当前第二磁场强度的值是否小于第三变量的值,如是,将当前第二磁场强度的值赋值给第三变量并保存。上述第一变量、第二变量、第三变量和第四变量的值分别为第一磁场强度的最小值、第一磁场强度的最大值、第二磁场强度的最小值和第二磁场强度的最大值。
本实施例中,偏移量取得模块3的结构示意图如图13所示,图13中,偏移量取得模块3进一步包括第一之和取得单元31、第一相除单元32、第二之和取得单元33和第二相除单元34;其中,第一之和取得单元31用于将第一磁场强度的最大值和最小值进行相加得到第一之和;第一相除单元32用于将第一之和除以2得到第一磁场强度偏移量;第二之和取得单元33用于将第二磁场强度的最大值和最小值进行相加得到第二之和;第二相除单元34用于将第二之和除以2得到第二磁场强度偏移量。上述除以2是通过在单片机中进行右移1位实现的。
总之,在本实施例中,校正过程就是将二维电子罗盘所附载体放标定台上旋转,磁场强度在X轴方向和Y轴方向的值会不断变化,正是在这种变化中产生了原点的偏移,因此需要分别记录磁场强度在X轴方向和Y轴方向的最大值和最小值,校正的过程中就会获取到这些值并求出干扰引起的偏移量,在X轴方向和Y轴方向的偏移量分别记作off_x和off_y,磁场强度在X轴和Y轴方向的最大值和最小值的平均值就是偏离圆心的off_x和off_y,而在实际的使用过程中,这些偏移就可以作为补偿的依据,由于二维电子罗盘的局限性,没有考虑垂直方向的干扰影响。
由于校正过程中,比较运算占绝大部分,计算的地方就是off_x=(max_x+min_x)/2;off_y=(max_y+min_y)/2;其实这两个计算在单片机中可以通过移位实现,即off_x=(max_x+min_x)>>1;off_y=(max_y+min_y)>>1。整个过程中做乘法和除法次数明显减少,可以减少很多计算步骤,在单片机中也可以使用。在对指向精度要求不高的情况下保证角度的正确(5度以内的偏移)。本方法在背景技术中介绍的两种方法(一种是数学建模,另一种是依靠数学方法直接推导出理想化的公式,在程序中实现并做补偿)都可以轻松实现。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种二维电子罗盘数据的取得方法,其特征在于,所述二维电子罗盘包括第一传感器和第二传感器,所述方法包括如下步骤:
A)使所述二维电子罗盘的第一传感器和第二传感器在水平面内旋转,分别读取所述第一传感器测量的第一磁场强度和第二传感器测量的第二磁场强度的值,并保存所述第一磁场强度及第二磁场强度的最大值和最小值;
B)判断所述旋转的圈数是否小于预先设定的圈数,如是,返回步骤A)继续读取所述第一传感器测量的第一磁场强度和第二传感器测量的第二磁场强度的值;否则,停止所述旋转并执行步骤C);
C)根据所述第一磁场强度及第二磁场强度的最大值和最小值,分别取得所述第一磁场强度偏移量及第二磁场强度偏移量;
D)分别读取所述第一传感器当前测量的第一实际磁场强度和第二传感器当前测量的第二实际磁场强度的值,并将所述第一实际磁场强度减去所述第一磁场强度偏移量得到第一磁场强度校正值,将所述第二实际磁场强度减去所述第二磁场强度偏移量得到第二磁场强度校正值;
E)依据所述第一磁场强度校正值和第二磁场强度校正值取得所述二维电子罗盘所附载体的显示屏正方向与地磁北方向的夹角,并由所述夹角取得所述二维电子罗盘所附载体的指示针的指示方向。
2.根据权利要求1所述的二维电子罗盘数据的取得方法,其特征在于,所述步骤C)进一步包括:
C1)将所述第一磁场强度的最大值和最小值进行相加得到第一之和;
C2)将所述第一之和除以2得到所述第一磁场强度偏移量;
C3)将所述第二磁场强度的最大值和最小值进行相加得到第二之和;
C4)将所述第二之和除以2得到所述第二磁场强度偏移量;
上述步骤中,先顺序执行所述步骤C1)和C2)再顺序执行所述步骤C3)和C4),或先顺序执行所述步骤C3)和C4)再顺序执行所述步骤C1)和C2)。
3.根据权利要求2所述的二维电子罗盘数据的取得方法,其特征在于,所述步骤C)中除以2是通过在单片机中进行右移1位实现的。
4.根据权利要求1至3任意一项所述的二维电子罗盘数据的取得方法,其特征在于,所述步骤A)进一步包括:
A1)设定第一变量、第二变量、第三变量和第四变量;
A2)使所述二维电子罗盘的第一传感器和第二传感器在水平面内旋转,分别读取所述第一传感器测量的第一磁场强度和第二传感器测量的第二磁场强度的值,并将所述第一磁场强度的值分别赋值给所述第一变量和第二变量,将所述第二磁场强度的值分别赋值给所述第三变量和第四变量;
A3)继续分别读取所述第一传感器测量的第一磁场强度和第二传感器测的第二磁场强度的值;
A4)判断当前第一磁场强度的值是否大于所述第二变量的值,如是,将当前第一磁场强度的值赋值给第二变量并保存;否则,执行步骤A5);
A5)判断当前第一磁场强度的值是否小于所述第一变量的值,如是,将当前第一磁场强度的值赋值给第一变量并保存;否则,执行步骤A6);
A6)判断当前第二磁场强度的值是否大于所述第四变量的值,如是,将当前第二磁场强度的值赋值给第四变量并保存;否则,执行步骤A7);
A7)判断当前第二磁场强度的值是否小于所述第三变量的值,如是,将当前第二磁场强度的值赋值给第三变量并保存,执行步骤B);否则,执行步骤B);
所述第一变量、第二变量、第三变量和第四变量的值分别为所述第一磁场强度的最小值、第一磁场强度的最大值、第二磁场强度的最小值和第二磁场强度的最大值。
5.根据权利要求1至3任意一项所述的二维电子罗盘数据的取得方法,其特征在于,所述步骤A)进一步包括:
A1)设定第一变量、第二变量、第三变量和第四变量,并分别赋初值为第一设定值、第二设定值、第三设定值和第四设定值;
A2)使所述二维电子罗盘的第一传感器和第二传感器在水平面内旋转,分别读取所述第一传感器测量的第一磁场强度和第二传感器测量的第二磁场强度的值;
A3)判断当前第一磁场强度的值是否大于所述第二变量的值,如是,将当前第一磁场强度的值赋值给第二变量并保存;否则,执行步骤A4);
A4)判断当前第一磁场强度的值是否小于所述第一变量的值,如是,将当前第一磁场强度的值赋值给第一变量并保存;否则,执行步骤A5);
A5)判断当前第二磁场强度的值是否大于所述第四变量的值,如是,将当前第二磁场强度的值赋值给第四变量并保存;否则,执行步骤A6);
A6)判断当前第二磁场强度的值是否小于所述第三变量的值,如是,将当前第二磁场强度的值赋值给第三变量并保存,执行步骤B);否则,执行步骤B);
所述第一变量、第二变量、第三变量和第四变量的值分别为所述第一磁场强度的最小值、第一磁场强度的最大值、第二磁场强度的最小值和第二磁场强度的最大值。
6.根据权利要求1至3任意一项所述的二维电子罗盘数据的取得方法,其特征在于,所述步骤E)进一步包括:
E1)依据所述第一磁场强度校正值和第二磁场强度校正值通过公式计算取得所述二维电子罗盘所附载体的显示屏正方向与地磁北方向的夹角;
E2)将所述二维电子罗盘所附载体的显示屏正方向顺时针旋转所述夹角即得到所述二维电子罗盘所附载体的指示针的指示方向。
7.一种实现如权利要求1所述的二维电子罗盘数据的取得方法的装置,其特征在于,所述二维电子罗盘包括第一传感器和第二传感器,所述装置包括:
磁场强度读取及保存模块:用于使所述二维电子罗盘的第一传感器和第二传感器在水平面内旋转,分别读取所述第一传感器测量的第一磁场强度和第二传感器测量的第二磁场强度的值,并保存所述第一磁场强度及第二磁场强度的最大值和最小值;
旋转圈数判断模块:用于判断所述旋转的圈数是否小于预先设定的圈数,如是,返回继续读取所述第一传感器测量的第一磁场强度和第二传感器测量的第二磁场强度的值;否则,停止所述旋转;
偏移量取得模块:用于根据所述第一磁场强度及第二磁场强度的最大值和最小值,分别取得所述第一磁场强度偏移量及第二磁场强度偏移量;
磁场强度校正模块:用于分别读取所述第一传感器当前测量的第一实际磁场强度和第二传感器当前测量的第二实际磁场强度的值,并将所述第一实际磁场强度减去所述第一磁场强度偏移量得到第一磁场强度校正值,将所述第二实际磁场强度减去所述第二磁场强度偏移量得到第二磁场强度校正值;
指示方向取得模块:用于依据所述第一磁场强度校正值和第二磁场强度校正值取得所述二维电子罗盘所附载体的显示屏正方向与地磁北方向的夹角,并由所述夹角取得所述二维电子罗盘所附载体的指示针的指示方向。
8.根据权利要求7所述的实现二维电子罗盘数据的取得方法的装置,其特征在于,所述偏移量取得模块进一步包括:
第一之和取得单元:用于将所述第一磁场强度的最大值和最小值进行相加得到第一之和;
第一相除单元:用于将所述第一之和除以2得到所述第一磁场强度偏移量;
第二之和取得单元:用于将所述第二磁场强度的最大值和最小值进行相加得到第二之和;
第二相除单元:用于将所述第二之和除以2得到所述第二磁场强度偏移量。
9.根据权利要求8所述的实现二维电子罗盘数据的取得方法的装置,其特征在于,所述除以2是通过在单片机中进行右移1位实现的。
10.根据权利要求9所述的实现二维电子罗盘数据的取得方法的装置,其特征在于,所述磁场强度读取及保存模块进一步包括:
变量设定单元:用于设定第一变量、第二变量、第三变量和第四变量;
变量赋值单元:用于使所述二维电子罗盘的第一传感器和第二传感器在水平面内旋转,分别读取所述第一传感器测量的第一磁场强度和第二传感器测量的第二磁场强度的值,并将所述第一磁场强度的值分别赋值给所述第一变量和第二变量,将所述第二磁场强度的值分别赋值给所述第三变量和第四变量;
磁场强度读取单元:用于继续分别读取所述第一传感器测量的第一磁场强度和第二传感器测的第二磁场强度的值;
第二变量判断单元:用于判断当前第一磁场强度的值是否大于所述第二变量的值,如是,将当前第一磁场强度的值赋值给第二变量并保存;
第一变量判断单元:用于判断当前第一磁场强度的值是否小于所述第一变量的值,如是,将当前第一磁场强度的值赋值给第一变量并保存;
第四变量判断单元:用于判断当前第二磁场强度的值是否大于所述第四变量的值,如是,将当前第二磁场强度的值赋值给第四变量并保存;
第三变量判断单元:用于判断当前第二磁场强度的值是否小于所述第三变量的值,如是,将当前第二磁场强度的值赋值给第三变量并保存;
所述第一变量、第二变量、第三变量和第四变量的值分别为所述第一磁场强度的最小值、第一磁场强度的最大值、第二磁场强度的最小值和第二磁场强度的最大值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012104677873A CN102937446A (zh) | 2012-11-19 | 2012-11-19 | 一种二维电子罗盘数据的取得方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2012104677873A CN102937446A (zh) | 2012-11-19 | 2012-11-19 | 一种二维电子罗盘数据的取得方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102937446A true CN102937446A (zh) | 2013-02-20 |
Family
ID=47696357
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2012104677873A Pending CN102937446A (zh) | 2012-11-19 | 2012-11-19 | 一种二维电子罗盘数据的取得方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102937446A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105606082A (zh) * | 2015-12-22 | 2016-05-25 | 中航华东光电有限公司 | 电子罗盘指北精度纠正方法 |
CN105628010A (zh) * | 2015-09-25 | 2016-06-01 | 宇龙计算机通信科技(深圳)有限公司 | 终端指南针的校准方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5644851A (en) * | 1991-12-20 | 1997-07-08 | Blank; Rodney K. | Compensation system for electronic compass |
CN1323979A (zh) * | 2000-05-12 | 2001-11-28 | 精工电子有限公司 | 校正机构,具有校正机构的电子方位计和电子时钟 |
CN1624425A (zh) * | 2003-12-03 | 2005-06-08 | 三星电机株式会社 | 用在电子罗盘内的自动校准方法 |
CN1715834A (zh) * | 2004-06-11 | 2006-01-04 | 雅马哈株式会社 | 用于测量地磁传感器磁偏的方法与装置以及便携电子装置 |
-
2012
- 2012-11-19 CN CN2012104677873A patent/CN102937446A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5644851A (en) * | 1991-12-20 | 1997-07-08 | Blank; Rodney K. | Compensation system for electronic compass |
CN1323979A (zh) * | 2000-05-12 | 2001-11-28 | 精工电子有限公司 | 校正机构,具有校正机构的电子方位计和电子时钟 |
CN1624425A (zh) * | 2003-12-03 | 2005-06-08 | 三星电机株式会社 | 用在电子罗盘内的自动校准方法 |
CN1715834A (zh) * | 2004-06-11 | 2006-01-04 | 雅马哈株式会社 | 用于测量地磁传感器磁偏的方法与装置以及便携电子装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105628010A (zh) * | 2015-09-25 | 2016-06-01 | 宇龙计算机通信科技(深圳)有限公司 | 终端指南针的校准方法及系统 |
CN105628010B (zh) * | 2015-09-25 | 2018-07-27 | 宇龙计算机通信科技(深圳)有限公司 | 终端指南针的校准方法及系统 |
CN105606082A (zh) * | 2015-12-22 | 2016-05-25 | 中航华东光电有限公司 | 电子罗盘指北精度纠正方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110858899B (zh) | 一种摄像机机芯光轴中心和视场角的测量方法及系统 | |
CN205333067U (zh) | 一种激光摄影测量系统 | |
CN111579561B (zh) | 位置点补偿方法、装置、设备及存储介质 | |
CN106647180B (zh) | 直写曝光机中基于标定板的误差校正和补偿方法 | |
TW201305598A (zh) | 量測座標校正系統及方法 | |
JP2014029332A (ja) | 磁力計の方位を補正する方法、及び磁力計 | |
CN104913777A (zh) | 一种地磁传感器应用系统的误差补偿算法 | |
US20220319118A1 (en) | Electronic device for providing indoor positioning and method therefor | |
CN202916839U (zh) | 设有多个读卡器天线的射频卡系统 | |
TWI555994B (zh) | 磁性感測器的動態校準技術 | |
CN108426646A (zh) | 设备温度测量方法和装置 | |
CN102937446A (zh) | 一种二维电子罗盘数据的取得方法及装置 | |
US10955435B2 (en) | Calibration of vectors in a measurement system | |
CN115963710A (zh) | 套刻误差修正方法及装置、电子设备和存储介质 | |
CN110987032A (zh) | 磁编码器、绝对电角度检测方法、系统及可读存储介质 | |
CN118485722A (zh) | 一种基于视觉影像坐标系的图纹转印位置校正方法 | |
CN114178720B (zh) | 振镜式激光打标机的校正方法和终端设备 | |
CN108444466B (zh) | 一种定位导航方法、装置及终端设备 | |
CN116007600A (zh) | 一种多传感器融合的罗盘校正方法 | |
CN105004332A (zh) | 一种便携式设备电子罗盘的校正方法 | |
CN114777755A (zh) | 电子罗盘校准方法、装置、电子设备及存储介质 | |
CN115511977A (zh) | 一种基于标定模板的外参标定方法及装置 | |
US10794698B2 (en) | Method and apparatus for indicating direction | |
JP2000180170A (ja) | 地磁気検出装置 | |
CN117523167A (zh) | 基于Yolov8和透视变换的工业仪表图像自动矫正方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20130220 |