基于PNI傳感器的電子指南針
摘要:鑒于采用磁阻傳感器的數(shù)字指南針體現(xiàn)了高精度、高靈敏度的特點(diǎn),提出基于PNI傳感器的電子指南針系統(tǒng)。該系統(tǒng)以Atmega16作為主控芯片,由SEN-R65磁阻傳感器、PNI11096磁場(chǎng)測(cè)量芯片組成數(shù)據(jù)采集端,由1602液晶、蜂鳴器、二極管及按鍵組成人機(jī)交互平臺(tái),實(shí)現(xiàn)了顯示當(dāng)前方向角、多級(jí)菜單操作、指南蜂鳴、磁場(chǎng)校準(zhǔn)、定向?qū)Ш?、休眠?jié)能等多項(xiàng)功能。實(shí)驗(yàn)證明,該電子指南針的方向角絕對(duì)誤差降低至1.73%。
關(guān)鍵詞:指南針;PNI傳感器;Atmega16單片機(jī);SEN-R65磁阻傳感器
機(jī)械式儀器體積龐大,維修困難。隨著電子技術(shù)的飛速發(fā)展以及傳感器技術(shù)的日趨成熟,各種機(jī)械式測(cè)量?jī)x器已經(jīng)逐漸向電子數(shù)字儀器轉(zhuǎn)換,其精度要比機(jī)械式高若干倍。指南針也不例外,磁阻傳感器能準(zhǔn)確測(cè)出微弱卻無處不在的地球磁場(chǎng),如PNI公司的SEN-R65磁阻傳感器,具有體積小、精度高、穩(wěn)定性好,價(jià)格低等特點(diǎn),使得指南針高精度化數(shù)字化變得簡(jiǎn)易可行。由于驅(qū)動(dòng)電路簡(jiǎn)單,設(shè)計(jì)師可以把精力集中在更多創(chuàng)意設(shè)計(jì)上。筆者設(shè)計(jì)的電子指南針結(jié)構(gòu)簡(jiǎn)單,功能齊全,可以安裝在GPS導(dǎo)航系統(tǒng)以及一些機(jī)器上,應(yīng)用前景廣泛。
1 系統(tǒng)硬件設(shè)計(jì)
1.1 系統(tǒng)組成
本方案采用PNI傳感器,以AVR單片機(jī)Atmega16為主控芯片,并采用SPI進(jìn)行數(shù)據(jù)采集端與Atmega16的通信,整個(gè)系統(tǒng)由PNI傳感器模塊、中心控制模塊、1602液晶和LED顯示模塊、蜂鳴器報(bào)警模塊、按鍵模塊及其他外設(shè)模塊組成。系統(tǒng)總體框架如圖1所示。
1.2 理論分析及數(shù)值計(jì)算
1.2.1 傳感器模塊原理
1)地球磁場(chǎng)向量 圖2所示為地球某一點(diǎn)的地球磁場(chǎng)向量He的三維圖,其中,x軸和y軸與地球表面平行,z軸垂直指向下。指南針的基本任務(wù)就是測(cè)量磁場(chǎng)北極(圖2中的He,即地球磁場(chǎng)的水平分量)與前進(jìn)方向的夾角(方位角α)。在圖2中,α是從磁場(chǎng)的北極順時(shí)針計(jì)算的(如,東是90°,西是270°)
2)磁阻傳感器SEN-R65傳統(tǒng)的磁場(chǎng)測(cè)量采用電感線圈,在地球磁場(chǎng)產(chǎn)生的感應(yīng)電流非常微弱,不便于A/D采樣,增加了測(cè)量難度。本文采用的磁阻傳感器為SEN-R65,根據(jù)電場(chǎng)和磁場(chǎng)原理,當(dāng)在鐵磁合金薄帶的長(zhǎng)度方向施加一個(gè)電流時(shí),如果在垂直于電流的方向再施加磁場(chǎng),鐵磁性材料中就有磁阻的非均質(zhì)現(xiàn)象出現(xiàn),從而引起合金帶自身的阻值變化。SEN-R65傳感器為固態(tài)元件,體積小,測(cè)量精度高,最小分辨率可達(dá)0.000 15高斯,非常適合測(cè)量地球磁場(chǎng)。注:兩個(gè)SEN-R65磁阻傳感器在實(shí)際焊接時(shí)要垂直擺放。
3)磁場(chǎng)測(cè)量芯片PNI11096通過磁阻效應(yīng)可以把磁場(chǎng)的變化轉(zhuǎn)換成對(duì)應(yīng)變化的電流,但所得到的電流比較微弱,很難進(jìn)行A/D轉(zhuǎn)換,因此要經(jīng)過信號(hào)放大電路進(jìn)行放大,再通過A/D轉(zhuǎn)換就可以得到對(duì)應(yīng)的數(shù)字量,這樣才能讓單片機(jī)識(shí)別。PNI公司的PNI11096芯片能夠同時(shí)對(duì)3軸磁場(chǎng)強(qiáng)度(即x,y,z軸)進(jìn)行測(cè)量,且集成了放大和模數(shù)轉(zhuǎn)換電路。在整個(gè)PNI11096信號(hào)處理電路中包含3個(gè)主要的部分,如圖3所示。
1.2.2 SPI模塊接口電路
PNI11096的SPI總線的時(shí)序如圖4所示,比通常的SPI總線多了DRDY和RESET。以下為讀取數(shù)據(jù)的步驟:
1)拉低SSNOT;
2)復(fù)位一次11096,即把RESET拉高5μs再拉低,每次測(cè)量都要復(fù)位一次,復(fù)位后DRDY自動(dòng)變?yōu)榈停?br />
3)DRDY變?yōu)榈秃?,指?讀x軸為0X41,y軸為0X42)從MOSI傳入11096;
4)寫入指令后等待DRDY變高,表示11096已經(jīng)準(zhǔn)備好數(shù)據(jù),在MISO讀取數(shù)據(jù)即可。
PNI11096與單片機(jī)的接口電路如圖5所示。
1.2.3 休眠節(jié)電工作方式的原理
指南針采用了休眠節(jié)電方式。當(dāng)CPU處于等待時(shí)進(jìn)入休眠節(jié)電工作模式,降低電能損耗,一旦有外部的觸發(fā)信號(hào)或等待時(shí)間到,CPU從休眠狀態(tài)中被喚醒,重新進(jìn)入正常程序執(zhí)行工作方式。Atmega16處在掉電休眠模式狀態(tài)時(shí),其本身的耗電量小于1μA。
2 系統(tǒng)軟件設(shè)計(jì)
該電子指南針使用編譯器winavr,采用C語言進(jìn)行編程,具有很好的可移植性。整個(gè)系統(tǒng)軟件包括主程序、普通模式子程序、校準(zhǔn)模式子程序、定向模式子程序等。
主程序負(fù)責(zé)初始化各個(gè)功能模塊,上電便顯示普通模式,通過按鍵選擇可以進(jìn)入其他模式。此外,程序中配置了與休眠功能相關(guān)的寄存器,當(dāng)達(dá)到要求時(shí)系統(tǒng)進(jìn)入休眠模式。
2.1 普通模式子程序
根據(jù)傳感器PNI11096測(cè)得的x、y值,單片機(jī)計(jì)算出方向角angle,并在液晶顯示器上顯示方向(如南偏東15°)。當(dāng)指向南方時(shí),蜂鳴器響。程序流程圖如圖6所示。
2.2 校準(zhǔn)子程序
選擇校正模式,整個(gè)系統(tǒng)在水平面上旋轉(zhuǎn)一周,干涉磁場(chǎng)與地球磁場(chǎng)疊加會(huì)有一個(gè)最大值和一個(gè)最小值,記錄下這兩個(gè)值。通過校正即可消除干涉磁場(chǎng)的影響。流程圖如圖7所示。
2.3 導(dǎo)航子程序
進(jìn)入導(dǎo)航模式,用戶選擇好行進(jìn)的方向角,按確定鍵保存。在定向過程中,當(dāng)前角度angle不斷與α對(duì)比,小于α則右邊指示燈閃爍,大于α則左邊指示閃爍,等于α則中間指示燈閃爍,如圖8所示。
3 結(jié)果與分析
PNI11096讀出來的數(shù)據(jù)經(jīng)過單片機(jī)處理,得到0~360°的方向角,并用機(jī)械式指南針作為標(biāo)準(zhǔn),進(jìn)行標(biāo)定試驗(yàn)。測(cè)試數(shù)據(jù)如表1所示,方向角測(cè)試誤差絕對(duì)值的平均值為6.25°,相對(duì)誤差為1.73%。
4 結(jié)論
本文設(shè)計(jì)的電子指南針利用了PNI公司的磁阻傳感器SEN-R65和專用的驅(qū)動(dòng)芯片11096,以ATmega16為主控芯片,方向角測(cè)試平均誤差為6.25°。系統(tǒng)多級(jí)菜單,界面操作簡(jiǎn)易,并設(shè)置了休眠掉電模式,降低了系統(tǒng)功耗。