主要内容

mpu6050

接通MPU-6050传感器Arduino硬件I2C总线

描述

mpu6050对象读取加速度和角速度使用InvenSense MPU-6050传感器。MPU-6050是一个6自由度(DOF)惯性测量单元(IMU),用于读取所有三个维度的加速度和角速度。

mpu6050对象表示到Arduino上的设备的连接®硬件I2C总线。将一个mcu -6050传感器连接到Arduino硬件的I2C引脚上。你可以在MATLAB中读取传感器的数据®使用对象函数。

在使用mpu6050对象,使用arduino并设置其属性。在创建Arduino对象时,请确保包含I2C库。有关更多信息,请参见连接Arduino硬件

创建

描述

imu= mpu6050 (一个创建带有默认属性值的传感器对象。这个对象代表Arduino硬件上传感器的连接,一个

imu= mpu6050 (一个名称,值使用一个或多个属性创建传感器对象名称,值对参数。

例子:imu = mpu6050(a,'SampleRate',150,'SamplesPerRead',5,'ReadMode','latest');

输入参数

全部展开

Arduino硬件连接创建使用arduino,指定为对象。

例子:Imu = mpu6050(a)在Arduino对象上创建与mcu -6050传感器的连接,一个

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

当有多个I2C设备连接在同一块硬件板上时,需要指定传感器的I2C地址。MPU-6050可以有两个I2C地址,这取决于传感器引脚AD0上的逻辑电平。

销的名字 销状态 I2C地址
AD0 0 x68
0 x69

I2C地址可以通过以下方式指定:

  • 十六进制、十进制或二进制格式

  • I2C地址16进制字符串

  • “I2C地址”16进制值的字符向量

例子:imu = mpu6050(a,'I2CAddress','0x68')

0x68为连接Arduino板的MPU-6050的加速度计和陀螺仪的I2C地址。

如果未指定,将使用表中可用的I2C设备地址之一创建对象。可用的I2C设备和预期的地址将由使用决定scanI2CBus

I2C总线号,指定为0或1。缺省值为0。

例子:imu = mpu6050(a, '总线',1)在Arduino Due板的总线1上创建传感器对象

数据类型:

属性

全部展开

请注意

属性还可以在创建对象时用作名值对参数mpu6050对象。

当有多个I2C设备连接在同一块硬件板上时,需要指定传感器的I2C地址。MPU-6050可以有两个I2C地址,这取决于传感器引脚AD0上的逻辑电平。

销的名字 销状态 I2C地址
AD0 0 x68
0 x69

I2C地址可以通过以下方式指定:

  • 十六进制、十进制或二进制格式

  • I2C地址16进制字符串

  • “I2C地址”16进制值的字符向量

0x68为连接Arduino板的MPU-6050的加速度计和陀螺仪的I2C地址。

如果未指定,将使用表中可用的I2C设备地址之一创建对象。可用的I2C设备和预期的地址将由使用决定scanI2CBus

I2C总线号,指定为0或1。缺省值为0。

数据类型:

请注意

除了TimeFormat,所有其他属性都是不可调的,这意味着一旦对象被锁定,您就不能更改它们的值。对象被锁定函数,以及释放功能解锁它们。如果属性是可调的,则可以随时更改其值。

从传感器读取数据的采样速率/秒。

可调:没有

数据类型:

在单次执行中从传感器读取的样本数函数。

可调:没有

数据类型:

指定是返回最新的还是旧的数据样本。样本的数量取决于SamplesPerRead价值。从传感器读取的数据存储在MATLAB缓冲区中。

  • 最新的- - - - - -

    提供缓冲区中可用的最新数据示例。缓冲区中所有先前的数据样本将被丢弃。例如,如果SamplesPerRead= 3,则返回传感器读取的最近三个数据样本。

    下图说明了如何返回最新的数据样本,假设S1是存储在缓冲区中的第一个传感器数据,S2是第二个数据,等等,Sn是存储在缓冲区中的最后一个数据SamplesPerRead属性在创建传感器对象时设置为3。

  • 最古老的- - - - - -

    提供缓冲区中可用的最古老的数据示例。在这种情况下,没有数据样本被丢弃。例如,如果SamplesPerRead= 3,第一次读取时返回前三个数据样本,第二次读取时返回后三个数据样本,依此类推。

    下图说明了如何返回最古老的数据样本,假设S1是存储在缓冲区中的第一个传感器数据,S2是第二个数据,以此类推,Sn是存储在缓冲区中的最后一个数据SamplesPerRead属性在创建传感器对象时设置为3。

可调:没有

数据类型:特征向量|字符串

此属性是只读的。

从第一个示例读取.当你释放的对象,SamplesRead设置为0。

数据类型:

此属性是只读的。

在主机缓冲区中可用的示例。从传感器读取的数据存储在MATLAB缓冲区中。SamplesAvailable属性显示的数目SamplesAvailable在这个主机缓冲区中。当你释放对象时,SamplesAvailable设置为0。当ReadMode传感器的值设置为最新的SamplesAvailable总是0。

数据类型:

方法返回的数据的输出格式函数。

OutputFormat设置为时间表时,返回的数据有以下字段:

  • 时间-时间戳datetime持续时间格式

  • 加速度- n × 3阵列,单位为m/s2

  • 角速度- n × 3阵列,单位为rad/s

OutputFormat设置为矩阵,数据以加速度、角速度和时间戳的矩阵形式返回。传感器读数的单位与时间表格式。每个矩阵的大小是n × 3。

N为每次读取的样本数SamplesPerRead.每个字段的三列表示x、y和z轴上的测量值。

可调:没有

数据类型:特征向量|字符串

设置读取传感器数据时显示时间的格式。

  • datetime—显示读取数据的日期和时间。

  • 持续时间—显示锁定传感器对象后经过的时间,以秒为单位。类的第一次调用时锁定传感器对象函数在对象创建之后或在执行释放函数。

可调:是的

数据类型:特征向量|字符串

使用

创建MPU-6050传感器连接

创建一个Arduino对象,包括I2C库。

A = arduino();

方法中显式指定名称-值对,同时创建Arduino对象。

清晰的一个;A = arduino(“COM4为”“Uno”“库”“I2C”);

创建传感器对象。

Imu = mpu6050(a)
imu = mpu6050 with properties: I2CAddress: 104 ("0x68") SCLPin: "A5" SDAPin: "A4" SampleRate: 100 (Samples/s) SamplesPerRead: 10 ReadMode: 'latest' SamplesRead: 0 SamplesAvailable: 0显示所有属性,函数

创建带有附加名称-值对参数的MPU-6050传感器连接

创建带有附加属性的传感器对象,这些属性指定为名称-值对参数。

清晰的imu;Imu = mpu6050(a,“SampleRate”, 50岁,“SamplesPerRead”5,“ReadMode”“古老的”
imu = mpu6050 with properties: I2CAddress: 104 ("0x68") SCLPin: "A5" SDAPin: "A4" SampleRate: 50 (Samples/s) SamplesPerRead: 5 ReadMode: 'old ' SamplesRead: 0 SamplesAvailable: 0显示所有属性,函数

对象的功能

readAcceleration 从传感器读取一个加速度样本
readAngularVelocity 从传感器读取一个角速度样本
按指定速率读取传感器实时数据
释放 释放传感器对象
冲洗 刷新主机缓冲区
信息 读取传感器相关信息

更多关于

全部展开

版本历史

在R2019a中引入

另请参阅

主题