您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 磁力计运用(HMC5833L,HMC5983)
(一)ATan,ATan2区别对于tan(θ)=y/x:θ=ATan(y/x)求出的θ取值范围是[-PI/2,PI/2]。θ=ATan2(y,x)求出的θ取值范围是[-PI,PI]。当(x,y)在第一象限,0θPI/2.当(x,y)在第二象限PI/2θ≤PI.当(x,y)在第三象限,-PIθ-PI/2.当(x,y)在第四象限,-PI/2θ0.当点(x,y)在象限的边界也就是坐标轴上时:当y是0,x为非负值,θ=0.当y是0,x是负值,θ=PI.当y是正值,x是0,θ=PI/2.当y是负值,x是0,θ=-PI/2.由此可知,一般情况下用ATan即可,当对所求出角度的取值范围有特殊要求时,应使用ATan2(二)什么是磁偏角和方位公式磁偏角,即现实中指北针指向的磁极(地磁极)和我们地图上标注的传统意义的磁极是不重合的,有一个夹角。你看地球仪上的地球也不是歪脖子转动么,就是这个意思。下面是几何时间,如何定义方位。这里采用了反正切角的表达方式。π是180度,2π是360度,n*1/2是90度...其实这个反正切角就是射线(x,y)和x轴正向间的夹角。没什么好神秘的。如果y0,射线在x轴下方,那么角度从x轴正向顺时针旋转,而且是负值;如果y0,角度从x轴正向逆时针旋转。几个特殊点的取值:(0,0)夹角为0(0,1)对于的复平面夹角为π/2,(−1,0)对于复平面的夹角为π,(0,−1)对于复平面的夹角为3π/2。看完了这些基础知识,我们来分析honeywell的HMC5883三轴数位罗盘对角度的计算公式。angle=atan2(y,x)*(180/3.14159265)+180;其实就是这样的:角度=atan2(y,x)*(180/π)+180,这里角度用0~360°表示。因为atan2(y,x)算出来的会是多少π,所以后面用了个180/π来换算成度数(0~360°)。但是,但是后面那个+180是干嘛?如果是60°的角,+180就变成了240°,从A点变成了B点变成了下面这个图。仔细想想公式,因为这种反正切角的范围是从-π到π(-180°~180°),而我们通常读出的指南针角度是0°~360°,所以需要把这个范围进行平移180°,到指南针的角度。但是这样一来,原来60°的角度变成了240°,也就是,整个象限沿着虚线被镜像了一下。下图x轴要变成南“的位置,好吧,这就正常了。于是我们得到了下面这个方位判断:if((angle22.5)||(angle337.5))Serial.print(South);if((angle22.5)&&(angle67.5))Serial.print(South-West);if((angle67.5)&&(angle112.5))Serial.print(West);if((angle112.5)&&(angle157.5))Serial.print(North-West);if((angle157.5)&&(angle202.5))Serial.print(North);if((angle202.5)&&(angle247.5))Serial.print(NorthEast);if((angle247.5)&&(angle292.5))Serial.print(East);if((angle292.5)&&(angle337.5))Serial.print(SouthEast);假设我们是60°角,也就是指北针正北顺时针转60度位置,应该在NE(东北)位置,套用上面的公式,60+180=240°,然后套用上面的条件判断:angle202.5°并且angle247.5°,处于NorthEast(东北)位置,正确。+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++磁场单位:1Gs(高斯)=10^-4T(特斯拉T)1T=10^4Gs=10^7mGs高斯是“厘米克秒”制;特斯拉是“米千克秒”制+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++磁力计运用:HMC5883L并没有直接和主控制器的I2C接口相连接。而是与MPU6050的AUXI2C接口连接,这样,有两种方式访问HMC5883L的数据。1.将MPU6050的AUX接口设置成直连式,STM32F可以通过I2C直接访问HMC5883L2.开启MPU6050的AUX接口为主控制器,通过AUXI2C接口MPU6050负责采集HMC5883L的采样结果,并将结果存放在自己的FIFO寄存器中。STM32F通过访问MPU6050读取HMC5883的转换结果。以上两个方式都可以在miniIMU中实现,不需要额外的增加或者是修改电路,只需要设置MPU6050相应的控制寄存器。HMC5883L的数据准备引脚连接到了STM32,通过查询该引脚的电平,判断是否有新的转换数据HMC5883L电子罗盘是检测地球磁场工作的设备,地表上的地磁场强度并不均匀,强度因地理位置而有所变化.在更换场地后,需要进行磁场校准。地球的磁场强度从0.3-0.6高斯不等,强度非常微弱且容易受到干扰,带金属的物体,有电流的地方都会产生干扰。在车辆或船舶上使用时应远离发动机等铁磁性较大的装备。有两个方法可以减少这些干扰:1.安装miniIMU必须尽量远离有金属的物体,特别不要安装在电机这种产生可变磁场的地方。2.在一次安装完成后,需要对HMC5883L进行磁场标定操作。这个操作可以解决固定的磁力影响,如附近的金属物质产生的干扰场,但是不能解除可变的磁力影响。
本文标题:磁力计运用(HMC5833L,HMC5983)
链接地址:https://www.777doc.com/doc-2145005 .html