摘要

MPU6050是一种非常流行的空间运动传感器芯片,可以获取器件当前的三个加速度分量和三个旋转角速度。由于其体积小巧,功能强大,精度较高,不仅被广泛应用于工业,同时也是航模爱好者的神器,被安装在各类飞行器上驰骋蓝天。

MPU6050的数据是有较大噪音的,若不进行滤波会对整个控制系统的精准确带来严重影响。

MPU6050芯片内自带了一个数据处理子模块DMP,已经内置了滤波算法,在许多应用中使用DMP输出的数据已经能够很好的满足要求。

移植过程

移植需要官方代码
dmpKey.h
dmpmao.h
inv_mpu.c
inv_mpu.h
inv_mpu_dmp_motion_driver.c
inv_mpu_dmp_motion_driver.h

以及
mpu6050.c
mpu6050.h
mpuiic.c
mpuiic.h

再自己写一个中断

void MPU6050_EXTI_Init(void)
{  GPIO_InitTypeDef GPIO_InitStructure;EXTI_InitTypeDef EXTI_InitStructure;NVIC_InitTypeDef NVIC_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;             //INT-B5  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;         //上拉输出GPIO_Init(GPIOB, &GPIO_InitStructure);                      GPIO_EXTILineConfig(GPIO_PortSourceGPIOB,GPIO_PinSource5);EXTI_InitStructure.EXTI_Line=EXTI_Line5;EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;    EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;EXTI_InitStructure.EXTI_LineCmd = ENABLE;EXTI_Init(&EXTI_InitStructure);       //外部中断5优先级配置也就是MPU6050 INT引脚配置///优先级设为最高NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;             NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x00;   NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x01;                  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;                                NVIC_Init(&NVIC_InitStructure);
}

STM32两轮自平衡小车(学习记录)——MPU6050相关推荐

  1. 【STM32】两轮自平衡小车学习笔记1

    文章目录 前言 一.安装环境 二.使用步骤 1.STM32CubeMX新建工程 2.根据需求改STM32CubeMX配置 3.按键消抖代码编写 4.烧录代码 三.遇到的问题 四.编程环境配置 代码自动 ...

  2. STM32两轮自平衡小车物料采购清单

    最近辞职在家,想学点东西,看了视频教程,觉得枯燥无聊,想着是嵌入式方向的,怎么也要会一些项目吧,便准备开始着手做一些项目,就先从stm32的两轮自平衡小车开始入手吧.以下物料都是自己采购的.主控板是s ...

  3. 毕设分享:基于STM32两轮自平衡小车 含源码、原理图及PCB文件

    love421个人博客地址:https://love421.github.io 一.硬件介绍 主控芯片用的是100脚的STM32F103VET6,陀螺仪用的是MPU6050,电机驱动用的是TB6612 ...

  4. STM32两轮自平衡小车——PID

    代码 #include "control.h"float Med_Angle = -1.4; //机械中值(需调) float Vertical_Kp = -348, //直立环K ...

  5. 基于stm32的两轮自平衡小车4(软件调试篇)

    本篇是软件调试篇,接上一篇硬件篇:基于stm32的两轮自平衡小车3(硬件篇),本篇内容是对硬件部分的软件实现,具体模块详见目录.这里先上效果:转B站 目录 定时器PWM驱动程序 定时器编码器模式驱动程 ...

  6. 基于stm32的两轮自平衡小车3(硬件篇)

    此篇为硬件篇,接上一篇"基于stm32的两轮自平衡小车2(原理篇)".包含自行设计电路板原理图与PCB电路图的过程.详见目录. 目录 stm32管脚分配 硬件原理图 PCB电路图 ...

  7. matlab两轮自平衡小车,(2-3合刊) 基于MEMS惯性传感器的两轮自平衡小车设计

    摘要:着重分析了两轮自平衡小车的设计原理与控制算法,采用卡尔曼滤波算法融合陀螺仪与加速度计信号,得到系统姿态倾角与角速度最优估计值,通过双闭环数字PID 算法实现系统的自平衡控制.设计了以MPU-60 ...

  8. 基于单片机MC9S12XS128的两轮自平衡小车设计

    目 录 1.绪论 1 1.1研究背景与意义 1 1.2两轮自平衡车的关键技术 2 1.2.1系统设计 2 1.2.2数学建模 2 1.2.3姿态检测系统 2 1.2.4控制算法 3 1.3本文主要研究 ...

  9. matlab两轮自平衡小车,基于LQR算法两轮自平衡小车的系统设计与研究

    摘要: 本文旨在设计和研究两轮自平衡小车系统.两轮自平衡小车是一种非线性.强耦合.多变量.自然不稳定.具体的.实现起来相对便宜的复杂系统,给控制理论提出了很大的挑战,是检验各种控制方法处理能力的典型装 ...

最新文章

  1. 论文:Insights on Transfer Optimization: Because Experience is the Best Teacher(1)文章结构以及以及自己的感觉
  2. 皮一皮:据说这是昨天大多数人的写照...
  3. 后盾网lavarel视频项目---图片上传
  4. java参数注解pam_java – 使用xmlelement defaultvalue注释指定默认值的简单方法
  5. Python解释器(Interpreter)介绍
  6. JavaScript 怎样写注释
  7. Android 10.0修改桌面时钟字体大小和字体颜色
  8. 热爱生命 - 汪国真
  9. Python 入门-Task1 变量、运算符、数据类型及位运算
  10. 隐藏微信右上角的分享按钮
  11. word会把字符串中的空格自动换成不换行空格(NBSP)
  12. C语言SVPWM代码与软件测试
  13. 冯诺依曼体系结构 —(收藏版)
  14. tiny4412 裸机程序 六、重定位代码到IRAM+0x8000【转】
  15. 电商类产品搜索功能如何优化?
  16. 大华网络摄像头通过gstreamer 获取不到RTSP流
  17. ValueError: could not convert string to float:
  18. 小技巧--获取当前前台显示Activity
  19. 服务器位置就是上网位置吗,DNS服务器是什么
  20. 轻松玩转Windows平板

热门文章

  1. 为什么使用LeakCanary检测内存泄漏?
  2. SVG滤镜对图片调色
  3. python数据结构:列表
  4. python系统命令切换目录_Windows 命令行切换目录
  5. java 关注公众号回调_处理公众号回调消息
  6. SN_Write_tool 使用说明文档
  7. 成功或成仁:HP捡了芝麻丢了西瓜
  8. 《反恐特警组》(S.W.A.T.)影片介绍
  9. DirectX12 之HelloWorld
  10. 我的世界(MC)服务器搭建(详细+稳定+崩服自启)