stm32驱动mpu6050、mpu6500、mpu9250心得
浅谈自己使用mpu陀螺仪的一些心得。
mpu6050/mpu6500驱动
这里是用的原子哥的用虚拟IIC驱动mpu6050代码,之前我一直是用硬件IIC驱动,但是听大神说虚拟IIC比硬件IIC要稳定,尝试之后发现确实比较稳定。而且个人觉得由于虚拟IIC可以在任意IO口开设,所以相较于硬件IIC更加方便。
另外贴出我使用MPU9250的驱动程序,也是使用了原子哥的,MPU9250是集合了MPU6500和磁力计AK8963为一体的传感器。值得注意的一点是,MPU9250初始化完成后,需要重新设置量程参数,不然会造成初始化失败。
使用dmp进行姿态解算
陀螺仪例如mpu6050用本身自带的dmp进行姿态解算的使用的比较广泛,原子哥也有详细的教程。这里贴出来的也是原子哥的代码。但是个人多次的情况来看,dmp有两个缺点:
1.dmp容易损坏。因为dmp很容易受到高温的影响,例如我需要用热熔胶固定陀螺仪,会导致dmp损坏,多表现为dmp的自检无法通过。
会发现自检函数会一直报错。
2.dmp不稳定。此处不稳定并不是指dmp解算出来的数值不稳定,而是dmp会容易受到外界因素的干扰,例如温度,气压等等。(无事实根据,个人经验猜测),因为我多次去往外地比赛,在家还好好工作的dmp到了比赛的城市就失效了,自检始终无法通过,最后不得不放弃,全程手动操控小车。
不使用dmp
那么mpu可以离开dmp工作吗?当然完全可以!我们做到代替dmp的滤波和姿态解算,我使用的是无人机飞控常使用的butterworth滤波,先将原始数据进行滤波,再进行姿态解算。
获取原始数据之后,进行滤波得到滤波后的角速度,再转换为角度制的值,这里得到的角速度数据是可以直接使用的。
butterworth滤波设计方法贴出大神:http://blog.csdn.net/u011992534/article/details/73743955
stm32驱动mpu6050、mpu6500、mpu9250心得相关推荐
- MPU6050 MPU6500 MPU9250 使用心得
1.mpu6050和mpu9250用I2C通信时只需要四根线(VCC GND SCK I/O): 2.6050和9250的程序可以通用,完全不用改: 3.mpu6050读dmp,只需要在原来基础上加上 ...
- STM32驱动MPU6050(二)——软件实现
前言: 为了方便查看博客,特意申请了一个公众号,附上二维码,有兴趣的朋友可以关注,和我一起讨论学习,一起享受技术,一起成长. 软件实现将从下面三个部分来介绍:IIC通信:MPU6050数据读取:数据融 ...
- STM32驱动MPU6050基于IIC协议
一. 简介 MPU6050是一款六轴陀螺仪,可以通过IIC协议输出三个方向上的加速度和角速度,在平衡车和飞控中较为常见.一般情况下,模块有用的引脚只有四个(其它的不常用),即VCC,GND,SDA和S ...
- STM32驱动MPU6050
#前言: 陀螺仪的用处还是挺多滴,俺最近搬了15646块大理石终于凑齐了买一块正点原子的MPU6050的钱了,下面分享一下怎么配套STM32使用,主要分享一下应用部分,原理部分这里省略15000个字 ...
- STM32驱动陀螺仪MPU6050的应用实例
STM32F407ZE 驱动陀螺仪MPU6050的应用实例,实现如下功能: ①使用MPU6050的驱动实现陀螺仪遥控 左倾:LED1亮 右倾:LED2亮 前倾:LED3亮 后倾:LED4亮 使用的是获 ...
- THWATCH-01 陀螺仪 MPU6050 HAL库 正点原子 STM32驱动 计步
THWATCH-01 陀螺仪 MPU6050 HAL库 正点原子 STM32驱动 计步 一级目录 二级目录 三级目录 一.cubemx配置 1.使用cubemx配置串口 2.配置IIC1 3.配置时钟 ...
- K_A14_001 基于STM32等单片机驱动MPU6050模块 串口与OLED0.96双显示
K_A14_001 基于STM32等单片机驱动MPU6050模块 串口与OLED0.96双显示 一.资源说明 二.基本参数 参数 引脚说明 三.驱动说明 时序 对应程序: 四.部分代码说明 1.接线引 ...
- MPU6050工作原理及STM32控制MPU6050
一·简介: 1.要想知道MPU6050工作原理,得先了解下面俩个传感器: ①陀螺仪传感器: 陀螺仪的原理就是,一个旋转物体的旋转轴所指的方向在不受外力影响时,是不会改变的.人们根据这个道理,用它来保持 ...
- ESP-12F驱动MPU6050使用DMP库姿态解算
一.准备工作 主芯片采用是安信可科技的ESF-12F模组(内置ESP8266芯片),使用GPIO模拟I2C驱动MPU6050,i2c驱动部分可直接参考官方例程中的i2c_master.c文件,(附件提 ...
最新文章
- 基类的析构函数为什么要设置成virtual
- 复旦大学计算机专业直博,上海复旦大学计算机科学技术学院2016博士招生选拔办法...
- gdb加载python_gdb加载python脚本的方法
- 关于左右滚动,控制某几列不动
- 编写代码的若干个基本规则(以Java为例)
- sonarqube通过sonarqube maven插件分析maven工程使用的mvn命令示例
- MappedByteBuffer VS FileChannel 孰强孰弱?
- extern、static
- 那些年破处倒闭的公司,都有哪些特征?打工人避雷必看
- python数据分析实况_Python数据分析实战:降雨量统计分析报告分析
- 华为正式发布自有操作系统——鸿蒙 OS!
- usermod命令,用户密码管理,makpasswd
- 根据配置文件的值创建不同对象
- config.guess: unable to guess system type、config.sub: missing argument
- sysctl.conf 参数相关注解
- 基于android课设报告,基于android的简单用户注册系统课程设计报告.doc
- 麻辣探:大学生就业翻译竞争激烈 IT制造需求大
- 计算机对口什么意思,对口单招是什么意思 有什么好处
- 计算机网络课制作双绞线实验,计算机网络实验一(双绞线的制作)
- 煲耳机,看到一篇文章分享下
热门文章
- 中职学校计算机运用基础试题,中职计算机基础试题(计算机一级)
- 人人都能懂的ChatGPT解读
- 【STM32F407的DSP教程】第31章 STM32F407实数浮点FFT(支持单精度和双精度)
- “应用程序配置不正确,应用程序未能启动” 错误的解决
- NET酒店宾馆客房管理系统源码
- 软件工程—软件工程学概述
- Android 自定义各种进度条,Android自定义百分数进度条
- c语言ip字符串转为数组,C语言 ip地址转换为单个数字
- 黑白激光打印机出现重影故障,原因与解决办法分析
- Ubuntu11.10 如何安装QQ?