网上有好多文章介绍如何从HMC5883L电子罗盘中获取旋转的角度。但是其中有个重要的参数Declination并没有太多介绍,而且该参数是必要的。
rom i2clibraries import i2c_hmc5883l
hmc5883l = i2c_hmc5883l.i2c_hmc5883l(0)
hmc5883l.setContinuousMode()
hmc5883l.setDeclination(9,54)
print(hmc5883l)
罗盘要确定方向北面是靠磁场来确定的,北向有两个标准:
World Magnetic Model (WMM) 是磁场的正北
International Geomagnetic Reference Field (IGRF) 也称为Ture North,是地图上的正北
但事实上这两个北向是有偏差的,这个偏差就叫Declination,就是下图中的橙色扇区角度。它的值随着地域和时间而变化,我们可以访问这里来查询这个值。英文介绍视频,它们都是由美国国家地理数据中心提供的,如果打不开,只能自己想办法了:)
下面的图像显示整个地球范围内,Declination分布的规律,每一个等高线上的Declination 是相同的,中间的黄绿线是0,也就是磁场北和地理北完全重合。红线为正值,蓝线为负值。
下面是网站页面,可以看到北京的正北和磁场的北是有个偏角的,这就是Declination.时间是2015 - 02 -02