STM32两轮自平衡小车(学习记录)——MPU6050
摘要
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相关推荐
- 【STM32】两轮自平衡小车学习笔记1
文章目录 前言 一.安装环境 二.使用步骤 1.STM32CubeMX新建工程 2.根据需求改STM32CubeMX配置 3.按键消抖代码编写 4.烧录代码 三.遇到的问题 四.编程环境配置 代码自动 ...
- STM32两轮自平衡小车物料采购清单
最近辞职在家,想学点东西,看了视频教程,觉得枯燥无聊,想着是嵌入式方向的,怎么也要会一些项目吧,便准备开始着手做一些项目,就先从stm32的两轮自平衡小车开始入手吧.以下物料都是自己采购的.主控板是s ...
- 毕设分享:基于STM32两轮自平衡小车 含源码、原理图及PCB文件
love421个人博客地址:https://love421.github.io 一.硬件介绍 主控芯片用的是100脚的STM32F103VET6,陀螺仪用的是MPU6050,电机驱动用的是TB6612 ...
- STM32两轮自平衡小车——PID
代码 #include "control.h"float Med_Angle = -1.4; //机械中值(需调) float Vertical_Kp = -348, //直立环K ...
- 基于stm32的两轮自平衡小车4(软件调试篇)
本篇是软件调试篇,接上一篇硬件篇:基于stm32的两轮自平衡小车3(硬件篇),本篇内容是对硬件部分的软件实现,具体模块详见目录.这里先上效果:转B站 目录 定时器PWM驱动程序 定时器编码器模式驱动程 ...
- 基于stm32的两轮自平衡小车3(硬件篇)
此篇为硬件篇,接上一篇"基于stm32的两轮自平衡小车2(原理篇)".包含自行设计电路板原理图与PCB电路图的过程.详见目录. 目录 stm32管脚分配 硬件原理图 PCB电路图 ...
- matlab两轮自平衡小车,(2-3合刊) 基于MEMS惯性传感器的两轮自平衡小车设计
摘要:着重分析了两轮自平衡小车的设计原理与控制算法,采用卡尔曼滤波算法融合陀螺仪与加速度计信号,得到系统姿态倾角与角速度最优估计值,通过双闭环数字PID 算法实现系统的自平衡控制.设计了以MPU-60 ...
- 基于单片机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本文主要研究 ...
- matlab两轮自平衡小车,基于LQR算法两轮自平衡小车的系统设计与研究
摘要: 本文旨在设计和研究两轮自平衡小车系统.两轮自平衡小车是一种非线性.强耦合.多变量.自然不稳定.具体的.实现起来相对便宜的复杂系统,给控制理论提出了很大的挑战,是检验各种控制方法处理能力的典型装 ...
最新文章
- 论文:Insights on Transfer Optimization: Because Experience is the Best Teacher(1)文章结构以及以及自己的感觉
- 皮一皮:据说这是昨天大多数人的写照...
- 后盾网lavarel视频项目---图片上传
- java参数注解pam_java – 使用xmlelement defaultvalue注释指定默认值的简单方法
- Python解释器(Interpreter)介绍
- JavaScript 怎样写注释
- Android 10.0修改桌面时钟字体大小和字体颜色
- 热爱生命 - 汪国真
- Python 入门-Task1 变量、运算符、数据类型及位运算
- 隐藏微信右上角的分享按钮
- word会把字符串中的空格自动换成不换行空格(NBSP)
- C语言SVPWM代码与软件测试
- 冯诺依曼体系结构 —(收藏版)
- tiny4412 裸机程序 六、重定位代码到IRAM+0x8000【转】
- 电商类产品搜索功能如何优化?
- 大华网络摄像头通过gstreamer 获取不到RTSP流
- ValueError: could not convert string to float:
- 小技巧--获取当前前台显示Activity
- 服务器位置就是上网位置吗,DNS服务器是什么
- 轻松玩转Windows平板