主要内容

lsm9ds1

连接到LSM9DS1传感器Arduino硬件I2C总线

自从R2019a

描述

lsm9ds1对象读取加速度、角速度、使用意法半导体和磁场®LSM9DS1传感器。LSM9DS1是9自由度(自由度)的惯性测量单元(IMU)用于读取加速度、角速度,在所有三维磁场。

lsm9ds1对象代表Arduino的连接设备®硬件I2C总线。附加一个LSM9DS1传感器I2C Arduino硬件上的别针。你可以在MATLAB从传感器读取数据®使用对象的功能。

在你使用lsm9ds1对象,创建一个Arduino对象使用arduino并设置其属性。当您创建Arduino对象,确保包括I2C图书馆。有关更多信息,请参见连接到Arduino硬件

创建

描述

imu= lsm9ds1 (一个)创建一个传感器对象使用默认属性值。对象表示连接的传感器Arduino硬件,一个

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

例子:imu = lsm9ds1 (“SampleRate”, 150年,“SamplesPerRead”, 5,“ReadMode”,“最新”);

输入参数

全部展开

Arduino硬件连接使用arduino,指定为一个对象。

例子:imu = lsm9ds1 (a)创建一个连接到LSM9DS1 Arduino对象上的传感器,一个

名称-值参数

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

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

指定的I2C地址传感器当多个I2C LSM9DS1设备预期的地址连接到相同的硬件。LSM9DS1可以有倍数奴隶地址取决于逻辑电平的别针SDO_A / G和SDO_M传感器。

SDO_A / G销状态 SDO_M销状态 I2C地址
[0 x6a, 0 x1c]
[0 x6a, 0 x1e]
[0 x6b 0 x1c]
[0 x6b, 0 x1e]

您可以指定I2C地址:

  • 数值数组的十六进制、十进制、二进制格式的I2C地址

  • 字符串数组I2C十六进制值的地址

  • 单元阵列字符的十六进制值向量I2C地址

例子:imu = lsm9ds1 (“I2CAddress”, {0 x6a ', ' 0 x1c '})

“0 x6a”I2C地址LSM9DS1的加速度计和陀螺仪。“0 x1c”是LSM9DS1的磁强计的I2C地址。

如果没有指定,那么将创建对象和一个可用的I2C表中的设备地址。I2C的设备将由使用预期的地址scanI2CBus

I2C总线的数字,指定为0或1。默认值是0。

例子:imu = lsm9ds1(“公共汽车”,1)总线上创建传感器对象1 Arduino由于董事会

数据类型:

属性

全部展开

请注意

属性也可以用作在创建一个名称-值对参数lsm9ds1对象。

指定的I2C地址传感器当多个I2C LSM9DS1设备预期的地址连接到相同的硬件。LSM9DS1可以有倍数外围地址取决于逻辑电平的别针SDO_A / G和SDO_M传感器。

SDO_A / G销状态 SDO_M销状态 I2C地址
[0 x6a, 0 x1c]
[0 x6a, 0 x1e]
[0 x6b 0 x1c]
[0 x6b, 0 x1e]

您可以指定I2C地址:

  • 数值数组的十六进制、十进制、二进制格式的I2C地址

  • 字符串数组I2C十六进制值的地址

  • 单元阵列字符的十六进制值向量I2C地址

“0 x6a”I2C地址LSM9DS1的加速度计和陀螺仪。“0 x1c”是LSM9DS1的磁强计的I2C地址。

如果没有指定,那么将创建对象和一个可用的I2C表中的设备地址。I2C的设备将由使用预期的地址scanI2CBus

I2C总线的数字,指定为0或1。默认值是0。

数据类型:

请注意

除了TimeFormatnon-tunable,所有其他的属性,这意味着你无法改变他们的价值观一旦被锁定的对象。当你调用对象锁功能,释放函数打开它们。如果属性是可调的,你可以在任何时候改变它的值。

样品/ s的速度从传感器读取的数据。

可调:没有

数据类型:

从传感器读取的数量的样品在一个单一的执行函数。

可调:没有

数据类型:

指定是否返回最新或最古老的数据样本。取决于样品的数量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-by-3数组单元的m / s2

  • AngularVelocity - N-by-3阵列在单位的rad / s

  • 磁场——在单位µT N-by-3数组(microtesla)

OutputFormat被设置为矩阵,数据返回矩阵的加速度、角速度,磁场和时间戳。传感器读数的单位是一样的时间表格式。每个矩阵的大小是N-by-3。

N是每阅读指定的样本的数量SamplesPerRead。每个字段代表测量的三列在x, y和z轴。

可调:没有

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

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

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

  • 持续时间——显示时间在秒后传感器对象是锁着的。传感器对象锁定在第一次调用函数对象创建后或之后执行的释放函数。

可调:是的

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

使用

创建LSM9DS1传感器连接

创建一个Arduino对象,包括I2C图书馆。

一个= arduino ();

或者,您可以显式地指定它在创建Arduino对象名称-值对。

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

创建传感器对象。

imu = lsm9ds1 (a)
imu = lsm9ds1属性:I2CAddress: 107 (“0 x6b”): 30 (“0 x1e”) SCLPin:“A5”SDAPin:“A4”SampleRate: 100(样本/ s) SamplesPerRead: 10 ReadMode:“最新”SamplesRead: 0 SamplesAvailable: 0显示所有属性,函数

创建LSM9DS1传感器连接与额外的参数名称-值对

创建一个传感器对象与附加属性指定为参数名称-值对。

清晰的imu;imu = lsm9ds1 (,“SampleRate”,50岁,“SamplesPerRead”5,“ReadMode”,“古老的”)
imu = lsm9ds1属性:I2CAddress: 107 (“0 x6b”): 30 (“0 x1e”) SCLPin:“A5”SDAPin:“A4”SampleRate: 50(样本/ s) SamplesPerRead: 5 ReadMode:“古老”SamplesRead: 0 SamplesAvailable: 0显示所有属性,函数

对象的功能

readAcceleration 从传感器读取加速度的一个示例
readAngularVelocity 从传感器读取角速度的一个示例
readMagneticField 从传感器读取磁场的一个示例
读取实时传感器数据在指定的速度
释放 释放传感器对象
冲洗 冲洗主机缓冲
信息 阅读相关信息传感器

更多关于

全部展开

版本历史

介绍了R2019a

另请参阅

主题