当前位置:首页 > 八字命理

电子罗盘模块的作用(电子罗盘模块)

发布时间:2023-12-22 03:59:36作者:舍我其谁来源:网友上传

电子罗盘模块(电子罗盘模块怎么用)

电子罗盘模块

您好:以PMC例如,3000三轴电子罗盘的安装校准方法如下:由于电子罗盘采用地磁原理,与地磁引力有一定的关系,两者的磁辐射时间相同,一周辐射最高的出轨概率为40,对电子罗盘干扰最大的后果为89。让我们看看,你是那个家吗?坐在那个家里,有哪些因素是你的家?所以你要找的原因是不是家。我们可以解决这个问题。下面我们来介绍一下。

电子罗盘不喜欢离磁器

不要把罗盘的指针随意分开,做你喜欢的旋转。这是非常不合适的。例如,如果你把磁石放在家里,把符号放在家里,符号变成湿拖拉。如果你想打开这个家,把磁石放在中间,你会因为把磁石放在中间而摔碎。这是非常不吉利的。它们和我们的身体一样,这样的磁场和光环很容易影响我们,所以最好不要放磁石,不要觉得不在乎,很熟悉。

手机专业风水罗盘

出现磁石

家里的磁画面不好,真的有问题。如果你不把磁像(大红色磁表)放在你的磁像旁边,磁画的另一边是磁追槽(大红色磁石、小燕子、喜鹊报信),所以这是最忌讳的。如果家里有一个破钱的地方,你应该把磁标拿出来。当然,当磁像的松松像块茎一样上来时,它是你的磁石中禁忌的地方作为这一点,没有多少人,当你想赔钱的时候,你不知道后果。最好尽快避免。不使用时,不要使用电子双象上的两个催化剂。正确的方法是不要受电棒摆的伤害。正确的方法是不要受电棒摆的伤害。

事实上,目前,磁石不仅不能使用,而且比电棒能发射的射线更强大。虽然它的声音不洪亮,比普通的射线紫外线效果更好,但它是一种高火焰射线,放射火焰非常重。它被放置在家中房间的特定位置,如室内某处不舒服、不满意,或与其他房间(尤其是卧室)不匹配,最好不要轻易放大器量,否则会影响施工过程中的有效性。

电子罗盘模块怎么用

在影视剧中摸金校尉一把罗盘搞定墓穴位置,风水先生罗盘一转评判住宅吉凶,这罗盘真的有这么神奇?我不知道,但我知道罗盘导航、指示方向确有实效。古代中国最先将罗盘应用于航海,郑和下西洋就是用的它。后人将先辈的智慧发扬光大,也就有了更适用于现代社会的电子罗盘。

实验名称:HMC5883L三轴电子罗盘传感器

电子罗盘,又称数字罗盘,在现代技术条件中电子罗盘作为导航仪器或姿态传感器已被广泛应用。电子罗盘与传统指针式和平衡架结构罗盘相比能耗低、体积小、重量轻、精度高、可微型化,其输出信号通过处理可以实现数码显示,不仅可以用来指向,其数字信号可直接送到自动舵,控制船舶的操纵。目前,广为使用的是三轴捷联磁阻式数字磁罗盘,这种罗盘具有抗摇动和抗振性、航向精度较高、对干扰场有电子补偿、可以集成到控制回路中进行数据链接等优点,因而广泛应用于航空、航天、机器人、航海、车辆自主导航等领域。

一、实验说明

Arduino连接HMC5883L三轴电子罗盘传感器。

二、物料清单

PS:所需物料可以在这里购买—http://tbll000175/DXSXCvr4

三、模块说明

四、连线图

五、重要提示

主芯片HMC5883三轴磁阻传感器特点:

1. 数字量输出:I2C数字量输出接口,设计使用非常方便。

2. 尺寸小: 3x3x0.9MM LCC封装,适合大规模量产使用。

3. 精度高:1-2度,内置12位A/D,OFFSET, SET/RESET 电路,不会出现磁饱和现象,不会有累加误差。

4. 支持自动校准程序,简化使用步骤,终端产品使用非常方便。

5. 内置自测试电路,方便量产测试,无需增加额外昂贵的测试设备。

6. 功耗低:供电电压1.8V, 功耗睡眠模式-2.5uA 测量模式-0.6MA

六、实验代码

/* 作者:山东迅鸣物联网 时间:2019年1月31日IDE版本号:1.8.5 发表地址: 程序说明:Arduino连接HMC5883L三轴电子罗盘传感器*/#include <Wire.h> #include <HMC5883L.h> HMC5883L compass; void setup() { Serial.begin(9600); Wire.begin(); compass = HMC5883L(); compass.SetScale(1.3); compass.SetMeasurementMode(Measurement_Continuous); } void loop() { MagnetometerRaw raw = compass.ReadRawAxis(); MagnetometerScaled scaled = compass.ReadScaledAxis(); float xHeading = atan2(scaled.YAxis, scaled.XAxis); float yHeading = atan2(scaled.ZAxis, scaled.XAxis); float zHeading = atan2(scaled.ZAxis, scaled.YAxis); if(xHeading < 0) xHeading += 2*PI; if(xHeading > 2*PI) xHeading -= 2*PI; if(yHeading < 0) yHeading += 2*PI; if(yHeading > 2*PI) yHeading -= 2*PI; if(zHeading < 0) zHeading += 2*PI; if(zHeading > 2*PI) zHeading -= 2*PI; float xDegrees = xHeading * 180/M_PI; float yDegrees = yHeading * 180/M_PI; float zDegrees = zHeading * 180/M_PI; Serial.print(xDegrees); Serial.print(\",\"); Serial.print(yDegrees); Serial.print(\",\"); Serial.print(zDegrees); Serial.println(\";\"); delay(100); }

打开Arduino串口监视器即可看到结果(X平面角度,Y平面角度,Z平面角度):

七、相关函数介绍

Serial.begin(speed):串口配置。参数speed是指串口通信波特率。

Arduino串口通信通常会使用以下波特率:300、600、1200、2400、4800、9600、14400、19200、28800、38400、57600、115200。

Serial.print() 或Serial.println() :串口输出。

Serial.print(val):参数val是你要输出的数据,各种类型的数据均可。

Serial.println(val):println会在输出完指定数据后,再输出一组回车换行符

delay( ms):此函数为毫秒级延时。参数为时长,类型unsigned long。

今天的内容你学会了吗?动手实践才是真理呦,赶快跟着小编的讲解实际操作一下吧!有问题还可以在评论区留言呦!关注我们的微信公众号:xunmingiot,后台回复“入门”即可获取学习资料,帮助你更好的进入学习。

我们下期再见啦!(码字不易,点个赞再走呗)

往期教程可以点击以下链接查看:

怎样快速入门Arduino(二十四)—Arduino连接超声波传感器测距怎样快速入门Arduino?(二十三)—TCS3200颜色传感器怎样快速入门Arduino?(二十二)—在SD卡中进行文件读写

电子罗盘模块的作用

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

电子罗盘测向原理

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

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

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

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

硬件设计

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

图21.1 硬件系统设计图

1. 控制器模块

图21.2 ATmega16 最小系统原理图

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

图21.3 ATmega16最小系统实物图

图21.4 HMC5883L模块

图21.5 串口模块

图21.6 底板原理图

2. HMC5883L 模块

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

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

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

3. 串口模块

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

4. 底板模块

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

软件设计

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

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

图21.7 总体设备实物图

图21.8 单片机软件流程图

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

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

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

罗盘误差及补偿

图21.9 PC端软件流程图

图21.10 PC 端软件界面

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

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

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

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

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

总结

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

电子罗盘模块指示