浅谈自己使用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心得相关推荐

  1. MPU6050 MPU6500 MPU9250 使用心得

    1.mpu6050和mpu9250用I2C通信时只需要四根线(VCC GND SCK I/O): 2.6050和9250的程序可以通用,完全不用改: 3.mpu6050读dmp,只需要在原来基础上加上 ...

  2. STM32驱动MPU6050(二)——软件实现

    前言: 为了方便查看博客,特意申请了一个公众号,附上二维码,有兴趣的朋友可以关注,和我一起讨论学习,一起享受技术,一起成长. 软件实现将从下面三个部分来介绍:IIC通信:MPU6050数据读取:数据融 ...

  3. STM32驱动MPU6050基于IIC协议

    一. 简介 MPU6050是一款六轴陀螺仪,可以通过IIC协议输出三个方向上的加速度和角速度,在平衡车和飞控中较为常见.一般情况下,模块有用的引脚只有四个(其它的不常用),即VCC,GND,SDA和S ...

  4. STM32驱动MPU6050

    #前言: 陀螺仪的用处还是挺多滴,俺最近搬了15646块大理石终于凑齐了买一块正点原子的MPU6050的钱了,下面分享一下怎么配套STM32使用,主要分享一下应用部分,原理部分这里省略15000个字 ...

  5. STM32驱动陀螺仪MPU6050的应用实例

    STM32F407ZE 驱动陀螺仪MPU6050的应用实例,实现如下功能: ①使用MPU6050的驱动实现陀螺仪遥控 左倾:LED1亮 右倾:LED2亮 前倾:LED3亮 后倾:LED4亮 使用的是获 ...

  6. THWATCH-01 陀螺仪 MPU6050 HAL库 正点原子 STM32驱动 计步

    THWATCH-01 陀螺仪 MPU6050 HAL库 正点原子 STM32驱动 计步 一级目录 二级目录 三级目录 一.cubemx配置 1.使用cubemx配置串口 2.配置IIC1 3.配置时钟 ...

  7. K_A14_001 基于STM32等单片机驱动MPU6050模块 串口与OLED0.96双显示

    K_A14_001 基于STM32等单片机驱动MPU6050模块 串口与OLED0.96双显示 一.资源说明 二.基本参数 参数 引脚说明 三.驱动说明 时序 对应程序: 四.部分代码说明 1.接线引 ...

  8. MPU6050工作原理及STM32控制MPU6050

    一·简介: 1.要想知道MPU6050工作原理,得先了解下面俩个传感器: ①陀螺仪传感器: 陀螺仪的原理就是,一个旋转物体的旋转轴所指的方向在不受外力影响时,是不会改变的.人们根据这个道理,用它来保持 ...

  9. ESP-12F驱动MPU6050使用DMP库姿态解算

    一.准备工作 主芯片采用是安信可科技的ESF-12F模组(内置ESP8266芯片),使用GPIO模拟I2C驱动MPU6050,i2c驱动部分可直接参考官方例程中的i2c_master.c文件,(附件提 ...

最新文章

  1. 基类的析构函数为什么要设置成virtual
  2. 复旦大学计算机专业直博,上海复旦大学计算机科学技术学院2016博士招生选拔办法...
  3. gdb加载python_gdb加载python脚本的方法
  4. 关于左右滚动,控制某几列不动
  5. 编写代码的若干个基本规则(以Java为例)
  6. sonarqube通过sonarqube maven插件分析maven工程使用的mvn命令示例
  7. MappedByteBuffer VS FileChannel 孰强孰弱?
  8. extern、static
  9. 那些年破处倒闭的公司,都有哪些特征?打工人避雷必看
  10. python数据分析实况_Python数据分析实战:降雨量统计分析报告分析
  11. 华为正式发布自有操作系统——鸿蒙 OS!
  12. usermod命令,用户密码管理,makpasswd
  13. 根据配置文件的值创建不同对象
  14. config.guess: unable to guess system type、config.sub: missing argument
  15. sysctl.conf 参数相关注解
  16. 基于android课设报告,基于android的简单用户注册系统课程设计报告.doc
  17. 麻辣探:大学生就业翻译竞争激烈 IT制造需求大
  18. 计算机对口什么意思,对口单招是什么意思 有什么好处
  19. 计算机网络课制作双绞线实验,计算机网络实验一(双绞线的制作)
  20. 煲耳机,看到一篇文章分享下

热门文章

  1. 中职学校计算机运用基础试题,中职计算机基础试题(计算机一级)
  2. 人人都能懂的ChatGPT解读
  3. 【STM32F407的DSP教程】第31章 STM32F407实数浮点FFT(支持单精度和双精度)
  4. “应用程序配置不正确,应用程序未能启动” 错误的解决
  5. NET酒店宾馆客房管理系统源码
  6. 软件工程—软件工程学概述
  7. Android 自定义各种进度条,Android自定义百分数进度条
  8. c语言ip字符串转为数组,C语言 ip地址转换为单个数字
  9. 黑白激光打印机出现重影故障,原因与解决办法分析
  10. Ubuntu11.10 如何安装QQ?