打印
[GUI]

【STM32H750B-DK评测】3. 运动传感器MPU6050数据读取

[复制链接]
543|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
【STM32H750B-DK评测】3. 运动传感器MPU6050数据读取
我这次选择的主要任务,是运动传感器数据的读取,因为我手里,正好有MPU6050传感器。
这是一块DFRobot版本的MPU6050传感器:

网上对MPU6050的介绍如下:
MPU6050 是 InvenSense 公司推出的整合性 6 轴运动处理组件,其内部整合了 3 轴陀螺仪和 3 轴加速度传感器,并且含有一个IIC 接口, 可用于连接外部磁力传感器,并利用自带的数字运动处理器(DMP: Digital Motion Processor) 硬件加速引擎,通过主 IIC 接口,向应用端输出完整的 9 轴融合演算数据。
MPU6050也是I2C接口的,在之前读取SHT30的基础上,可以直接把MPU6050接到之前的I2C接口上,然后读取数据了。
因为网上对MPU6050的介绍信息非常非常多,所以这里,我就不详细说明了。
关于原理的介绍,可以查看:https://lastminuteengineers.com/mpu6050-accel-gyro-arduino-tutorial/
主要两点:
提供加速度数据:

提供角速度数据

因为通常MPU6050是一个小小的传感器板子,实际使用中,对稳定性要求较高,所以我用一只电动牙刷的手柄进行了改装:


把手柄的电池和传动部分抠了,把MPU6050传感器板子塞到底部,用胶枪固定。
这样操作后,用手握住手柄,稳定性就要高多了。

参考DFrobot官方提供的截图说明,将I2C接口和电源都接好。
有一点要注意,之前SHT30的接线顺序为:VIN、GND、SCL、SDA
现在,MPU6050的接线顺序变了,为:VIN、GND、SDA、SCL
这一点要注意,不然收发不到数据了。
实际设备连线如下:

因为I2C接口支持多个从设备,所以可以将温度传感器和MPU6050同时挂在一个I2C接口上。
简单起见,我没用过面包板,直接把SHT30拔了,把MPU6050接上。
因为MPU6050应用很多,包括Arduino、STM32、ESP32等,有很多已有的DMP移植,所以我找了一款STM32&AVR兼容的。
这个库的地址为:https://github.com/Majid-Derhambakhsh/MPU6050
页面上说了所支持的设备 :

下面,我们就开始代码部分的工作了:
首先,将引入的MPU6050支持库,拷贝到Drivers目录中。
具体版本为:https://github.com/Majid-Derhambakhsh/MPU6050/tree/master/MPU6050-V1.0.0
不要使用MPU6050-V0.4.0,因为很多调用都改变了。
然后,在Makefile中进行配置,调用源文件并设置头文件目录:
源文件:

头文件目录:

特别注意:因为是在STM32中使用,所以其他的AVR相关的源文件和头文件,就不需要了。
然后对MPU6050进行基础的我配置:

I2C的配置部分需要注意,因为我们开启了I2C4,所以这里要使用hi2c4
另外,需要在这里引入stm32h7xx_hal.h,以便得到正确的系统调用。
配置完以上两个文件后,就可以在main.c中写调用代码了。
在main.c中引入mpu6050.h:

再定义需要使用的变量:

然后就可以使用MPU6050_AutoInit()进行初始化了:

最后,在while部分进行数据读取的调用:

关于具体提供的调用方法,可以查看:https://github.com/Majid-Derhambakhsh/MPU6050
修改好代码,再次开启调试,并连接上串口,就能收到读取到的信息了:

实际的具体效果,可以查看视频:https://www.bilibili.com/video/BV1it4y1A7JK

以上的完整代码,可以访问仓库:https://gitee.com/honestqiao/stm32h750b-dk

使用特权

评论回复
沙发
晚晚皆安| | 2022-11-22 12:30 | 只看该作者
MPU6050还行,网上资料还是比较多的

使用特权

评论回复
板凳
占得人间第一春| | 2022-11-22 13:02 | 只看该作者
话说,怎么调节MPU6050的灵敏度啊?

使用特权

评论回复
地板
銀河| | 2022-11-22 13:34 | 只看该作者
I2C的数据通信比较好,占用的IO比较少

使用特权

评论回复
5
林间有新绿| | 2022-11-22 14:06 | 只看该作者
我是用过MPU6050,这个传感器很不错的

使用特权

评论回复
6
地下縱情搖擺| | 2022-11-22 14:38 | 只看该作者
其实这传感器的应用很广泛的,还能测跑步呢

使用特权

评论回复
7
热爱童话世界| | 2022-11-22 15:10 | 只看该作者
属实,MPU6050的应用属实很多

使用特权

评论回复
8
一枝香| | 2022-11-22 15:42 | 只看该作者
ST的就行,网上有好多关于MPU6050demo开发资料的

使用特权

评论回复
9
岁月反驳| | 2022-11-22 16:14 | 只看该作者
楼主这个软件的配色不错啊,能分享一下么

使用特权

评论回复
10
笨蛋无需搭理| | 2022-11-22 16:46 | 只看该作者
楼主采用的是硬件I2C还是软件I2C啊?

使用特权

评论回复
11
可爱的白兔先生| | 2022-11-22 17:18 | 只看该作者
MPU6050开发还好,不是很坑,问题比较少的

使用特权

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

本版积分规则

37

主题

94

帖子

2

粉丝