国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Arduino的HMC5883L電子羅盤設(shè)計與實現(xiàn)

2016-08-04 18:06:04李佳駿王洪源
大科技 2016年20期
關(guān)鍵詞:羅盤總線分量

李佳駿 王洪源

(沈陽理工大學(xué)信息科學(xué)與工程學(xué)院 遼寧沈陽 110159)

基于Arduino的HMC5883L電子羅盤設(shè)計與實現(xiàn)

李佳駿 王洪源

(沈陽理工大學(xué)信息科學(xué)與工程學(xué)院 遼寧沈陽 110159)

電子羅盤是利用地磁場的方向來測量航向的一種導(dǎo)航工具,它能夠提供載體實時的航向和姿態(tài),被廣泛地應(yīng)用于航空、航海、車輛導(dǎo)航以及手機定位系統(tǒng)等領(lǐng)域。該設(shè)計以AVR單片機Arduino為控制核心,以HMC5883L為磁場測量元件。實現(xiàn)對載體的實時導(dǎo)航和方向控制。采用C語言編程控制HMC5883L的正常數(shù)據(jù)采集,Arduino實現(xiàn)對數(shù)據(jù)的處理。

Arduino;HMC5883L;電子羅盤

Arduino是一個基于AVR單片機的開放原始碼的軟硬件平臺,軟件開放源代碼、硬件電路公開、程序開發(fā)接口免費下載,是在國際上流行的快速電子設(shè)計制作的方案。由于Arduino的易用性與擴展性強,它的出現(xiàn)使得制作原型變得更快、更好、更簡單。磁阻傳感器HMC5883L通過I2C總線采集水平方向的磁場強度,并將輸出的數(shù)據(jù)通過Arduino傳到上位機上。

1 HMC5883L模塊簡介

HMC5883L是一種采用表面貼裝技術(shù)的高集成模塊。內(nèi)部包括非常先進(jìn)的高分辨率傳感器[1]。可以使其控制在1~2°的誤差范圍內(nèi)。采用的IIC系列總線接口。HMC5883L的引腳示意圖如圖1所示。

圖1 HMC5883L引腳示意圖

HMC5883L有多種操作模式,主要分為連續(xù)、單次測量模式和閑置模式。

(1)連續(xù)測量模式

顧名思義,在此模式下,模塊會在指定的速率下連續(xù)的采集實時的數(shù)據(jù)并把它輸出并存儲到寄存器中。在連續(xù)測量模式下IIC總線可以被電路中的其他裝置啟用。

(2)單次測量模式

不同于連續(xù)測量模式,該模式下模塊測量一次數(shù)據(jù)并將其保存。它是一種供電模式,可以通過電源管理來控制。在該模式下寄存器可以保存數(shù)據(jù)并且I2C總線可被其他裝置啟用。

(3)閑置模式

在此模式下,裝置主要是通過總線接口訪問但是主要功能是不可以用的。和其他模式一樣,在空閑模式下I2C總線可被其他裝置啟用。

2 磁場測量原理

磁北方問就是地磁場在水平面上分量的方向。假設(shè)電子羅盤處于水平面上,要確定其相對于磁北的航向角口。由磁阻傳感器可以直接得出地磁場的水平分量HX、HY。

由于地磁南北極與地理南北極存在磁偏角,要得到準(zhǔn)確的南北極方向,必須用計算結(jié)果加上或減去所在地區(qū)磁偏角,得出前進(jìn)方向與地理北極的夾角,即真北方位角。

磁羅盤通過測量地磁場水平方向分量確定磁北極方向并推算出其他方向。當(dāng)羅盤水平放置時,傳感器坐標(biāo)系的X、Y軸在水平面內(nèi),X軸為前進(jìn)方向,Y軸垂直于X軸向右,Z軸沿重力方向向下,從磁北方向順時針到X軸的夾角即為方位角α。

實際應(yīng)用中,電子羅盤并不是始終水平,需要根據(jù)加速度傳感器測得的俯仰角和滾轉(zhuǎn)角,通過坐標(biāo)變換,將磁傳感器測得的磁場強度分量折算到水平方向,再計算方位角。俯仰角φ為羅盤縱軸與水平面之間的夾角,滾轉(zhuǎn)角θ為羅盤Z軸與過X軸的鉛垂面之間的夾角。當(dāng)羅盤處于非水平狀態(tài)時,測得重力加速度g在羅盤三軸方向的分量分別為Ax,Ay,Az,則根據(jù)坐標(biāo)關(guān)系可求得俯仰角和滾轉(zhuǎn)角為:

此時,磁傳感器測出的地磁場在羅盤三軸方向的分量為Hx,Hy,Hz,由坐標(biāo)關(guān)系得水平方向磁分量:

利用三角函數(shù)關(guān)系可求得方位角為:

3 軟件設(shè)計

本設(shè)計是以Arduino為平臺開發(fā)的,使用的是類C的Arduino語言,Arduino語言是以Setup()開頭,Loop()作為主體的一個程序架構(gòu)。本設(shè)計在Setup()函數(shù)中完成端口的初始化,即通過調(diào)用“I2Cdev.h”庫函數(shù)和“HMC5883L.h”庫函數(shù)來定義HMC5883L和Arduino的數(shù)據(jù)通信以及HMC5883L的數(shù)據(jù)采集。在應(yīng)用程序中對定義的端口進(jìn)行操作來控制顯示。

Loop函數(shù)是Arduino軟件項目的主體函數(shù),當(dāng)Setup函數(shù)執(zhí)行完成以后就進(jìn)入Loop函數(shù),該函數(shù)無限循環(huán),調(diào)用的應(yīng)用程序就放在該函數(shù)中運行。

應(yīng)用程序主要實現(xiàn)了驅(qū)動HMC5883L的數(shù)據(jù)采集與處理。

程序中所用到的主要基本顯示函數(shù)有:

4 結(jié)語

本設(shè)計使用Arduino單片機作為控制核心,用數(shù)據(jù)采集程序控制數(shù)據(jù)采集,用HMC5883L來測量數(shù)據(jù)并輸出到上位機。由于電子羅盤廣泛應(yīng)用于各類導(dǎo)航場所,所以本設(shè)計的現(xiàn)實應(yīng)用性很強。此外,Arduino單片機簡單易學(xué)的這一特點會使得越來越多的人對Arduino單片機產(chǎn)生興趣,同時推動世界智能化的發(fā)展。

[1]宋麗君.基于MEMS器件的航向姿態(tài)測量系統(tǒng)的研究[D].西北工業(yè)大學(xué),2007.

TN966

A

1004-7344(2016)20-0270-01

2016-7-1

猜你喜歡
羅盤總線分量
帽子的分量
一物千斤
智族GQ(2019年9期)2019-10-28 08:16:21
基于PCI Express總線的xHC與FPGA的直接通信
機載飛控1553B總線轉(zhuǎn)以太網(wǎng)總線設(shè)計
論《哈姆雷特》中良心的分量
分量
不宜上課
印尼《羅盤報》之中國國家形象
新聞傳播(2015年9期)2015-07-18 11:04:12
多通道ARINC429總線檢查儀
蒼蠅腦中有“羅盤”
高邮市| 宁陕县| 牙克石市| 邹城市| 横峰县| 新晃| 张家界市| 山西省| 那坡县| 当雄县| 泽州县| 潜山县| 潼南县| 廊坊市| 建湖县| 林甸县| 霞浦县| 丰顺县| 瑞昌市| 江西省| 汽车| 阿克| 佛山市| 汤阴县| 阿拉善右旗| 江西省| 普洱| 吉水县| 德令哈市| 武冈市| 泽普县| 莆田市| 汉川市| 区。| 武安市| 曲阜市| 邵阳市| 分宜县| 蒙阴县| 旌德县| 江阴市|