0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

第八章V1.5-MPU6050陀螺仪使用方法 MPU6050姿态解算dmp MPU6050姿态解算STM32

dfhjgfg 来源:dfhjgfg 作者:dfhjgfg 2024-08-15 16:26 次阅读

功能介绍放开头, 使用便捷无需愁。

这是全网最详细、性价比最高的STM32实战项目入门教程,通过合理的硬件设计和详细的视频笔记介绍,硬件使用STM32F103主控资料多方便学习,通过3万字笔记、12多个小时视频、20多章节代码手把手教会你如何开发和调试。让你更快掌握嵌入式系统开发。

V1.5.0-STM32智能小车

V1.5.0:库函数开发。功能:循迹、避障、跟随、遥控、电池电压显示等。

视频合集链接推荐观看

[https://www.bilibili.com/video/BV1SY411L7rJ/?spm_id_from=333.337.search-card.all.click]
**V3.3.0-STM32智能小车 **

V3:HAL库开发、功能:PID速度控制、PID循迹、PID跟随、遥控、避障、PID角度控制、视觉控制、电磁循迹、RTOS等功能。

视频合集链接推荐观看

[https://www.bilibili.com/video/BV16x4y1M7EN/?spm_id_from=333.337.search-card.all.click]

MPU6050姿态传感器使用(这个没有用视频也没有讲给大家自行扩展
使用)
湿度传感器、光照传感器、摄像头模块都是大家自己可以扩展使用的其中摄像头教程再规划中

移植正点原子例程文件。

在这里插入图片描述
添加xxx.c 与xxx.h文件

在这里插入图片描述
在这里插入图片描述

**如图 **

**6050_SDA--PB9 **

**6050_SCL--PB8 **

" />

更改驱动代码

更改mpuiic.c中的的MPU_IIC_Init(void) 函数

//初始化IIC
void MPU_IIC_Init(void)
{     
  GPIO_InitTypeDef  GPIO_InitStructure;

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//先使能外设IO PORTB时钟 

  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9|GPIO_Pin_8; // 端口配置
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  //推挽输出
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; //IO口速度为50MHz
  GPIO_Init(GPIOB, &GPIO_InitStructure); //根据设定参数初始化GPIO 

  GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_8); //PB9,PB9输出高

}

更改mpuiic.h 相关宏

//IO方向设置
#define MPU_SDA_IN()  {GPIOB- >CRH&=0XFFFFFF0F;GPIOB- >CRH|=8< < 4;}//注意这里 容易出错
#define MPU_SDA_OUT() {GPIOB- >CRH&=0XFFFFFF0F;GPIOB- >CRH|=3< < 4;}//IO操作函数 
#define MPU_IIC_SCL    PBout(8) //SCL
#define MPU_IIC_SDA    PBout(9) //SDA 
#define MPU_READ_SDA   PBin(9) //输入SDA

注意理解

//IO方向设置
#define MPU_SDA_IN()  {GPIOB- >CRH&=0XFFFFFF0F;GPIOB- >CRH|=8< < 4;}//注意这里 容易出错
#define MPU_SDA_OUT() {GPIOB- >CRH&=0XFFFFFF0F;GPIOB- >CRH|=3< < 4;}

" />

" />

检查6050其他程序发现在mpu6050.c中有对PA15的初始化 我们需要将其注释掉,防止影响其他程序。

在main.c声明部分变量

extern u8  TIM5CH1_CAPTURE_STA;//输入捕获状态    
extern u16TIM5CH1_CAPTURE_VAL;//输入捕获值

在main.c定义变量

float pitch,roll,yaw; //欧拉角
short aacx,aacy,aacz;//加速度传感器原始数据
short gyrox,gyroy,gyroz;//陀螺仪原始数据
short temp;//温度

初始化6050与mpu

MPU_Init();//初始化MPU6050
  while(MPU_Init()!=0);
while(mpu_dmp_init()!=0);

通过mpu 获得数据

delay_ms(500);
mpu_dmp_get_data(&pitch,&roll,&yaw);//返回值:0,DMP成功解出欧拉角   
printf("nr 俯仰角=%0.2f      横滚角=%0.2f     偏航角=%0.2f nr", pitch,roll,yaw);

发现读取数据为零,搜索发现

" />

然后尝试

mpu_dmp_get_data 使用方法

delay_ms(500);
while(mpu_dmp_get_data(&pitch,&roll,&yaw)!=0){}
printf("nr 俯仰角=%0.2f      横滚角=%0.2f     偏航角=%0.2f nr", pitch,roll,yaw);
​

可以获得数据
在这里插入图片描述

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 陀螺仪
    +关注

    关注

    44

    文章

    768

    浏览量

    98119
  • STM32
    +关注

    关注

    2256

    文章

    10818

    浏览量

    352150
  • DMP
    DMP
    +关注

    关注

    1

    文章

    38

    浏览量

    16637
  • MPU6050
    +关注

    关注

    38

    文章

    307

    浏览量

    70577
收藏 人收藏

    评论

    相关推荐

    mpu6050姿态问题

    如题,我在用互补滤波和四元数算法mpu6050的角度姿态。但是现在的问题是,一旦我的mpu6050转动速度一快,输出的数据就会出现问题。
    发表于 05-09 18:33

    请问MPU6050的软件姿态DMP姿态各自的优缺点是什么?

    MPU6050有软件姿态DMP
    发表于 05-29 04:36

    请问谁有mpu6050姿态的欧拉角?

    我想要一个mpu6050姿态欧拉角的完整程序
    发表于 08-01 04:35

    MPU6050模块

    下载,在公众号:小白学移动机器人,发送:MPU6050,即可获得。2.4.1 解决的问题DMP库的移植(文件已被更改过,更好的移植)MPU6050数据的获取(通过DMP获取的四元数,做
    发表于 08-09 07:17

    MPU6050姿态的原理是什么

    MPU6050姿态的原理是什么?MPU6050姿态
    发表于 12-17 07:14

    使用MPU6050硬件DMP姿态

    使用MPU6050硬件DMP姿态是非常简单的,下面介绍由三轴陀螺仪和加速度计的值来使用四元数
    发表于 02-10 06:20

    MPU6050姿态融合的相关资料推荐

    mpu6050是一个六轴传感器包括三轴陀螺仪和三轴加速度,分别可以测得三轴的角速度、加速度。但是一般传感器的原始数据都不能直接直接拿来用,都需要滤波和姿态融合
    发表于 02-10 06:25

    MPU6050使用详解及DMP姿态

    1、MPU6050使用详解及DMP姿态MPU-60X0 是世界上第一款集成 6 轴 Moti
    发表于 04-14 16:04

    stm32使用MPU6050DMP

    stm32f103c8t6使用MPU6050DMP库进行姿态
    发表于 01-24 17:45

    mpu6050姿态原理分析及程序设计

    本文主要介绍了mpu6050姿态原理分析及程序设计,MPU6050硬件DMP
    发表于 12-11 13:51 4.3w次阅读
    <b class='flag-5'>mpu6050</b><b class='flag-5'>姿态</b><b class='flag-5'>解</b><b class='flag-5'>算</b>原理分析及程序设计

    mpu6050姿态原理_mpu6050姿态程序

    mpu6050常用作提供飞控运行时的姿态测量和计算。本文首先介绍了MPU6050姿态的原理,
    的头像 发表于 03-09 09:15 4.3w次阅读

    MPU6050的四元数姿态方法

    使用MPU6050硬件DMP姿态是非常简单的,下面介绍由三轴陀螺仪和加速度计的值来使用四元数
    发表于 12-06 12:36 24次下载
    <b class='flag-5'>MPU6050</b>的四元数<b class='flag-5'>解</b><b class='flag-5'>算</b><b class='flag-5'>姿态</b><b class='flag-5'>方法</b>

    毕业设计之 - 教程:MPU6050姿态

    介绍一个学长做的单片机项目教程:MPU6050姿态大家可用于 课程设计 或 毕业设计技术解答毕设帮助:<Q>7468760412 M
    发表于 12-06 12:51 15次下载
    毕业设计之 - 教程:<b class='flag-5'>MPU6050</b><b class='flag-5'>姿态</b><b class='flag-5'>解</b><b class='flag-5'>算</b>

    MPU6050姿态融合(DMP)

    MPU6050姿态融合(DMP)
    发表于 12-06 13:21 39次下载
    <b class='flag-5'>MPU6050</b><b class='flag-5'>姿态</b>融合<b class='flag-5'>解</b><b class='flag-5'>算</b>(<b class='flag-5'>DMP</b>)

    MPU6050使用互补滤波与卡尔曼滤波算法进行姿态

    MPU6050使用互补滤波与卡尔曼滤波算法进行姿态
    发表于 08-07 15:46 10次下载