利用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板上配置和运行模型
打开arduino_imu_pitch_roll_calculation模型。
在硬件选项卡上,单击硬件设置打开配置参数对话框。
选择硬件实现面板中选择Arduino硬件硬件板参数列表。请勿更改其他设置。点击好吧.
在硬件选项卡中的Simuli金宝appnk模型模式部分中,选择在船上跑然后点击构建、部署和启动在Arduino板上运行这个模型。
要在MATLAB中查看输出,请使用Monitor和Tune特性运行模型。要做到这一点,在硬件选项卡中的Simuli金宝appnk模型模式部分中,选择在船上跑然后点击监视和调优.