一、模塊介紹
MPU6050是一款集成了加速度傳感器和陀螺儀的6軸運(yùn)動(dòng)傳感器。它可以用于測(cè)量物體在三維空間中的加速度和旋轉(zhuǎn)速度,并計(jì)算出物體的姿態(tài)角度。該傳感器具有高精度和低功耗的特性,因此也被廣泛應(yīng)用于機(jī)器人、飛行器、智能穿戴設(shè)備等領(lǐng)域。在使用MPU6050時(shí),用戶需要使用I2C接口與其通信,并進(jìn)行相應(yīng)的配置和校準(zhǔn),以保證準(zhǔn)確的數(shù)據(jù)輸出。???????
關(guān)注微信公眾號(hào)--星之援工作室 發(fā)送關(guān)鍵字(MPU6050)
????
使用的注意事項(xiàng)
1.供電選擇選擇的5V供電更穩(wěn)定
2.使用的模擬IIC通信
3.需要主要MUP6050受到的環(huán)境因素改變較多,使用的時(shí)候盡量固定水平位面
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; // 設(shè)備狀態(tài)
int main(void)
{
//NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設(shè)置NVIC中斷分組2:2位搶占優(yōu)先級(jí),2位響應(yīng)優(yōu)先級(jí)
delay_init(); //延時(shí)初始化
OLED_Init();
OLED_ColorTurn(0); //0正常顯示,1 反色顯示
OLED_DisplayTurn(0); //0正常顯示 1 屏幕翻轉(zhuǎn)顯示
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); //得到加速度傳感器數(shù)據(jù)
MPU_Get_Gyroscope(&mup6050_init.gyrox,&mup6050_init.gyroy,&mup6050_init.gyroz); //得到陀螺儀數(shù)據(jù)
/*
printf("Pitch: %frn",(float)pitch);
printf("Roll: %frn",(float)roll);
printf("yaw: %frn",(float)yaw);
printf("temp: %frn",(float)temp);
printf(" rn");
*/
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();
}
}
}
三、參考
正點(diǎn)原子STM32學(xué)習(xí)筆記——MPU6050介紹https://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
完整代碼請(qǐng)關(guān)注公眾號(hào)進(jìn)行獲取和咨詢
聯(lián)系方式 微信號(hào):13648103287