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