单片机
返回首页

【STM32平衡小车】一篇快速上手MPU6050

2021-09-22 来源:eefocus

一、MPU6050基础知识储备

六轴=三轴陀螺仪+三轴加速度计


而我们通常说的九轴的含义是在主I2C接口,接上磁力传感器,即是九轴数据。


我们直接得到的是加速度计(测出加速度)和陀螺仪(测出角速度),我们实际使用的是姿态角,分别为俯仰角(pitch)、偏航角(yaw)和横滚角(roll)。这之间需要借助MPU6050的DMP模块把原始数据转换为四元数,然后四元数可以直接通过公式转化为姿态角。

在这里插入图片描述

俯仰(pitch) - x轴

在这里插入图片描述

翻滚(roll) - y轴

在这里插入图片描述

偏航(yaw) - z轴

在这里插入图片描述

二、引脚接线图

在这里插入图片描述

三、需要注意的AD0

MPU6050作为一个IIC从机设备的时候,有8位地址,高7位的地址是固定的,就是WHOAMI寄存器的默认——0x68,最低的一位是由AD0的连线决定的。


AD0接GND时候,高8位的最后一位是0 所以整个iic从几地址就是0x68

AD0接VCC时候,高8位的最后一位是1 所以整个iic从几地址就是0x69


四、程序里需要知道的

程序都设置了INT平时为高电平,同时INT引脚为PB5,低电平触发中断。


MPU6050.C中的#define DEFAULT_MPU_HZ (200)


200Hz表示这个是fifo更新速率,而INT中断就是fifo更新的时候触发中断,即5ms来一次中断(1/200=0.005)。


其实正点原子的和平衡车之家的程序都设置了INT平时为高电平,平衡车之家没有关闭中断,并且设置了INT引脚为B5 低电平触发中断。而正点原子的直接在mpu6050初始化的时候就关闭了中断。


其他备忘

航向角需要磁力计进行校准。否则会有很大误差。【在静止的情况下,Yaw会自增或者自减】

一般来说每一个6050都是不一样的,在水平静止状态下,重力加速度的值,与角速度的值,都不是零,所以,要对水平静止状态下的数值进行采样,然后作为零偏校准数据, 再在进行计算时,需要把采样到的数值减去零偏数值才能作为正常的数值使用。

进入单片机查看更多内容>>
相关视频
  • RISC-V嵌入式系统开发

  • SOC系统级芯片设计实验

  • 云龙51单片机实训视频教程(王云,字幕版)

  • 2022 Digi-Key KOL 系列: 你见过1GHz主频的单片机吗?Teensy 4.1开发板介绍

  • TI 新一代 C2000™ 微控制器:全方位助力伺服及马达驱动应用

  • MSP430电容触摸技术 - 防水Demo演示

精选电路图
  • 家用电源无载自动断电装置的设计与制作

  • PIC单片机控制的遥控防盗报警器电路

  • 用数字电路CD4069制作的万能遥控轻触开关

  • 使用ESP8266从NTP服务器获取时间并在OLED显示器上显示

  • 用NE555制作定时器

  • RS-485基础知识:处理空闲总线条件的两种常见方法

    相关电子头条文章