这期测评测评一下板载的lsm6dsl传感器,sm6dsl 是一种常用的微型惯性测量单元(IMU)传感器,由STMicroelectronics公司生产。这种传感器结合了三轴加速度计和三轴陀螺仪,具有以下特点:
三轴加速度计:LSM6DSL 能够测量物体在 x、y 和 z 三个轴向上的加速度,可用于检测和监测物体的运动状态、姿态变化和震动等。
三轴陀螺仪:该传感器还能够测量绕 x、y 和 z 轴旋转的角速度,从而可以用来跟踪物体的旋转、转向和角度变化。
低功耗设计:LSM6DSL 采用了低功耗设计,适合用于便携设备、可穿戴设备和物联网(IoT)设备中,能够提供长时间的稳定性能。
高精度:该传感器具有高精度的数据输出,可以提供精确的加速度和角速度测量结果。
广泛应用:LSM6DSL 在汽车电子、智能手机、虚拟现实(VR)、增强现实(AR)、运动跟踪、无人机和工业自动化等领域得到广泛应用。
1.查看原理图查看引脚
可以看到原理图上这个芯片是挂载在I2C2上的,这和我们上期那个lis3mdl传感器挂载的是同一个总线上。因此我们可以在上个工程的基础上来写这个传感器的代码 。我们直接复制上期测评的工程作为本次工程的基础。
2.移植LIS3MDLTR传感器的驱动
我在本论坛找到了该传感器的驱动,链接为LSM6DSL(加速度+陀螺仪)驱动例程ver1.8 - MEMS传感器 - 电子工程世界-论坛 (eeworld.com.cn)
我们打开他的这个文件分析一下
在整个文件夹里面分为driver目录和example目录,分别为传感器的驱动,和示例代码。其中在example目录下有读取传感器数据的示例和Wake-Up and Free-Fall示例,翻译过来应该是唤醒和自由落体的功能。本期测评主要测评以下是否能从传感器中读取数据
我们将driver目录下的驱动文件全部复制到我们工程目录的app下,示例代码作为我们的参考代码。由于驱动是使用面向对象的思想来编写的,所以驱动移植来非常好移植,只需要实现I2C读发的代码就行了。
我们看示例代码怎么移植的,下面是一个读取传感器寄存器值的函数:
这里我们使用的是I2C2,所以传感器读发的函数代码我简化成了下面所示
static int32_t platform_write(void *handle, uint8_t Reg, uint8_t *Bufp,
uint16_t len)
{
HAL_I2C_Mem_Write(handle, LSM6DSL_I2C_ADDRESS, Reg,
I2C_MEMADD_SIZE_8BIT, Bufp, len, 1000);
return 0;
}
static int32_t platform_read(void *handle, uint8_t Reg, uint8_t *Bufp,
uint16_t len)
{
HAL_I2C_Mem_Read(handle, LSM6DSL_I2C_ADDRESS, Reg,
I2C_MEMADD_SIZE_8BIT, Bufp, len, 1000);
return 0;
}
然后继续看示例代码
这里它使用的是spi的句柄,问应该使用I2C2,所以把这个句柄改为hi2c2
接着看示例代码
现在它已经开是读取数据了,不过他这里应该是用了USB_otg的功能把数据发送给上位机了,我们这里用串口打印就行,所以将CDC_Transmit_FS发送函数的代码,改成printf的代码
至此,我们的lsm6dsl传感器的代码就基本完成了。
3.测试验证和数据处理
我们将代码烧录到开发板上后,用串口软件看看打印的结果。打印结果如下所示
可以看到在开发板没动的情况下,数值很稳定,所以程序应该是没问题了。但是这个数值只是原始值,我们还需要将他处理成为我们想要的加速度的值,这个我放在下期来讲。
总结:通过本期测评成功读取到了lsm6dsl加速度+陀螺仪传感器的原始数据值,数值变化很稳定,我将会在下期测评中对本期测到的数据做一些处理或者姿态结算。
用加速度和陀螺仪可以计算出角度嘛。
引用: wangerxian 发表于 2024-3-25 15:08 用加速度和陀螺仪可以计算出角度嘛。
可以,三个方向的偏移角度都可以算
引用: qiao--- 发表于 2024-4-14 14:27 可以,三个方向的偏移角度都可以算
那感觉和MPU6050一样,还有其他啥优势呀。
引用: wangerxian 发表于 2024-4-14 19:14 那感觉和MPU6050一样,还有其他啥优势呀。
看官方说是低功耗比较厉害
引用: qiao--- 发表于 2024-4-14 19:21 看官方说是低功耗比较厉害
那我觉得可以测一下它这个特性。
引用: wangerxian 发表于 2024-4-15 09:09 那我觉得可以测一下它这个特性。
行,最后专门来一期测下这个板子的低功耗