主要内容

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

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

先决条件

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

  • MATLAB

  • 金宝app

  • 金宝appArdu金宝appino®硬件的Simulink支持包

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

硬件要求

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

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

注意:本例中可以使用任何支持从MATLAB函数金宝app块生成代码的IMU传感器。如果使用其他传感器创建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. 硬件选项卡中的Simuli金宝appnk模型模式部分中,选择在船上跑然后点击构建、部署和启动在Arduino板上运行这个模型。

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