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

標題: stm32f429使用mpu6050檢測風力擺角度 四元數法 [打印本頁]

作者: y1887655    時間: 2017-8-10 19:31
標題: stm32f429使用mpu6050檢測風力擺角度 四元數法
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.        
復制代碼




作者: iYoutudou    時間: 2021-2-4 11:11
請問樓主,實際效果如何?




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产精品欧美一区二区 | 日本三级做a全过程在线观看 | 中日韩av | 日韩精品免费视频 | 国产成人精品一区二区在线 | 91精品国产91久久综合桃花 | 日日碰狠狠躁久久躁96avv | 国产精品久久久久aaaa九色 | 久久精品无码一区二区三区 | 久热久草| 欧美a在线 | 欧美一区免费在线观看 | 1级毛片| 视频1区2区 | 精品久久久久久 | 中文字幕欧美一区 | 黄色网页在线 | 日韩精品一区二区三区中文字幕 | 在线激情视频 | 亚洲男人网 | 91看片网址| 最新中文字幕在线 | 亚洲日日夜夜 | 成人自拍视频 | 在线国产一区二区 | 99久久精品一区二区成人 | 中文字幕亚洲一区 | 欧美一级大片免费观看 | 99久久精品视频免费 | 久久久免费观看视频 | 国产成人精品久久 | 5060网一级毛片 | 一区二区中文 | 国产区一区二区三区 | 国产综合精品一区二区三区 | 精品一区国产 | 日韩中文字幕在线观看 | 亚洲伊人精品酒店 | 日日爱av | 成人亚洲视频 | 久久久久国产一区二区三区 |