0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样随时重新校准磁力计

454398 来源:wv 2019-10-23 11:34 次阅读

步骤1:您需要的东西

您可能已有一个使用MPU-9150的Arduino项目,在这种情况下,您可以将我的草图加载到其中。 Neopixel环仅使用一个Arduino输出引脚。

或者,您可以使用此处描述的设置。您可以使用其他功能来扩展它,并且可以根据需要为其他基于Neopixel环的项目使用其他硬件。

您将需要:

基于ATMega328的Arduino和电源(尽管您可能会使用其他电源)

MPU-9150加速度计/陀螺仪/磁力计

Adafruit Neopixel环,12像素大小或更大的

无焊面包板,剥离板和跳线。

MPU-9150输入不容许5V的电压,因此以5V运行Arduino时,您将需要具有2个或更多电压的5V/3.3V电平转换器通道。这些东西从远东eBay卖家那里非常便宜。由于Neopixels需要5V的全部电压,因此您不能简单地以3.3V的电压运行整个项目。

电平转换器将Arduino的SDA和SCL引脚以5V的电平供电,并以3.3V的电压提供给MPU -9150。为此,它一方面需要5V电源,另一方面需要3.3V电源。幸运的是,常见的MPU-9150板包含3.3V稳压器,但是不幸的是,其输出未在任何引脚上提供。因此,必须如图所示将细线焊接到稳压器的输出引脚上。

找到稳压器,该稳压器应标记为KB33(在第二张图片的顶部)。您将需要一只稳定的手和一个尖尖的烙铁。将一根细线焊接到右上角的插针上。建立良好的连接后,请用一滴强力胶将其覆盖,以防止其轻易脱落。

步骤2:将其连接

接线将取决于您使用的是插线板还是无焊面包板,哪种类型的Arduino,以及是否使用电平转换器,因此我将为您确定接线或插线板布局。 (如果您觉得做不到,请尝试一个或两个简单的Arduino项目或使用Stripboard的项目,然后在有想法的情况下返回。)

电平转换器具有除Gnd之外,还有两个标为HV和LV的电源输入。使用您焊接到的细线,将HV连接到5V电源,将LV连接到MPU-9150的3.3V输出。 Arduino的SDA和SCL引脚使用5V逻辑电平,并连接到电平转换器的HV1和HV2引脚。然后,LV1和LV2引脚以3.3V逻辑电平向MPU-9150提供相同的信号。您的设备可能还具有未使用的HV3,HV4,LV3和LV4连接。

步骤3:对Arduino进行编程

该草图包括三个文件(附加)。将这三个都复制到Arduino sketch文件夹中的新文件夹“ Compass”中。然后,草图应出现在Arduino IDE的草图簿中。

在编译之前,请检查“指南针”选项卡下文件顶部的#define配置选项,并根据需要进行修改。

PIN定义用于Neopixel数据输入的Arduino引脚,默认情况下为引脚8。

BRILL是默认的像素亮度,最大可以为255,但是更高的值会造成盲目和可能消耗的电流超过电源所能提供的电流,尤其是使用较大尺寸的环之一时。我通常不会超过30。

PIXELS是指环中的像素数。 Adafruit当前提供的尺寸为12(非常好用),16、24(非常不错的尺寸)和60(巨大-如果您有足够的钱就可以了)。

已反转:如果您的戒指与MPU-9150在电路板的同一侧,请保留此注释掉。相对于MPU-9150,第一个像素应位于加速度计的正Y方向。取消注释您的戒指在板子的另一侧(已将板子绕Y轴翻转)。

您将需要下载并安装MPU6050库(其中还包含代码)用于MPU-9150,是MPU6050的超集)和Adafruit Neopixel库。编译草图并将其上传到Arduino。

步骤4:自动校准过程

首次运行草图时,它首先输入校准值程序。将完成的设备放在桌子上方几英寸的地方,使电路板的一个边缘与桌子的边缘对齐,或者与其他固定的直边对齐。

Neopixel环将显示一些绿色和一些蓝色像素。调平电路板,直到它们全部变为绿色。剩余的蓝色像素表示该边太高(天空为蓝色)。当满足水平要求时,将读取数个磁力计读数,然后将所有像素闪烁一次。

现在,它将要求您在4个方向上将其倾斜45度,以绿色提示和蓝色像素一样,在每个位置进行测量,并将所有像素闪烁2、3、4,最后闪烁5次。始终注意使板的边缘与桌子的边缘对齐。

整个过程将重复3次,然后将计算并存储磁力计的偏移量。

一旦校准,草图将模拟指南针。消除蓝色像素以使电路板保持水平,从而获得可靠的读数。红点叠加在一起,表示北。点从一个像素移动到下一个像素时逐渐淡出。

您可以根据需要使它重新进入校准模式,只需将板急剧地向另一方向扭转几下即可。

p》

第5步:在自己的项目中使用草图

您可以将校准功能合并到自己的项目中,方法是将我的代码合并到自己的代码中或添加代码挖掘,取决于您已经走了多远。 Mine包含钩子,可用于添加其他功能。

如果将Mine合并到自己的钩子中,请完成Calibrate和Functions选项卡。在“指南针”选项卡中,您需要将我的Setup()函数与您的函数合并,并将之前的所有内容合并到您的代码中。您只需要调用Calibrate()函数即可进入校准模式。

“校准”选项卡包含两个#define语句。 NUMSAMPLES定义每个位置获取多少个磁力计读数。可能没有特别的理由将其从10更改。这样的数字可以确保始终保持稳定。 NUMTESTS定义要重复执行5个位置的完整过程的次数。一个很好的数字是3,但是对于速度而言,如果您只想进行粗略的校准,则1可能就足够了。

步骤6:使用其他硬件

相同的技术可以用于其他磁力计,并且不仅限于Arduino,还必须对其进行调整,并可能将其从C语言翻译为另一种语言。

如果将代码修改为如果要使用其他磁力计,则MPU-9150会对磁力计和加速度计使用不同的坐标系。从一个交换到另一个需要交换X和Y值并取反Z。这是在readMag()函数中完成的,以便其余代码可以仅在加速度计的坐标系中工作。一旦计算出偏移量,就将其转换回磁力计坐标以进行存储。

使用其他磁力计,原则上您只需要替换readMag()函数即可。

三个数组,mx [],my []和mz [] 5个元素中的每一个,将磁力计读数保持在5个位置(即水平)上,分别绕X轴旋转45度,然后绕X轴旋转,以及类似地绕Y轴旋转。旋转加速度计输出的位置(第一个位置除外),以便displayCal()函数只需要计算变量“ angle”和“ up”,作为与所需方向和方向(作为浮点像素数)的角度最大的坡度。将误差的大小转换为对数刻度,以在误差较小时提供最大的灵敏度。当误差在限制范围内时,displayCal()函数将返回布尔值true,一旦这样做,行中就会以固定次数多次校准Calibrate()存储磁力计读数。

实际计算偏移量的计算需要几页代数和三角函数,但仅用4行代码即可实现。您可能会认识到魔术数0.7071是2或cos(45⁰)的平方根的一半。从1减去这个得到第二个魔术数0.29289并将其加倍得到第三个魔术数0.58579。毕竟不是魔术。

在校准中使用的45度倾斜没有什么特别之处,但是它确实大大简化了数学运算。原则上,您可以将设备绕垂直方向滚动,连续获取来自加速度计和磁力计的读数,并计算偏移量,直到计算出的平均值稳定在一个可靠的结果附近,但数学会复杂得多。 iOS Compass应用程序执行此操作,这是我自动校准的想法。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 校准
    +关注

    关注

    1

    文章

    153

    浏览量

    21838
  • 磁力计
    +关注

    关注

    1

    文章

    71

    浏览量

    20840
收藏 人收藏

    评论

    相关推荐

    陀螺仪LSM6DSV16X与AI集成(11)----融合磁力计进行姿态解算

    MotionFX库包含用于校准陀螺仪、加速度磁力计传感器的例程。 将磁力计的数据与加速度和陀螺仪的数据融合,可以大幅提高姿态估计的精度
    的头像 发表于 09-06 16:57 1834次阅读
    陀螺仪LSM6DSV16X与AI集成(11)----融合<b class='flag-5'>磁力计</b>进行姿态解算

    磁力计LIS2MDL开发(4)----MotionMC 执行磁力计校准

    磁力计测量结果容易受到周围环境中的硬铁(Hard Iron)和软铁(Soft Iron)效应的干扰,从而影响精度。为了解决这一问题,磁力计校准变得至关重要。STMicroelectronics提供
    的头像 发表于 08-26 10:56 1289次阅读
    <b class='flag-5'>磁力计</b>LIS2MDL开发(4)----MotionMC 执行<b class='flag-5'>磁力计</b><b class='flag-5'>校准</b>

    驱动LSM6DS3TR-C实现高效运动检测与数据采集(11)----磁力计校准

    磁力计校准是确保传感器数据准确性和可靠性的关键步骤。磁力计用于测量地球磁场,并在导航、定位、姿态测量等应用中起到重要作用。然而,磁力计在使用过程中会受到环境磁场、硬件偏差、安装误差等因
    的头像 发表于 08-23 09:57 477次阅读
    驱动LSM6DS3TR-C实现高效运动检测与数据采集(11)----<b class='flag-5'>磁力计</b><b class='flag-5'>校准</b>

    e2studio开发磁力计LIS2MDL(1)----轮询获取磁力计数据

    本文将介绍如何使用 LIS2MDL 传感器来读取数据。主要步骤包括初始化传感器接口、验证设备ID、配置传感器的数据输出率和滤波器,以及通过轮询方式持续读取磁力数据和温度数据。读取到的数据会被转换
    的头像 发表于 08-09 15:14 1729次阅读
    e2studio开发<b class='flag-5'>磁力计</b>LIS2MDL(1)----轮询获取<b class='flag-5'>磁力计</b>数据

    驱动LSM6DS3TR-C实现高效运动检测与数据采集(10)----融合磁力计进行姿态解算

    MotionFX库包含用于校准陀螺仪、加速度磁力计传感器的例程。 将磁力计的数据与加速度和陀螺仪的数据融合,可以大幅提高姿态估计的精度
    的头像 发表于 08-02 15:50 2107次阅读
    驱动LSM6DS3TR-C实现高效运动检测与数据采集(10)----融合<b class='flag-5'>磁力计</b>进行姿态解算

    脑磁图(MEG)新型技术及功能特点-多通道光泵磁力计便携平台

    脑磁图(MEG)新型技术及功能特点多通道光泵磁力计便携平台脑磁图(MEG)发展背景前景介绍脑磁图(MEG)通过评估神经电流产生的磁场来测量大脑功能。传统的MEG使用超导传感器,这对性能、实用性和部署
    的头像 发表于 06-06 08:16 913次阅读
    脑磁图(MEG)新型技术及功能特点-多通道光泵<b class='flag-5'>磁力计</b>便携平台

    使用主控IIC读取MPU9250的磁力计数据,速度特别慢怎么解决?

    使用iic对mpu9250进行读取数据,读取磁力计数据时采用的是主控iic方式,但是读取的速度特别慢,几秒一次,网上说磁力计数据输出的速率最快是100hz,几秒一次也太慢了;另外在初始化函数中开启了延时,但是一次读取6个字节的数据,只能读到前两个字节,后四个字节全为0,请
    发表于 04-11 07:02

    单片机一个IIC连接两个MPU9250如何设置读取磁力计的模式?

    在STM32单片机的一个IIC接口上同时连了两个MPU9250传感器,将两者的AD0分别设为高和低,对于磁力计都设置成Bypass模式,发现两块磁力计的数据都能读出来,Bypass模式不是由单片机
    发表于 04-10 07:14

    MotionEC和MotionMC的库在磁力计校准后为什么不调用MotionMC_SaveCalInNVM函数?

    MotionEC和MotionMC的库在磁力计校准后为啥不调用MotionMC_SaveCalInNVM这个函数
    发表于 04-02 08:05

    ADIS16485在没有磁力计的情况下怎么进行初始对准呢?

    读取了ADIS16485的数据发现陀螺仪几个轴的输出数据没有什么差别,那这个传感器是不是不能敏感出地球自转角速度,如果是的话在没有磁力计的情况下怎么进行初始对准呢?
    发表于 12-27 07:01

    Melexis推出新款微型3D磁力计,拓展性能极限

    2023 年12月13日,比利时泰森德洛 ——全球微电子工程公司Melexis今日宣布,推出Triaxis®微功耗磁力计MLX90394。这是一款基于霍尔效应的微型传感器,其完美的实现低噪音、微电流
    发表于 12-22 15:31 1024次阅读
    Melexis推出新款微型3D<b class='flag-5'>磁力计</b>,拓展性能极限

    磁力计LIS2MDL开发(1)----轮询获取磁力计数据

    本文将介绍如何使用 LIS2MDL 传感器来读取数据。主要步骤包括初始化传感器接口、验证设备ID、配置传感器的数据输出率和滤波器,以及通过轮询方式持续读取磁力数据和温度数据。读取到的数据会被转换为适当的单位并通过串行通信输出。
    的头像 发表于 12-18 10:56 1379次阅读
    <b class='flag-5'>磁力计</b>LIS2MDL开发(1)----轮询获取<b class='flag-5'>磁力计</b>数据

    Melexis宣布推出一款Triaxis®微功耗磁力计MLX90394

    据麦姆斯咨询报道,近日,全球微电子工程公司Melexis宣布,推出Triaxis®微功耗磁力计MLX90394。
    的头像 发表于 12-15 17:25 953次阅读

    Melexis推出新款微型3D磁力计,拓展性能极限

    Melexis推出Triaxis微功耗磁力计MLX90394。这是一款基于霍尔效应的微型传感器芯片,该产品实现了低噪音、微电流消耗和成本之间的平衡设计。
    的头像 发表于 12-15 13:38 802次阅读

    怎样设计和验证TRL校准件以及TRL校准的具体过程

    怎样设计和验证TRL 校准件以及TRL 校准的具体过程
    发表于 12-14 09:40 0次下载