久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4411|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

stm32f429使用mpu6050檢測風(fēng)力擺角度 四元數(shù)法

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:226705 發(fā)表于 2017-8-10 19:31 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
mpu6050芯片四元數(shù)法計(jì)算風(fēng)力擺擺動角度

所有資料51hei提供下載:
六軸.rar (1009.29 KB, 下載次數(shù): 71)


stm32f429單片機(jī)源程序如下(主程序):
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"
  5. #include "key.h"
  6. #include "myiic.h"
  7. #include "mpu6050.h"
  8. #include "siyuanshu.h"


  9. /*簡單任務(wù)管理*/
  10. uint32_t Task_Delay[3]={0};
  11. //extern AHRS_EulerAngleTypeDef EulerAngle;



  12. int main(void)
  13. {
  14.         u8 res=0;

  15. //        float pitch_temp1 = 0.0;
  16. //        float roll_temp1 = 0.0;
  17.        
  18.        
  19.         extern float Pitch;
  20.         extern float Roll;
  21.    
  22.     HAL_Init();                     //初始化HAL庫   
  23.     Stm32_Clock_Init(360,25,2,8);   //設(shè)置時(shí)鐘,180Mhz
  24.     delay_init(180);                //初始化延時(shí)函數(shù)
  25.     uart_init(115200);              //初始化USART
  26.     LED_Init();                     //初始化LED
  27.     KEY_Init();                     //初始化按鍵
  28.         IIC_Init();                                                //初始iic
  29.        
  30.        
  31.         /*
  32.         short Acel[3];
  33.         short Gyro[3];
  34.         float Temp;
  35.         */
  36.        
  37.         short aacx,aacy,aacz;                //加速度傳感器原始數(shù)據(jù)
  38.         short gyrox,gyroy,gyroz;        //陀螺儀原始數(shù)據(jù)
  39.         float temp;                                //溫度
  40.        
  41.         printf("\r\n 歡迎使用阿波羅  STM32 F429 開發(fā)板。\r\n");                 

  42.         printf("\r\n 這是一個(gè)I2C外設(shè)(AT24C02)讀寫測試?yán)?\r\n");

  43.         MPU_Init();
  44.                 res=MPU_Read_Byte(MPU_DEVICE_ID_REG);  //讀取MPU6500的ID       
  45.         if (res==MPU_ADDR)
  46.         {       
  47.                 while(1)
  48.                 {
  49. //                        if(Task_Delay[0]==0)
  50. //                        {
  51. //                                LED1=0;
  52. //                               
  53. //                                Task_Delay[0]=1000;
  54. //                        }
  55. //                       
  56. //                        if(Task_Delay[1]==0)
  57. //                        {
  58.                                 /*
  59.                                 MPU6050ReadAcc(Acel);
  60.                                 printf("加速度:%8d%8d%8d",Acel[0],Acel[1],Acel[2]);
  61.                                 MPU6050ReadGyro(Gyro);
  62.                                 printf("    陀螺儀%8d%8d%8d",Gyro[0],Gyro[1],Gyro[2]);
  63.                                 MPU6050_ReturnTemp(&Temp);
  64.                                 printf("    溫度%8.2f\r\n",Temp);                               
  65.                                 Task_Delay[1]=500; //更新一次數(shù)據(jù),可根據(jù)自己的需求,提高采樣頻率,如100ms采樣一次
  66.                                 */
  67.                        
  68.                        
  69.                        
  70.                        
  71.                         temp=MPU_Get_Temperature();        //得到溫度值
  72.                                 printf("溫度:%8f",temp);
  73.                     MPU_Get_Accelerometer(&aacx,&aacy,&aacz);        //得到加速度傳感器數(shù)據(jù)
  74.                                 printf("加速度:%8d%8d%8d",aacx,aacy,aacz);
  75.                     MPU_Get_Gyroscope(&gyrox,&gyroy,&gyroz);        //得到陀螺儀數(shù)據(jù)
  76.                                 printf("陀螺儀:%8d%8d%8d\r\n",gyrox,gyroy,gyroz);
  77.                                
  78.                                
  79.                                
  80. //                        Task_Delay[1]=500; //更新一次數(shù)據(jù),可根據(jù)自己的需求,提高采樣頻率,如100ms采樣一次
  81.                
  82. //                        EulerAngle.Pitch = Kalman_Filter1(pitch_temp1,gyroy);      
  83. //                        EulerAngle.Roll  = Kalman_Filter2(roll_temp1,-gyrox);  
  84. //                       
  85. //                                printf("俯仰角:%8f",EulerAngle.Pitch);
  86. //                                printf("橫滾角:%8f\r\n",EulerAngle.Roll);
  87.                        
  88.                        
  89.                
  90.                         IMUupdate(gyrox,gyroy,gyroz,aacx,aacy,aacz);
  91.                        
  92.                        
  93.                        
  94.                         printf("俯仰角:%8f橫滾角:%8f\r\n", Pitch,Roll);
  95.                                
  96.                        
  97.                        
  98.                                 delay_ms(100);
  99. //                        }

  100.                 }

  101.         }
  102.         else
  103.         {
  104.                         printf("\r\n沒有檢測到MPU6050傳感器!\r\n");
  105.                         LED0=0;
  106.                 while(1);
  107.         }
  108. }

  109.        
復(fù)制代碼



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:186696 發(fā)表于 2021-2-4 11:11 | 只看該作者
請問樓主,實(shí)際效果如何?
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 中文字幕亚洲一区 | 欧美精品v| 欧美二区三区 | 午夜精品 | 夜久久| 一级二级三级在线观看 | 欧美日韩专区 | 夜夜精品浪潮av一区二区三区 | 亚洲91| 欧美日韩在线一区二区三区 | 亚洲午夜精品视频 | 亚洲欧美日韩中文字幕一区二区三区 | 日本大香伊一区二区三区 | 午夜视频一区 | av入口| 久久精品国产99国产精品 | 精品亚洲第一 | 一级一片在线观看 | 欧美日韩高清一区 | 中文字幕成人av | 亚洲精品在线免费观看视频 | 欧美a级成人淫片免费看 | 精品乱人伦一区二区三区 | 精品视频导航 | 一级网站 | 免费亚洲网站 | 久久久久国产一区二区三区 | 国产精品福利网 | 国产精品久久久久久吹潮日韩动画 | 国产精品美女www爽爽爽视频 | a级片在线| 国产视频精品区 | 欧美专区日韩专区 | 特黄色一级毛片 | 国产性网 | www.青青草| 精品视频在线观看 | 精品成人69xx.xyz | 久久免费精品 | 五月婷六月丁香 | 国产精品久久性 |