基于STM32的電子羅盤(pán)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
引 言
GPS在導(dǎo)航定位、測(cè)速方面具有廣泛的應(yīng)用,但在高樓密集的城區(qū)和偏遠(yuǎn)地帶,GPS信號(hào)受到阻擋,信號(hào)精度降低, 因而GPS設(shè)備不能很好的將信號(hào)回饋到衛(wèi)星[1]。針對(duì)這一問(wèn)題,可以采用電子羅盤(pán)和 GPS組成導(dǎo)航定向,電子羅盤(pán)可以對(duì) GPS進(jìn)行有效的補(bǔ)償[2]。同時(shí),隨著科技的發(fā)展,電子羅盤(pán)也可以安裝在汽車(chē)或者輪船上,當(dāng)駛?cè)氲叫盘?hào)較差的地方時(shí),數(shù)字電子羅盤(pán)可以起到很大的作用。
本文以 HMC5883三軸數(shù)字羅盤(pán)傳感器為基礎(chǔ), 以STM32F103RET6單片機(jī)為微處理器,設(shè)計(jì)了一款數(shù)字電子羅盤(pán)。它功耗低,體積小,便于攜帶,而且精度高,在 GPS信號(hào)差的地方,可以起到一定的導(dǎo)航作用。
1 系統(tǒng)框圖
磁阻傳感器HMC5883 測(cè)量地球磁場(chǎng)矢量信息,加速度傳感器MPU6050 采集重力加速度分量,然后經(jīng)過(guò)AD 轉(zhuǎn)換器模擬量轉(zhuǎn)換為數(shù)字量,采用STM32F103RET6 單片機(jī)來(lái)完成傳感器數(shù)據(jù)采集,并進(jìn)行傳感器數(shù)據(jù)處理和誤差校正,最終得到位置信息并通過(guò)LCD 顯示結(jié)果。系統(tǒng)框圖如圖1 所示。
2 硬件電路設(shè)計(jì)
2.1 電源升壓電路
電源是電子羅盤(pán)系統(tǒng)正常工作的基礎(chǔ),電源的好壞直接影響電路工作的穩(wěn)定性,STM32F103RET6 單片機(jī)的工作電壓 都是 3.3 V,而電子羅盤(pán)系統(tǒng)使用1.2 V 鋰電池供電。本系統(tǒng)采 用 NCP1400ASN30T1G 升壓芯片,把 1.2 V 電壓提升到 3.3 V, 供給系統(tǒng)各部分作為電源。電源電路如圖 2 所示。
2.2 HMC5883 磁阻傳感器電路設(shè)計(jì)
HMC5883 磁阻傳感器接口電路如圖 3 所示。圖 3 中HMC5883 為數(shù)字接口雙軸磁阻傳感器,該傳感器內(nèi)置ASIC 放大器,12 位 A/D 轉(zhuǎn)換器,I2C 總線輸出[3]。R 、R為上拉電阻, DRDY 為數(shù)據(jù)準(zhǔn)備好中斷控制口,接控制器中斷輸入口。電容C1、C2 加上傳感器片上 ASIC 電路中的H- 電橋驅(qū)動(dòng)電路可以產(chǎn)生電流脈沖,使片上的置位 / 復(fù)位電流帶產(chǎn)生磁場(chǎng)給傳感器去磁和極性翻轉(zhuǎn)[4]。
2.3 加速度傳感器接口電路
圖 4 所示的加速度傳感器采用MPU6050,該加速度傳感器采用三軸陀螺儀技術(shù),具有體積小、重量輕、結(jié)構(gòu)簡(jiǎn)單、可靠性好等諸多優(yōu)勢(shì) [5]。該加速度傳感器模塊以 MPU6050 為核心芯片,其對(duì)陀螺儀和加速度計(jì)使用了三個(gè) 16位的ADC 模數(shù)轉(zhuǎn)換,將采集到的模擬量轉(zhuǎn)化為單片機(jī)可使用的數(shù)字量 [6]。模塊引出 8個(gè)引腳,除了 VCC和 GND之外,其余 6個(gè)引腳與單片機(jī) I/0口進(jìn)行連接。其中,SCL為I2C時(shí)鐘引腳,SDA 為I2C數(shù)據(jù)引腳。
2.4 單片機(jī)最小系統(tǒng)電路圖
主控電路采用 STM32F103RET6 單片機(jī),其最小系統(tǒng)原 理圖如圖 5 所示。圖中所示的 STM32F103RET6 單片機(jī)具有 較強(qiáng)的抗干擾能力,適合本系統(tǒng)設(shè)計(jì) [7]。晶振為 8 MHz 的無(wú) 源晶振經(jīng)單片機(jī)倍頻后作為 72 MHz 的系統(tǒng)時(shí)鐘,單片機(jī)為低 電平復(fù)位,但當(dāng)復(fù)位引腳為低電平后,單片機(jī)不會(huì)馬上復(fù)位, 還需要持續(xù)一段時(shí)間,故電容 C13 作為緩沖,從而維持一段時(shí) 間的低電平 [8]。BOOT0 為啟動(dòng)模式選擇引腳,當(dāng)為低電平時(shí) 為用戶閃存啟動(dòng)模式,當(dāng)為高電平時(shí)為系統(tǒng)內(nèi)存啟動(dòng)模式,本 電路默認(rèn)設(shè)置為閃存啟動(dòng)模式,當(dāng)需要設(shè)置為系統(tǒng)內(nèi)存啟動(dòng) 模式時(shí)可通過(guò)按鍵 Dow1 控制。
2.5 信號(hào)調(diào)理電路和 AD 轉(zhuǎn)換模塊
信號(hào)調(diào)理電路由AD7705 芯片控制,AD7705 串行接口可配置為三線接口[9]。增益值、信號(hào)極性及更新速率的選擇可用串行輸入口由軟件來(lái)配置。該器件還包括自校準(zhǔn)和系統(tǒng)校準(zhǔn)選項(xiàng),以消除器件本身或系統(tǒng)的增益和偏移誤差,且耗電極低 [10]。
3 系統(tǒng)軟件設(shè)計(jì)
該系統(tǒng)采用模塊化編寫(xiě),便于調(diào)試,程序開(kāi)始后,先讀取預(yù)置數(shù),系統(tǒng)各模塊再初始化,選擇是否為測(cè)量模式,如果是,然后讀取各項(xiàng)數(shù)據(jù) ;如果不是,則需要校準(zhǔn),校準(zhǔn)時(shí)先讀取磁場(chǎng)數(shù)據(jù),然后計(jì)算偏移量,判斷是否存在偏移量, 如果有,則需要存入單片機(jī)中;若沒(méi)有,則直接進(jìn)入系統(tǒng)初始化。系統(tǒng)具體流程如圖 6 所示。
4 結(jié) 語(yǔ)
電子羅盤(pán)系統(tǒng) 采用數(shù)字磁阻傳感 器、雙軸加速度傳 感器,處理器采用 STM32F103RET6 單片機(jī),具有電路 結(jié)構(gòu)簡(jiǎn)單、集成度 高、抗干擾能力強(qiáng) 等優(yōu)點(diǎn)。正常工作 時(shí)耗電非常低,同 時(shí)硬件成本低、功 耗小,適合用于便 攜導(dǎo)航,也可用于 其他需要測(cè)量?jī)A角 和方位角的場(chǎng)合。