嵌入式外设集 -- 三轴陀螺仪模块(MPU6050)

目录

一、模块介绍

关注微信公众号--星之援工作室 发送关键字(MPU6050)

使用的注意事项

二、代码展示

main

三、参考


一、模块介绍

MPU6050是一款集成了加速度传感器和陀螺仪的6轴运动传感器。它可以用于测量物体在三维空间中的加速度和旋转速度,并计算出物体的姿态角度。该传感器具有高精度和低功耗的特性,因此也被广泛应用于机器人、飞行器、智能穿戴设备等领域。在使用MPU6050时,用户需要使用I2C接口与其通信,并进行相应的配置和校准,以保证准确的数据输出。​​​​​​​

关注微信公众号--星之援工作室 发送关键字(MPU6050)

➡️🫡🫡🫡🫡🫡🫡🫡🫡➡️

452c0cf75b1d4e4895194df8a5022c34.png (865×328)

使用的注意事项

1.供电选择选择的5V供电更稳定

2.使用的模拟IIC通信

3.需要主要MUP6050受到的环境因素改变较多,使用的时候尽量固定水平位面

4.完整代码资料中有,可自行移植

二、代码展示

main

/****************************************
1. MPU6050
PB9:INT   
PB7:IIC_SCL   
PB8:IIC_SDA
2. IIC显示屏
PA1:IIC_SCL_OLED      
PA2:IIC_SDA_OLED
****************************************/
#include "oled.h"
#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "mpu6050.h"
#include "inv_mpu.h"
#include "inv_mpu_dmp_motion_driver.h" 
#include "uart.h"
#include "stdio.h"

MPU6050_Typedef mup6050_init;				  // 设备状态

int main(void)
{	 
	//NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);	 //设置NVIC中断分组2:2位抢占优先级,2位响应优先级

	delay_init();				       //延时初始化
	OLED_Init();
	OLED_ColorTurn(0);         //0正常显示,1 反色显示
  OLED_DisplayTurn(0);       //0正常显示 1 屏幕翻转显示
	MPU_Init();					       //初始化MPU6050
	USART1_Init();
	 
	OLED_ShowString(15,0,"Waiting",24,1);
	OLED_ShowString(0,28,"Initialise",24,1);
	OLED_Refresh();
	
	while(mpu_dmp_init())
 	{
		OLED_Clear();
		OLED_Refresh();
	}
	OLED_Clear();
	OLED_Refresh();
	OLED_ShowString(0,0,"PITCH:",16,1);
	OLED_ShowString(0,15,"ROLL:",16,1);
	OLED_ShowString(0,31,"YAW:",16,1);
	OLED_ShowString(0,47,"TEMP:",16,1);
	OLED_Refresh();
 	while(1)
	{
		if(mpu_dmp_get_data(&mup6050_init.pitch,&mup6050_init.roll,&mup6050_init.yaw)==0)
		{
			mup6050_init.temp=MPU_Get_Temperature();							  //得到温度值
			MPU_Get_Accelerometer(&mup6050_init.aacx,&mup6050_init.aacy,&mup6050_init.aacz);	//得到加速度传感器数据
			MPU_Get_Gyroscope(&mup6050_init.gyrox,&mup6050_init.gyroy,&mup6050_init.gyroz);	//得到陀螺仪数据
			
			/*
			printf("Pitch:  %f\r\n",(float)pitch);
			printf("Roll:  %f\r\n",(float)roll);
			printf("yaw:  %f\r\n",(float)yaw);
			printf("temp:  %f\r\n",(float)temp);
			printf(" \r\n");
			*/
			OLED_ShowFloat(50, 0,mup6050_init.pitch,1,16,1);
			OLED_ShowFloat(50,15,mup6050_init.roll,5,16,1);
			OLED_ShowFloat(50,31,mup6050_init.yaw,5,16,1);
			OLED_ShowFloat(50,47,(float)mup6050_init.temp/100,5,16,1);
			OLED_Refresh();
		}
	} 	
}

三、参考

正点原子STM32学习笔记——MPU6050介绍icon-default.png?t=N7T8https://blog.csdn.net/wlswls1711/article/details/102727250?ops_request_misc=&request_id=&biz_id=102&utm_term=mpu6050%E5%A7%BF%E6%80%81%E8%A7%A3%E7%AE%97stm32&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-102727250.nonecase&spm=1018.2226.3001.4187


完整代码请关注公众号进行获取和咨询


  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿柒学起来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值