• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

    李佳駿 王洪源

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

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

    李佳駿 王洪源

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

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

    Arduino;HMC5883L;電子羅盤

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

    1 HMC5883L模塊簡介

    HMC5883L是一種采用表面貼裝技術的高集成模塊。內(nèi)部包括非常先進的高分辨率傳感器[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 磁場測量原理

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

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

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

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

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

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

    3 軟件設計

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

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

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

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

    4 結(jié)語

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

    [1]宋麗君.基于MEMS器件的航向姿態(tài)測量系統(tǒng)的研究[D].西北工業(yè)大學,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的直接通信
    測控技術(2018年6期)2018-11-25 09:50:12
    機載飛控1553B總線轉(zhuǎn)以太網(wǎng)總線設計
    測控技術(2018年8期)2018-11-25 07:42:08
    論《哈姆雷特》中良心的分量
    分量
    不宜上課
    印尼《羅盤報》之中國國家形象
    新聞傳播(2015年9期)2015-07-18 11:04:12
    多通道ARINC429總線檢查儀
    蒼蠅腦中有“羅盤”
    项城市| 新晃| 新巴尔虎右旗| 温宿县| 石台县| 安化县| 唐山市| 二连浩特市| 汉沽区| 闵行区| 桐梓县| 若尔盖县| 兰西县| 玛纳斯县| 西平县| 策勒县| 鄱阳县| 上饶县| 霍州市| 化隆| 卓尼县| 贺州市| 湖北省| 枣强县| 河源市| 怀化市| 三门县| 沙雅县| 娄烦县| 泸溪县| 大方县| 桦南县| 林周县| 岑溪市| 营口市| 文山县| 辽阳市| 麻城市| 盘锦市| 白山市| 张家界市|