打印
[STM32L4+]

【STEVAL-STWINKT1B测评】传感器IIS2DH运动检测

[复制链接]
2778|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
1、STWINKT1B上有2个可用于运行检测的传感器IIS2DH和ISM330DHCX。IIS2DH是一款三轴低功耗加速度计,广泛用于需要低功耗和高精度的消费电子、工业和医疗设备中。支持 ±2g, ±4g, ±8g, ±16g 的测量范围;内置温度传感器:可用于温度补偿,提高测量精度。
32级FIFO缓冲区,减轻了主处理器的负担,能够在低功耗模式下实现数据采集数据。数据读取支持SPI/I²C接口。
ISM330DHCX 是一款高性能的 6 轴惯性测量单元 (IMU)。集成了三轴加速度计和三轴陀螺仪。三轴加速度计测量范围可配置为 ±2g, ±4g, ±8g, ±16g;三轴陀螺仪测量范围可配置为 ±125/±250/±500/±1000/±2000/±4000 dps。数据读取也支持SPI/I²C。

2、下面的测试使用IIS2DH进行运动检测。IIS2DH和ISM330DHCX都使用SPI3 进行通信。


初始化IIS2DH
 BSP_MOTION_SENSOR_Init(IIS2DH_0, MOTION_ACCELERO);
  BSP_MOTION_SENSOR_SetOutputDataRate(IIS2DH_0, MOTION_ACCELERO, IIS2DH_ACC_ODR);
  BSP_MOTION_SENSOR_SetFullScale(IIS2DH_0, MOTION_ACCELERO, IIS2DH_ACC_FS);
读取数据
 if ( BSP_MOTION_SENSOR_GetAxes( IIS2DH_0, MOTION_ACCELERO, &mptr->acc ) == BSP_ERROR_COMPONENT_FAILURE )
  {
    mptr->acc.x = 0;
    mptr->acc.y = 0;
    mptr->acc.z = 0;
    ret = BSP_ERROR_COMPONENT_FAILURE;
  }
将数据传输到PC上的串口
        size = sprintf(data_s, "Acc_X: %d, Acc_Y: %d, Acc_Z :%d,Acc_All:%d\r\n", (int)rptr->acc.x, (int)rptr->acc.y, (int)rptr->acc.z,ABS((int)rptr->acc.x)+ABS((int)rptr->acc.y)+ABS((int)rptr->acc.z));          
                       
        osPoolFree(sensorPool_id, rptr);      // free memory allocated for message
        BSP_LED_Toggle(LED1);
        CDC_Transmit_FS(( uint8_t * )data_s, size);
数据如下


读出来的数据包括xyz的加速度,还有简单对3个轴进行取绝对值累加的值。通过晃动开发板模拟运动,将输出的数据绘图如下。
可以看到开始和最后静止的情况下,xyz的数据保持不变,晃动开发板3个轴的数据开始变化。
Acceleration Difference 的值通过简单的计算,将3个轴的变化累加,这个数据越大表示运动越剧烈。
静止的时候Acceleration Difference靠近0轴附近。



使用特权

评论回复
沙发
呐咯密密| | 2024-8-13 10:36 | 只看该作者
速度上边缘AI,看看效果

使用特权

评论回复
评论
21小跑堂 2024-8-16 10:40 回复TA
实时跟进啊 
板凳
菜鸟的第一步| | 2024-8-16 14:38 | 只看该作者
这个图表是怎么生成的

使用特权

评论回复
地板
OldestTrick|  楼主 | 2024-8-16 18:29 | 只看该作者
菜鸟的第一步 发表于 2024-8-16 14:38
这个图表是怎么生成的

matlab

使用特权

评论回复
5
狄克爱老虎油| | 2024-8-17 22:34 | 只看该作者
这个可以看出运动状态来吗

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

45

帖子

3

粉丝