综合电子罗盘(单片机实例分享)

罗盘是自动控制测试及测量领域中用来获取方向信息的装置目前应用较广泛的是磁阻式电子罗盘这种电子罗盘具有较好的抗振性对干扰有电子补偿因此测向精度较高但现有电子罗盘电路结构复杂体积较大不便于携带和使用难以集成到现有嵌入式设备中针对这些问题本文提出了以霍尼韦尔HoneyWell公司三轴磁阻传感器HMC5883L为敏感元件使用低功耗控制器AVR单片机为传感器数据处理单元的小型低功耗电子罗盘该罗盘支持串口输出可以方便集成到各种应用中

电子罗盘测向原理

地球的磁感应强度为5060T相当于沿着地球中心的一个磁棒磁棒的两极相对于地理的两极有大约115的夹角无论何地地球磁场的水平分量永远指向磁北极这一原理是所有罗盘的制作基础所有罗盘都是测量地球磁场的北方向其他方向即可推算出来地球磁场的北方向和实际的北方向有差别而这种差别的大小在地球上的不同地点也是不同的所以必须知道罗盘所在的大致位置才能计算出如何补偿地磁和真实北方向的差别以显示出真实的北方向

磁北的方向就是地磁场在水平面上分量的方向假设电子罗盘处于水平面上要确定其相对于磁北的航向角由磁阻传感器可以直接得出地磁场的水平分量HxHy因此相对于磁北的航向角为

正切函数的周期为180为保证数据有效性船体航向角转换到相对磁北0360的范围内可将上式分解得到相对于磁北极的360范围内顺时针方向的航向角加上当地的磁偏角就可以算出与真北的航向角

由于地磁南北极与地理南北极存在磁偏角要得到准确的南北极方向必须用计算结果加上或减去所在地区磁偏角得出前进方向与地理北极的夹角即真北方位角A当所在地区磁偏角已知时真北方位角为A

硬件设计

电子罗盘的硬件系统如图211所示主要由传感器控制器电源及串口输出4部分组成控制器通过串口与PC通信用于实现对电子罗盘的设置校正以及测量数据输出

图211硬件系统设计图

1控制器模块

图212ATmega16最小系统原理图

控制器采用ATmega16这是一款基于增强的AVRRISC结构的高性能低功耗8位MCU工作电压为2755V在1MHz时钟下工作电流为11mA大多数指令可以单时钟周期执行具有统一的中断管理片上外围模块丰富片内有16KB的Flash1KB的RAM512字节的EEPROM8路的10位AD转换器以及一路USART通信端口等资源在本设计中控制器串口与PC连接可以对电子罗盘进行配置及校正也可以将最终计算得到的方向及角度通过串口输出供其他测量系统使用控制器模块在ATmega16的基础上做了最小系统的扩展如图212所示按照模块化设计思想本文将最小系统制作成单独模块其最终实物如图213所示

图213ATmega16最小系统实物图

图214HMC5883L模块

图215串口模块

图216底板原理图

2HMC5883L模块

HMC5883L是一种基于表面贴装的高集成自带数字接口的弱磁传感器应用于低成本罗盘和磁场检测领域HMC5883L包括最先进的高分辨率HMC118X系列磁阻传感器并附带霍尼韦尔专利的集成电路包括放大器自动消磁驱动器偏差校准能使罗盘精度控制在12的12位模数转换器以及简易的I2C总线接口

HMC5883L采用霍尼韦尔各向异性磁阻AMR技术具有轴向高灵敏度和线性高精度的特点能用于测量地球磁场的方向和大小

HMC5883L模块的外围电路非常简单本文采用的是成品模块如图214所示该模块外接引脚包括VCCGNDSCLSDADRDY3V3其中VCC为5V输入模块自带降压功能可以输出33V电压供其他模块使用SCL与SDA为标准I2C接口DRDY用于指示HMC5883L数据是否准备好用于中断方式读取测量数据

3串口模块

与PC通信的串口模块采用的是USB转串口方式同样采用成品模块如图215所示该模块使用PL2303HX芯片实现USB转串口功能具有电路简单传输速度快等特点模块引出的功能引脚包括TXDRXDGND3V35V其中5V为USB总线输出电压本文将该电压作为下位机的供电电压TXD与RXD为串口接口与单片机直接连接无需做电平转换模块内部同时集成了降压模块可以输出33V电压但由于已经使用了HMC5883L模块的降压功能本系统中该输出引脚悬空

4底板模块

各模块之间需要通过底板进行连接其原理图如图216所示其中与HMC5883L模块的I2C接口使用的是ATmega16的硬件接口因此需要连接PC0与PC1端口DRDY则与PD7端口连接串口模块与单片机的硬件串口端口PD0PD1连接总体连接相对简单将各个模块通过插座插针以及连接线连接设备最终的样子如图217所示

软件设计

电子罗盘的软件分为两部分单片机上的软件以及PC端的控制软件平时工作时只需运行单片机上的程序PC端软件仅显示当前数据当需要配置或者校正时要配合PC端软件使用

单片机的软件流程如图218所示参数保存在单片机的EEPROM中掉电后仍然可以保存

图217总体设备实物图

图218单片机软件流程图

PC机与单片机进行串口连接平时工作时单片机工作在正常模式PC端软件通过串口查询当前方位角并显示在界面上当需要配置电子罗盘时可以通过PC端软件设置磁偏角参数都会保存在单片机的EEPROM中罗盘重启后还按之前的设置参数运行当需要对罗盘进行校正时通过PC端软件启动校正流程用户需要在水平面上缓慢旋转罗盘360然后通过PC端软件告知罗盘结束校正此时罗盘会自动计算出XY轴的偏移值并保存同时PC端软件上会显示这些偏移值

PC端软件采用VisualC2005编写基于MFC框架开发软件流程如图219所示软件框架采用的是查询方式由PC控制软件作为主动方发送串口命令到单片机单片机则作为被动方将结果返回给PC控制软件

通过界面上的按钮用户可以设置电子罗盘进行校正并看到当前方位角的显示界面如图2110所示使用时先将单片机与PC串口连接然后打开对应的串口号此时即可以看到当前方位角显示在偏角栏里如果需要设置磁偏角只需将数值写入对话框并单击设置按钮即可校正功能相对比较复杂在单击开始校正后需要手动旋转电子罗盘360然后再单击结束校正最大最小偏移值即会显示在界面上

罗盘误差及补偿

图219PC端软件流程图

图2110PC端软件界面

图2111有无干扰时的罗盘输出

造成罗盘误差的主要因素有传感器误差其他磁材料干扰等为了校准传感器放大电路HMC5883内部集成了自测试电路可以驱动偏置电流带产生一定大小的测试磁场以校准传感器各轴灵敏度自测试还可以校准温度变化产生的漂移当磁阻传感器处于较强干扰磁场中时传感器灵敏度会下降甚至失效为了消除这种影响需要复位置位电路施加脉冲宽度为2s电流强度为34A的电流使传感器特性恢复在目前应用较为广泛的HMC1022及HMC1022模拟输出磁阻传感器中复位置位电路需要额外设计并由控制器控制而HMC5883芯片内部集成了生成复位置位脉冲所需的驱动电路且由片上ASIC电路自动控制在每次测量前自动进行复位置位操作不仅保证了传感器精度也使传感器应用电路大为简化

除了传感器本身的误差磁阻传感器应用环境中的磁介质引起的磁场变化也会使电子罗盘精度降低磁场干扰分硬磁干扰和软干扰两类硬磁干扰是传感器附近的永磁体或被磁化的金属造成的它对磁阻传感器输出的影响是固定的使输出曲线图圆心偏移如图2111b所示而软磁干扰则是地球磁场和传感器附近磁性材料的相互作用造成的其干扰具有方向性如图2111c所示

为了校正XY轴方向的硬磁干扰需要在校准模式中绕Z轴缓缓旋转罗盘一周在旋转过程中罗盘不断采集XY轴的磁场强度数据最终找出数据的最大值XmaxYmax和最小值XminYmin对于Z轴的校准需要绕X轴或Y轴旋转一周找出Z轴数据的最大值Zmax最小值Zmin校准偏移量为

将偏移量保存到控制器的EEPROM存储器中在以后的每次测量中将每轴的磁场强度减去对应的偏移量即可校准硬磁干扰消除软磁干扰的补偿算法较为复杂在低成本的控制器上不易实现且效果有限因此在本设计中选用了优化磁阻传感器安装位置的方法以降低其他磁性材料对地磁场的干扰保证罗盘精度

总结

本文依据磁罗盘测向原理设计了具有倾斜补偿功能的小体积低功耗数字罗盘该罗盘采用数字磁阻传感器HMC5883L及超低功耗处理器ATmega16L具有电路结构简单集成度高抗干扰能力强等优点实验证明经算法补偿后该电子罗盘精度可以达到1由于硬件成本低功耗小它也适用于便携导航小型飞行器控制以及用于其他需要测量倾角和方位角的场合

(0)
上一篇 2022年3月31日
下一篇 2022年3月31日

相关推荐