一起玩儿物联网人工智能小车(ESP32)——45. 利用HMC5883L电子罗盘模块让你的小车能感知方向

摘要:本文介绍使用HMC5883L电子罗盘模块来辨别方向

在前边制作避障小车的时候,大家可能已经发现,虽然两个轮子的驱动信号是一样的,但是小车可能不走直线,走过一端距离之后,小车就会偏向一边。这是由于电机的个体差异导致的,虽然是同一标准、同一批次生产的电动机,但在电气特性上还是存在着些许的差距,经过比较长距离的累积之后,表现出来的就是两个轮子累计转过的圈数不同,小车就会朝一边偏。

小车跑偏的一个解决办法就是通过长距离的测试,找出两个轮子转速的差距,然后调整控制信号PWM的占空比率,让转速慢的轮子占空比率大一些,而转速快的轮子占空比率小一些,就可以在很大程度上改善这个问题了。这种解决办法要经过很多次的测试,才能找到一个比较满意的参数出来。

那么有没有更好的办法呢?能不能让小车自己知道自己在朝哪个方向行驶,自己进行调整呢?答案当然是肯定的。可以给小车安装一个电子罗盘模块,让小车自己知道自己在朝着哪个方向行驶。

我们知道,地球附近的空间遍布着地磁场,地磁场的方向是从地球的地磁北极(地理南极附近)指向地磁南极(地理北极附近),传统的指南针就是利用了地磁场来辨别方向的。基于HMC5883L芯片的电子罗盘模块同样也是利用了这一原理,它通过测量相互垂直的X轴、Y轴和Z轴的磁场的磁通量大小,因为这三个方向的磁通量的矢量和始终指向地磁南极(地理北极附近),所以,就可以计算出HMC5883L电子罗盘模块的水平方向角了,从而可以确定自己的朝向。

和前面的红外测距模块一样,HMC5833L电子罗盘模块也是通过内部寄存器来和外界交互的,通过这些寄存器可以对其设置,也可以得到模块的测量数据。具体的寄存器如下表:

地址

名称

访问

用途

00

配置寄存器A

读/写

采样平均数、数据输出速率和测量配置寄存器

01

配置寄存器B

读/写

增益配置寄存器

02

模式寄存器

读/写

测量模式配置寄存器,连续模式/单一模式(默认)。

03

数据输出X MSB寄存器

通道X测量结果的高位数据。

04

数据输出X LSB寄存器

通道X测量结果的低位数据。

05

数据输出Z MSB寄存器

通道Z测量结果的高位数据。

06

数据输出Z LSB寄存器

通道Z测量结果的低位数据。

07

数据输出Y MSB寄存器

通道Y测量结果的高位数据。

08

数据输出Y LSB寄存器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一起玩儿科技

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值