加入星计划,您可以享受以下权益:

  • 创作内容快速变现
  • 行业影响力扩散
  • 作品版权保护
  • 300W+ 专业用户
  • 1.5W+ 优质创作者
  • 5000+ 长期合作伙伴
立即加入

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

08/22 11:28
892
服务支持:
技术交流群

完成交易后在“购买成功”页面扫码入群,即可与技术大咖们分享疑惑和经验、收获成长和认同、领取优惠和红包等。

虚拟商品不可退

当前内容为数字版权作品,购买后不支持退换且无法转移使用。

加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论
放大
实物图
相关方案
  • 方案介绍
  • 推荐器件
  • 相关推荐
  • 电子产业图谱
申请入驻 产业图谱

第八章V1.5-MPU6050陀螺仪使用方法 MPU6050姿态解算dmp MPU6050姿态解算STM32 STM32小车MPU6050直线行驶 STM32标准库教程 STM32江科大

当前视频版本V1.5.0
现在有两个版本小车
V1.5.0


[stm32入门教程][STM32实战项目]STM32智能小车V1.5-stm32f103c8t6-stm32最小系统-手把手入门教程-嵌入式开发-嵌入式学习

V3.3.0-STM32智能小车

视频


STM32智能小车V3-STM32入门教程-openmv与STM32循迹小车-stm32f103c8t6-电赛 嵌入式学习 PID控制算法 编码器电机 跟随

V1.5.0:库函数开发。功能:循迹、避障、跟随、遥控、电池电压显示等。
V3:HAL库开发、功能:PID速度控制、PID循迹、PID跟随、遥控、避障、PID角度控制、视觉控制。

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 u16	TIM5CH1_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);

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

推荐器件

更多器件
器件型号 数量 器件厂商 器件描述 数据手册 ECAD模型 风险等级 参考价格 更多信息
KSZ9567RTXI-TR 1 Microchip Technology Inc IC ETHERNET SWITCH 7PORT 128TQFP

ECAD模型

下载ECAD模型
$13.11 查看
DS24B33S+ 1 Maxim Integrated Products EEPROM, 4KX1, Serial, CMOS, PDSO8, 0.208 INCH, ROHS COMPLIANT, SOP-8
$2.89 查看
552AD000270DGR 1 Silicon Laboratories Inc Oscillator, 10MHz Min, 945MHz Max, 148.5MHz Nom
暂无数据 查看

相关推荐

电子产业图谱