主要内容

利用IMU传感器在Arduino上计算俯仰和横摇

这个例子展示了如何从安装在Arduino®硬件上的IMU传感器读取加速度和角速度数据,并计算俯仰和滚动角度。

先决条件

在开始本示例之前,请安装以下MathWorks®产品:下载188bet金宝搏

  • MATLAB

  • 金宝app

  • 金宝appSimu金宝applink支持包Arduino®硬件

  • MATLAB支金宝app持包Arduino®硬件

硬件要求

  • Arduino(任何Arduino硬件,带有I2C外设,支持MATLAB函数块的代码生成)金宝app

  • MPU9250(任何带有加速度计和陀螺仪的IMU传感器)

注意:任何支持MATLAB函数块编码生成的IM金宝appU传感器都可以在这个例子中使用。如果使用任何其他传感器创建IMU传感器对象,例如使用LSM9DS1传感器,则需要将对象创建从mpu9250(a)修改为LSM9DS1 (a)。

模型

金宝appSimu金宝applink支持包为Arduino硬件提供了一个预先配置的模型可以用来读取安装在Arduino硬件上的IMU传感器的加速度和角速度数据,并计算俯仰和横摇角度。

要打开模型,在MATLAB命令提示符下运行以下命令:

open_system (“arduino_imu_pitch_roll_calculation”);

算法

传感器轴的对中应如下:

  • x轴=纵轴或滚轴

  • y轴=横向轴或俯仰轴

  • z轴=垂直轴或偏航轴

在这个模型中,俯仰和横摇角是用加速度计和陀螺仪读数计算的。在硬件上部署模型后,可以根据传感器的方向求出俯仰和横摇角度。俯仰和横摇角度的范围为[-90度,90度]。如果保持传感器稳定并与地面平行,即z轴垂直于地面,则两个读数都应为0。相对于节轴逆时针旋转的节距角为正,顺时针旋转的节距角为负。对于滚转角度也是一样的。为了在程序开始执行时滤除噪声,当传感器在地面上保持稳定,z轴垂直于地面时,读取多次传感器,并计算俯仰和横摇角的偏移值。在每一步计算俯仰角和横摇角时,将这些值减去。这在一定程度上消除了传感器读数中的稳定噪声。

在Arduino板上配置和运行模型

  1. 打开arduino_imu_pitch_roll_calculation模型。

  2. 硬件选项卡上,单击硬件设置打开配置参数对话框。

  3. 选择硬件实现窗格中选择您的Arduino硬件硬件板参数列表。不要更改任何其他设置。点击好吧

  4. 硬件选项卡中的金宝app模式部分中,选择机上运行然后点击构建、部署和启动在Arduino板上运行这个模型。

  5. 要在MATLAB中查看输出,请使用Monitor和Tune特性运行模型。要做到这一点,就上硬件选项卡中的金宝app模式部分中,选择机上运行然后点击监视和优化