大家好,我是小政。本篇文章我将针对平衡小车电机上的陀螺仪MPU6050进行讲解。让每位小伙伴能够对陀螺仪的硬件结构和软件编程有更加清晰的理解。

一、硬件结构

1.什么是陀螺仪?
  陀螺仪是用于测量或维护方位和角速度的设备。它是一个旋转的轮子或圆盘,其中旋转轴可以不受影响的设定在任何方向。当旋转发生时,根据角动量守恒定律,该轴的方向不受支架倾斜或旋转的影响。

2.MPU6050三位角度加速度陀螺仪

  MPU6050是一个6轴运动处理传感器。它集成了3轴MEMS陀螺仪,3轴MEMS加速度计,以及一个可扩展的数字运动处理器DMP(Digital Motion Processor),可用I2C接口连接一个第三方的数字传感器,比如磁力计。扩展之后就可以通过其I2C接口输出一个6轴信号。
   MPU6050对陀螺仪和加速度计分别用了三个16位ADC,将其测量的模拟量转化为可输出的数字量。为了精确跟踪快速和慢速的运动,传感器的测量范围都是用户可控的。
  陀螺仪的可测范围为±250,±500,±1000,±2000°/秒(dps),加速度计可测范围为±2,±4,±8,±16g。

图1 陀螺仪MPU6050实物图

3.原理图
作用:检测倾斜角
MPU6050中断引脚——PB5
MPU6050所用I2C——PB3/PB4

图2 陀螺仪MPU6050(I2C)

二、软件编程

1.I2C函数——mpuiic.c

  • GPIO初始化:PB3、PB4,模拟I2C;
  • 通过时序函数模拟I2C通信

2.MPU6050函数——mpu6050.c

  • MPU6050初始化

3.MPU6050中断函数——exti.c
  这里主要是通过MPU6050模块上的中断引脚ANT读取角加速度和角速度的原始数据。

exti.c:

#include "exti.h"void MPU6050_EXTI_Init(void)
{EXTI_InitTypeDef EXTI_InitStruct;GPIO_InitTypeDef GPIO_InitStruct;// 开启时钟// 外部中断,需要使能AFIO时钟RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB | RCC_APB2Periph_AFIO,ENABLE);GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IPU;          // PB5配置为上拉输入GPIO_InitStruct.GPIO_Pin=GPIO_Pin_5;GPIO_InitStruct.GPIO_Speed=GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStruct);   GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource5);  // 外部中断和GPIO映射起来EXTI_InitStruct.EXTI_Line=EXTI_Line5;EXTI_InitStruct.EXTI_LineCmd=ENABLE;EXTI_InitStruct.EXTI_Mode=EXTI_Mode_Interrupt;    // 中断触发EXTI_InitStruct.EXTI_Trigger=EXTI_Trigger_Falling;// MPU6050发生中断时会有一个下降沿EXTI_Init(&EXTI_InitStruct);
}

exti.h:

#ifndef  _EXTI_H
#define  _EXTI_H#include "sys.h" void MPU6050_EXTI_Init(void);
#endif

MPU6050库函数移植文件百度网盘:
网址:https://pan.baidu.com/s/1_1EllsXYmdnJrMeeYY07bw
提取码:p1ui

  以上就是平衡小车系列文章第四讲——陀螺仪,包括硬件结构讲解和STM32软件编程的讲解,文章中出现错误或者小伙伴对以上内容有所疑问,欢迎大家在评论区留言,小政看到后会尽快回复大家!
【平衡小车制作】(五)位置式PID、直立环与速度环概念(超详解)https://blog.csdn.net/weixin_44270218/article/details/113664633

【平衡小车制作】(四)陀螺仪MPU6050(超详解)相关推荐

  1. (四)【平衡小车制作】陀螺仪MPU6050

    一.硬件结构 1.什么是陀螺仪? 陀螺仪是用于测量或维护方位和角速度的设备.它是一个旋转的轮子或圆盘,其中旋转轴可以不受影响的设定在任何方向.当旋转发生时,根据角动量守恒定律,该轴的方向不受支架倾斜或 ...

  2. C语言制作个人通讯录管理系统—超详解(附源码)

    之前利用C语言完成了一个关于个人通讯录管理系统的课题,主要是关于联系人的添加.查找.删除.修改.输出以及文件的写入与读出,还有一个甜点功能-模拟通话,它的实现原理也很容易理解,文章末尾会介绍到. 主框 ...

  3. 【平衡小车制作】(一)硬件原理图讲解(超详解)

      大家好,我是小政.之后的一系列文章我将介绍我玩平衡小车的过程以及遇到的一些问题,将这些内容记录下来分享给大家,也让大家少走一些弯路.接下来我将从硬件框架选择.软件编程.PID算法.PID调参.蓝牙 ...

  4. 【平衡小车制作】(七)串级PID调参及平衡成果展示(超详解)

      大家好,我是小政.本篇文章我将针对PID调参进行详细的讲解,让每位小伙伴能够对比例.积分.微分三个参数如何调节有更加清晰的理解. 一.调参步骤 确立机械中值 直立环(内环)--Kp极性.Kp大小. ...

  5. TT马达平衡小车制作

    TT马达平衡小车制作 假期无聊本来买个淘宝的寻迹小车套件,做了个寻迹小车和遥控功能.后来看到了平衡小车就想搞一个. 去搜了方案基本都是平衡小车之家的编码器电机和车模,一搜好几百,学生党不太买得起. 还 ...

  6. 平衡小车制作系列之八——总结

    文章目录 一. 前言 二. 说在最前面 2.1 模块总结 2.2 时间分配(2 Weeks In All) 2.3 一些问题 三. 收获与总结 四. 碎碎念 一. 前言 本博客原题目叫做"我 ...

  7. Android vector标签 PathData 画图超详解

    此文章来源于https://www.cnblogs.com/yuhanghzsd/p/5466846.html点击打开链接 Android vector标签 PathData 画图超详解 SVG是一种 ...

  8. MPU6050应用详解

    MPU6050应用详解 最近项目上要用到 MPU6050 陀螺仪,以前没有接触过它.虽然在网上很容易就可以找到了需要的代码.实现了一部分功能.但是却还是对陀螺仪的工作原理不太了解,它的代码也需要分析一 ...

  9. 经典面试题之 TCP三次握手 和 TCP四次挥手过程----详解

    TCP三次握手过程: 第一次握手:建立连接时,客户端发送syn包(seq=j)到服务器,并进入SYN_SENT状态,等待服务器确认:SYN:同步序列编号(Synchronize Sequence Nu ...

  10. Ubuntu16.04下制作deb包的方法详解

    CSDN GitHub Ubuntu下制作deb包的方法详解 AderXCoding/system/tools/build_deb 本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可 ...

最新文章

  1. 实现sessionfilter_session应用--采用filter和session实现简单用户权限控制
  2. Shell脚本——函数
  3. Asynchronous JS: Callbacks, Listeners, Control Flow Libs and Promises
  4. java 练习6 交通工具
  5. 哪种消息队列更好_如何编写更好的错误消息
  6. ML_Review_PCA(Ch4)
  7. Maven学习总结(53)——利用Maven插件构建镜像进行持续交付中的版本号管理
  8. 使用RDKit将pdb文件转成SMILES
  9. 2021年中国充油散热器市场趋势报告、技术动态创新及2027年市场预测
  10. 用户研究中的定性研究、定量研究
  11. C++-OpenCV(1)-连通区域
  12. Win10--安装应用商店的方法
  13. 2021年最新微博移动版网页链接自动跳转pc版网页链接软件【私信版】
  14. 教师语言表达-语言互动
  15. 【微信小程序】-- 全局配置 -- window - 下拉刷新 上拉触底(十六)
  16. MYSQL之错误代码----mysql错误代码与JAVA实现
  17. 计算机语言替换,Zig 0.7.0 发布,想要替换 C的编程语言
  18. 重庆华侨城跨界联合潮牌T.M.D PCP发财潮流文化艺术聚会国庆开档
  19. druid监控页面授权
  20. python生存曲线_生存曲线的估计方法(3):寿命表法

热门文章

  1. 计算机会计表格应用所有知识,2016会计电算化考点总结:电子表格软件在会计中的应用...
  2. pdf照片显示正常打印时被翻转_2020考研 | 准考证怎么打印你知道吗?
  3. sip 软电话 java源码,完美的 SIP 软电话
  4. JAVA整合无忧代理IP做数据采集的DEMO
  5. 对数的matlab代码,Matlab的对数
  6. 人工智能相关数据集分享(三)
  7. 设计模式总览及工厂模式详解
  8. 【将Cityscape和Foggy_Cityscape转换为PASACAL VOC格式的目标检测数据集】
  9. chrome 浏览器 FungLeo 常用插件汇总
  10. python查找excel中重复数据_python实现查找excel里某一列重复数据并且剔除后打印的方法...