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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4381|回復: 1
打印 上一主題 下一主題
收起左側

stm32f429使用mpu6050檢測風力擺角度 四元數法

[復制鏈接]
跳轉到指定樓層
樓主
ID:226705 發表于 2017-8-10 19:31 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
mpu6050芯片四元數法計算風力擺擺動角度

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


stm32f429單片機源程序如下(主程序):
  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. /*簡單任務管理*/
  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);   //設置時鐘,180Mhz
  24.     delay_init(180);                //初始化延時函數
  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;                //加速度傳感器原始數據
  38.         short gyrox,gyroy,gyroz;        //陀螺儀原始數據
  39.         float temp;                                //溫度
  40.        
  41.         printf("\r\n 歡迎使用阿波羅  STM32 F429 開發板。\r\n");                 

  42.         printf("\r\n 這是一個I2C外設(AT24C02)讀寫測試例程 \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; //更新一次數據,可根據自己的需求,提高采樣頻率,如100ms采樣一次
  66.                                 */
  67.                        
  68.                        
  69.                        
  70.                        
  71.                         temp=MPU_Get_Temperature();        //得到溫度值
  72.                                 printf("溫度:%8f",temp);
  73.                     MPU_Get_Accelerometer(&aacx,&aacy,&aacz);        //得到加速度傳感器數據
  74.                                 printf("加速度:%8d%8d%8d",aacx,aacy,aacz);
  75.                     MPU_Get_Gyroscope(&gyrox,&gyroy,&gyroz);        //得到陀螺儀數據
  76.                                 printf("陀螺儀:%8d%8d%8d\r\n",gyrox,gyroy,gyroz);
  77.                                
  78.                                
  79.                                
  80. //                        Task_Delay[1]=500; //更新一次數據,可根據自己的需求,提高采樣頻率,如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.        
復制代碼



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

使用道具 舉報

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品免费在线 | 91欧美激情一区二区三区成人 | 久久久久无码国产精品一区 | 干干干操操操 | 色99视频| 欧美日韩在线一区二区 | 丁香婷婷成人 | 91在线免费视频 | 久久国产精品72免费观看 | 色狠狠一区 | 国产精品久久久久久中文字 | 涩爱av一区二区三区 | 成人深夜小视频 | 中文字幕视频在线观看 | 懂色中文一区二区在线播放 | 亚洲 精品 综合 精品 自拍 | 日韩av最新网址 | 成人午夜免费福利视频 | 国产视频久| 久久久久久亚洲 | av大全在线| 久久久久久中文字幕 | 亚洲精品短视频 | 日本成人中文字幕 | 黄色三级免费网站 | 国内精品一区二区三区 | 亚洲精品在线看 | 日本一二三区电影 | 日韩一二区 | 精品二区| 国产成人精品a视频一区www | 成人免费视频网站在线看 | 围产精品久久久久久久 | 日日干日日操 | 四虎永久免费黄色影片 | 久久精品小视频 | 国产999精品久久久久久 | 日本 欧美 三级 高清 视频 | 在线观看中文视频 | 久久精品中文 | 夫妻午夜影院 |