電 話:18937133779
網(wǎng) 址:http://pepperpics.com
郵 箱:zboao@qq.com
HMC5883地磁傳感器可用于檢測車輛的存在和車型識別。
數(shù)據(jù)采集系統(tǒng)在交通監(jiān)控系統(tǒng)中起著非常重要的作用,地磁傳感器是數(shù)據(jù)采集系統(tǒng)的關(guān)鍵部分,傳感器的性能對數(shù)據(jù)采集系統(tǒng)的準確性起決定作用。
各向異性磁阻傳感器由薄膜合金( 透磁合金) 制成,利用載流磁性材料在外部磁場存在時電阻特性將會改變的基本原理進行磁場變化的測量。
當傳感器接通以后,假設(shè)沒有任何外部磁場,薄膜合金會有一個平行于電流方向的內(nèi)部磁化矢量。
“地磁傳感器”的工作原理是當駕駛員將車輛停在車位上,“地磁傳感器”將自動感應(yīng)車輛的停車時間,將時間傳送到中繼站進行計費,市民直接用銀行卡在POS機上繳費。
同時利用該設(shè)備攝像功能,不交費的車輛進行拍照,并將這些車輛信息錄入有關(guān)網(wǎng)站,對逃費車輛采取一定措施。
擴展資料:
一、地磁傳感器的優(yōu)點
1、安裝、維修方便,不必封閉車道、對路面破壞小,當在檢測點吊架或側(cè)面安裝時不用破壞路面,維修時只需檢查地磁傳感器即可;檢測點不易遭到破壞,不受路面移動影響;
2、地磁傳感器是利用地球磁場在鐵磁物體通過時的變化來檢測,所以它不受氣候的影響;
3、通過對靈敏度的設(shè)置可以識別鐵磁性物體的大小,可以大致判斷出車輛的類型;
4、對非鐵磁性物體沒有反應(yīng),因此可以有效地減少誤檢。
二、地磁傳感器的功能
地磁傳感器的功能是相當強大的:當駕駛員把車輛停在車位上,地磁傳感器能自動感應(yīng)車輛的到來并開始計時;待車輛要離開時,傳感器會自動把停車時間傳送到中繼站進行計費。
因此,解決停車收費效率低下,曾經(jīng)是地磁傳感器的優(yōu)勢之一。
停車場路邊豎立著3個類似天線的裝置來接收、傳導傳感器的信息,據(jù)介紹,這3個感應(yīng)裝置能夠覆蓋整個停車點的占地區(qū)域。美國PNI磁傳感器就是應(yīng)用在停車場里的一個磁傳感器。
現(xiàn)在,隨著磁傳感器的的發(fā)展,越來越多的領(lǐng)域用到磁傳感器了。
從防、航空航天到國民經(jīng)濟各個部門,從醫(yī)療衛(wèi)生到類日常生活的諸多方面,都用到了這種磁傳感器。
參考資料來源:百度百科-地磁傳感器
HMC5883L是一種IIC通信的電子羅盤芯片,輸出與北的角度偏差,數(shù)值是0-360度,靠西方向增長,可以理解為逆時針為正。配合GPS模塊簡直就是四軸飛行器的鐵桿標配。
HMC5883L也是一個IIC器件,具體的操作方式和前面介紹的MPU6050類似,這里就不在贅述了。主要區(qū)別在于5883作為IIC從機時,其地址為0x3C。
初始化HMC5883的方法和初始化MPU6050的方法差不太多,主要是模擬出IIC信號,對對應(yīng)的寄存器操作,具體的可查看HMC5883的說明手冊。
取平均值之后,利用磁偏角公式可以求出角度。
如果前面MPU6050弄明白了,那5883也很容易弄懂。值得注意的有如下兩個問題:
1. 接線
HMC5883和MPU605需要連接在同一個IIC總線上,下圖是我們的接線方式。
最下方是沒有用到的BMP模塊
2. 四元數(shù)融合算法
要將HMC5883用到自主導航小車的姿態(tài)估算中,我們采用的是四元數(shù)融合算法,需要上傳MPU6050和HMC5883的原始數(shù)據(jù)。如何進行四元數(shù)融合解算,我準備在下一篇文章寫出。
本文首發(fā)
HMC?HMC_count()
{
HMC?count;
int?x,y,z;
double?angle;
Multiple_Read_HMC5883();?????? //連續(xù)讀出數(shù)據(jù),存儲在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,加了一大堆頭文件和函數(shù)什么的。前陣子在用別的芯片,感覺費事,就直接調(diào)在I2C時把兩個傳感器的配置一寫。
讀MPU6050時,只需要讀一個X軸,然后把緩存區(qū)設(shè)成長度為6,它就能把XYZ三軸的高低位都讀出來。HMC5883也是一樣。只需要去讀第一個X軸的地址。
每次讀取之前,加點延時,剛剛弄出來
打不開MDK5的程序,就不看了。我分享的帖子里有MPU6050+HMC5883采集的,你下載下來把5883的摘出來就好。 一般是0都是I2C或傳感器的配置沒配好,先讀那三個識別寄存器,能讀出來再配置單次采集模式和連續(xù)采集模式,手冊里說的夠用了,一共就仨寄存器要你配。