基于FlexLua开发QMC5883三轴地磁传感器

96 篇文章 0 订阅
66 篇文章 0 订阅
本文详细介绍了如何通过QMC5883三轴地磁传感器测量地磁场强度和航向角,包括传感器的基本概念、配置参数、接线图以及提供了一个示例代码,展示了如何在电脑串口终端获取测量数据。
摘要由CSDN通过智能技术生成

QMC5883三轴地磁传感器

一、本例程实现功能

通过QMC5883三轴地磁传感器模块测量XYZ三轴的地磁强度以及航向角(Azimuth),并通过print()函数在电脑串口调试终端打印输出。

fe11b4840f08dbeaa2835892994bd50f.jpeg

二、基本概念

1. 地磁传感器

2. 地磁场

地磁场是指地球内部存在的天然磁性现象。地球可视为一个磁偶极(magnetic dipole),其中一极位在地理北极附近,另一极位在地理南极附近。 地磁场强度大约是0.5-0.6高斯 (Gauss),在QMC5883传感器中配置地磁场的测量范围为2G或者8G就是这里说的2Gauss或8Gauss。

三、 传感器参数配置描述

QMC5883传感器我们已将其默认配置为ODR=100Hz(每秒钟最多输出100组测量结果), OSR=512(抗干扰最强,但功耗稍高一些)。

另外我们可以在LIB_QMC5883Config()函数中结合您的需求配置传感器在XYZ轴三个方向的测量范围,分别为-2G ~ 2G或-8G ~ 8G。不管选两种配置中的哪一种,传感器X Y Z轴三个方向的输出值的满量程皆为-32768 ~ 32767(即当您获取到传感器的XYZ轴测量值时,需要根据您配置的是2G还是8G的满量程,来进行一个简单的系数换算即可)。配置为2G范围时精确度和灵敏度更高,配置为8G范围时范围更广但精度稍差。

四、接线图

cfc856a32345276d38c0b777528bd326.jpeg

五、材料清单

  • QMC5883L传感器模块

注意:一定要QMC5883模块,不要HMC5883,二者不兼容

57f744dfc3338eeb93a58acf2dd06590.jpeg

六、完整代码

--配置USB以虚拟串口模式工作,这样调用print()函数就会在电脑串口终端打印输出
LIB_UsbConfig("CDC")
--设置QMC5883三轴磁场强度传感器占用SCL0和SDA0引脚,并设置三轴磁场的测量范围为-2G ~ +2G
LIB_QMC5883Config("IIC0", "RNG_2G")
--开始大循环
while(GC(1) == true)
do
--每隔0.2秒查询传感器是否出数
LIB_DelayMs(200)
flag, X, Y, Z, azimuth = LIB_QMC5883GetResult()
if flag == 1 then
--输出X Y Z三轴的原始值以及航向角,航向角去掉小数点部分
print(string.format("X:%d,Y:%d,Z:%d,Azimuth:%.0f\r\n", X, Y, Z, azimuth))
end
end


如果感兴趣,上面代码中出现的LIB开头的库函数可以在 API文档 中通过Ctrl+F查询。

七、代码运行结果

电脑串口调试终端上显示的XYZ三轴的原始值以及航向角如下图:

039ffd96ec2a7fde49b5e71aeb984d34.jpeg

612aac6378a3a0af68d1b6cecb7a5395.jpeg

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值