首页 > 范文大全 > 正文

基于单片机的电子指南针的设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于单片机的电子指南针的设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘 要:本设计使用了地磁传感器HMC5883采集某一方向磁场强度后,通过MCU控制器对其进行处理并显示,通过对电子指南针硬件电路和软件程序的分析,阐述了电子指南针基本的工作原理及实现。实际测试指南针模块精度达到1°,实现了高可靠性、高精度、强抗磁场干扰的数码电子指南针功能。

关键词:电子指南针 HMC5883 MCU LCD

0 引言

本系统以STC89C52单片机为控制核心,操纵磁场传感器检测所处环境的磁场。系统核心技术是由单片机通过HMC5883磁场传感器(3轴罗盘)检测环境中得磁场强度的数据对身处磁场进行判断,与程序设定的数据进行角度换算,通过磁场变化来测量所处方向的偏差,实现对指南针的判别方向功能,达到简化电子指南针系统的目的。

1 原理概述

地球的磁场强度大约为0.5-0.6高斯,并且具有一个平行于地球表面的成份,它始终指向磁北。这是信号采集模块的基础,地球磁场可用图1.1中所示的双极模型来模拟表示。

图1.1 地球磁场与真北模拟图

北半球中地球磁场向下指向北方,在赤道处它水平指向北方,并且在南半球中向上指向北方。在任何情况下,地球磁场的方向始终指向磁北。而我们要应用的,正是这磁场中平行于地球表面的分量。在本设计的信号采集中,我们关键完成两个步骤:1)确定地球磁场的水平分量;2)纠正磁偏角。

磁罗盘通过测量地磁场水平方向分量确定磁北极方向并推算出其他方向。当罗盘水平放置时,传感器坐标系的X、Y轴在水平面内,X轴为前进方向,Y轴垂直于X轴向右,Z轴沿重力方向向下,从磁北方向顺时针到X轴的夹角即为方位角a。地球磁场分量见下图1.2。

图1.2 X、Y、Z坐标中的地球磁场分量

2 系统设计

本文采用磁阻传感器来设计电子磁罗盘。设计电子磁罗盘的基本思

路:首先考虑到三轴磁阻传感器和加速度计的一些特性,我们采用HMC5883L三轴磁阻传感器进行地球磁场矢量测量,加速度计ADXl202敏感地球重力场中测量载体的姿态,然后通过姿态坐标变换将磁阻传感器沿载体坐标的测量信号变换到地平坐标系。其次我们将磁阻传感器的输出电压信号进行放大,之后送到A/D转换器进行模数转换。在微处理器中进行实时姿态计算、坐标变换,系统误差补偿,得到载体的姿态参数,将它们通过串口在上位机实时输出。最后在微处理器中进行实时姿态计算、坐标变换系统误差补偿,得到载体的姿态参数,将它们通过串口在显示模块实时输出。

图1.3 系统框图

设计框图如图3所示,可分为3大模块:传感器模块、数据采集模块和MCU模块。系统 首先利用加速度计敏感地球重力场中测量载体的姿态,然后通过姿态坐标变换将磁阻传感器沿载体坐标的测量信号变换到地平坐标系。在微处理器中进行实时姿态计算、坐标变换,系统误差补偿,得到载体的姿态参数,将它们通过串口在上位机实时输出。由于磁阻传感器的输出均为mv级的电压信号,所以必须经过运算放大器放大后,才可以送到A/D转换器进行模数转换。

1)传感器模块

本系统所用的磁阻传感器是HMC5883L三轴磁阻传感器,可测量X,Y,Z轴的磁场分量。其磁场测量范围是±8G,分辨率可达2mG。传感器尺寸小精度高功耗低,而且内置自测试电路,方便量产测试,无需增加额外昂贵的测试设备。加速计采用了可提供模拟电压输出的小量程、小尺寸、低功耗的两轴加速度计ADXL202,测量范围 是±2g。因为传感器本身自带了信号调理电路,所以不需要外路,可以直接接入A/D转换器。

2)数据采集模块

在传感器测量范围内,磁阻传感器输出的是与磁场成正比的差分电压信号,在5v供电的情况下产 生±30mv的偏置电压,因此可通过信号调理电路把双极性的电压信号转换成单极性信号,同时通过模 拟低通滤波,消除高频噪声,最终得到0一5V的电压范围。 AD7714是一款高分辨率、低噪声的24位∑一A/D转换器,支持6路单端信号输入满足5路信号的采集要求。

3.软件设计

软件采用模块化设计,总体结构分为系统主程序和各功能模块子程序两部分。其中主程序负责整个系统对子程序的及时响应和调用,有效的管理系统软件、硬件、子程序完成各指定功能,并供主程序调用,包括初始化、数据采集及滤波、计算及误差补偿矫正、航向角显示、串口收发和D/A输出等。在具体算法设计过程中,需要重点考虑系统的实时性、同步性、以及误差补偿等问题。

根据硬件设计要求,控制主程序流程如图1.4所示。系统开始运作后,单片机上电进行程序的初始化操作,对输入设备(HMC5883L)及输出设备(LCD1602)进行数据初始化。初始化完成后,启动磁场检测模块,并开始读取数据,通过主芯片进行数据计算,计算出当前方位的角度并发送角度到LCD1602显示,然后判别工作模式,分别对不同工作模式,执行对应动作。模式一,计算后输出身处方位方向;模式二,实时读取身处角度与设定范围的是否出现偏差,并发送警告信号。最后实现本系统“指南针”的功能。核心程序如下:

HMC5883_SendByte(SlaveAddress); //发送设备地址写信号

HMC5883_SendByte(0x03); //发送存储单元地址,从0x32开始

HMC5883_Start(); //起始信号

HMC5883_SendByte(SlaveAddress+1); //发送设备地址读信号

for (i=0; i

{

BUF[i] = HMC5883_RecvByte(); //BUF[0]存储0x32地址中的数据

if (i == 5)

{

HMC5883_SendACK(1); //最后一个数据需要回

NOACK

}

else

{

HMC5883_SendACK(0); //回应ACK

}

}

HMC5883_Stop(); //停止信号

图1.4 数据采集处理流程图

对于系统误差的分析:误差的存在主要因为本系统设计中未能成功设计抗干扰功能,系统工作中,因为磁阻周边的器件在工作过程中难免产生一些磁场干扰,而误差主要就是由此产生的。

4 结束语

该系统已经成功应用控定位产品中。在室温下,其测量方向角偏差在2°内,测量的温度偏差也小于1°C。地磁传感器HMC5883以其接口简单、功耗低、体积小和软件设计简单等优点在飞控定位和磁场检测等方面有着广阔的应用前景。

参考文献

[1]郭检梗基于磁阻芯片和MPS430的单片机电子罗盘设计[J],信息与电子工程,8(1),12-14,2010。

[2]江世明,基于Prouteus的单片机应用技术,电子工业出版社,2009。

[3]兰吉昌,51单片机应用设计百例,化学工业出版社,2009。

[4]胡修林,杨奇,用磁场传感器KMZ52设计的电子指南针,国外电子元器件,8(3),44-46,2004。