电 话:18937133779
网 址:https://www.zboao.com
邮 箱:zboao@qq.com
HMC5883地磁传感器可用于检测车辆的存在和车型识别。
数据采集系统在交通监控系统中起着非常重要的作用,地磁传感器是数据采集系统的关键部分,传感器的性能对数据采集系统的准确性起决定作用。
各向异性磁阻传感器由薄膜合金( 透磁合金) 制成,利用载流磁性材料在外部磁场存在时电阻特性将会改变的基本原理进行磁场变化的测量。
当传感器接通以后,假设没有任何外部磁场,薄膜合金会有一个平行于电流方向的内部磁化矢量。
“地磁传感器”的工作原理是当驾驶员将车辆停在车位上,“地磁传感器”将自动感应车辆的停车时间,将时间传送到中继站进行计费,市民直接用银行卡在POS机上缴费。
同时利用该设备摄像功能,不交费的车辆进行拍照,并将这些车辆信息录入有关网站,对逃费车辆采取一定措施。
扩展资料:
一、地磁传感器的优点
1、安装、维修方便,不必封闭车道、对路面破坏小,当在检测点吊架或侧面安装时不用破坏路面,维修时只需检查地磁传感器即可;检测点不易遭到破坏,不受路面移动影响;
2、地磁传感器是利用地球磁场在铁磁物体通过时的变化来检测,所以它不受气候的影响;
3、通过对灵敏度的设置可以识别铁磁性物体的大小,可以大致判断出车辆的类型;
4、对非铁磁性物体没有反应,因此可以有效地减少误检。
二、地磁传感器的功能
地磁传感器的功能是相当强大的:当驾驶员把车辆停在车位上,地磁传感器能自动感应车辆的到来并开始计时;待车辆要离开时,传感器会自动把停车时间传送到中继站进行计费。
因此,解决停车收费效率低下,曾经是地磁传感器的优势之一。
停车场路边竖立着3个类似天线的装置来接收、传导传感器的信息,据介绍,这3个感应装置能够覆盖整个停车点的占地区域。美国PNI磁传感器就是应用在停车场里的一个磁传感器。
现在,随着磁传感器的的发展,越来越多的领域用到磁传感器了。
从防、航空航天到国民经济各个部门,从医疗卫生到类日常生活的诸多方面,都用到了这种磁传感器。
参考资料来源:百度百科-地磁传感器
HMC5883L是一种IIC通信的电子罗盘芯片,输出与北的角度偏差,数值是0-360度,靠西方向增长,可以理解为逆时针为正。配合GPS模块简直就是四轴飞行器的铁杆标配。
HMC5883L也是一个IIC器件,具体的操作方式和前面介绍的MPU6050类似,这里就不在赘述了。主要区别在于5883作为IIC从机时,其地址为0x3C。
初始化HMC5883的方法和初始化MPU6050的方法差不太多,主要是模拟出IIC信号,对对应的寄存器操作,具体的可查看HMC5883的说明手册。
取平均值之后,利用磁偏角公式可以求出角度。
如果前面MPU6050弄明白了,那5883也很容易弄懂。值得注意的有如下两个问题:
1. 接线
HMC5883和MPU605需要连接在同一个IIC总线上,下图是我们的接线方式。
最下方是没有用到的BMP模块
2. 四元数融合算法
要将HMC5883用到自主导航小车的姿态估算中,我们采用的是四元数融合算法,需要上传MPU6050和HMC5883的原始数据。如何进行四元数融合解算,我准备在下一篇文章写出。
本文首发
HMC HMC_count()
{
HMC count;
int x,y,z;
double angle;
Multiple_Read_HMC5883(); //连续读出数据,存储在BUF中
x=HMC_BUF[0] << 8 | HMC_BUF[1]; //Combine MSB and LSB of X Data output register
z=HMC_BUF[2] << 8 | HMC_BUF[3]; //Combine MSB and LSB of Z Data output register
y=HMC_BUF[4] << 8 | HMC_BUF[5]; //Combine MSB and LSB of Y Data output register
angle= atan2((double)y,(double)x) * (180 / 3.14159265) + 180; // angle in degrees
count.x=x;
count.y=y;
count.z=z;
count.angle=angle;
return count;
}
HMC5883和MPU6050是完全一样的。我之前用的STM32,加了一大堆头文件和函数什么的。前阵子在用别的芯片,感觉费事,就直接调在I2C时把两个传感器的配置一写。
读MPU6050时,只需要读一个X轴,然后把缓存区设成长度为6,它就能把XYZ三轴的高低位都读出来。HMC5883也是一样。只需要去读第一个X轴的地址。
每次读取之前,加点延时,刚刚弄出来
打不开MDK5的程序,就不看了。我分享的帖子里有MPU6050+HMC5883采集的,你下载下来把5883的摘出来就好。 一般是0都是I2C或传感器的配置没配好,先读那三个识别寄存器,能读出来再配置单次采集模式和连续采集模式,手册里说的够用了,一共就仨寄存器要你配。