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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

stm32 +mpu6050dmo數(shù)據(jù)處理+PID180°舵機(jī)控制,不是很完善,僅供參考

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:198530 發(fā)表于 2018-4-23 15:12 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式


主函數(shù)
  1. int main(void)
  2. {         
  3.         delay_init();                     //延時函數(shù)初始化         
  4.   NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設(shè)置中斷優(yōu)先級分組為組2:2位搶占優(yōu)先級,2位響應(yīng)優(yōu)先級
  5.         uart_init(115200);                 //串口初始化為115200
  6.          IIC_Init();

  7.                 TIM3_PWM_Init(19999,71);        //PA6,PA7 PWM 舵機(jī)輸出 20ms
  8.           PWMA=1600;
  9.           PWMB=1600;
  10.                  delay_ms(500);
  11.           MPU6050_initialize();     //=====MPU6050初始化        
  12.     DMP_Init();  
  13. //                 Init_HMC5883();
  14.                  TIM2_Getsample_Int(4999,71);                //5ms定時中斷

  15.         while(1)
  16.         {

  17. delay_ms(50);


  18. ///////////////////////////////////////////////////////
  19.         }
  20. }
復(fù)制代碼
PID計算
  1. int MPU6050_PID(float pitch,float Target)
  2. {  
  3.                  static float  kp=66,kd=-20,Ki=0.04;
  4.                 static float LastError,SumError;
  5.                 float Error,dError;
  6.           int PWM;
  7.                 char flag;
  8. //求偏差
  9.                 Error = pitch-Target;       //
  10.                 printf("\n Error= %.2f \n",Error);
  11. //積分
  12.         SumError+=Error;
  13.                 //積分限幅
  14.                 if(SumError>500) SumError=500;
  15.                 else if(SumError<-500) SumError=-500;
  16.                 //積分分離
  17.                 if(fAbs(Error)<3)        flag=1;
  18.                 else flag=0;
  19. //微分
  20.         dError=LastError-Error;
  21.         LastError=Error;
  22. //計算PID        
  23.          PWM = kp*Error+kd*dError+flag*Ki*SumError;           //
  24.          return PWM/100;
  25. }
復(fù)制代碼


舵機(jī)PID控制.zip

452.93 KB, 下載次數(shù): 322, 下載積分: 黑幣 -5

評分

參與人數(shù) 3黑幣 +60 收起 理由
2395542380 + 5 很給力!正好要用這個程序
zds1995 + 5 很給力!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發(fā)
ID:198530 發(fā)表于 2018-4-23 17:58 | 只看該作者
回復(fù)

使用道具 舉報

板凳
ID:319923 發(fā)表于 2018-5-1 16:40 | 只看該作者
樓主可以分享一下整個源碼嗎 謝謝
回復(fù)

使用道具 舉報

地板
ID:228186 發(fā)表于 2018-5-2 17:18 | 只看該作者
謝謝,樓主。
回復(fù)

使用道具 舉報

5#
ID:198530 發(fā)表于 2018-5-3 21:23 | 只看該作者
51sunny 發(fā)表于 2018-5-1 16:40
樓主可以分享一下整個源碼嗎 謝謝

上面就是整個源碼了,燒進(jìn)去就能用了
回復(fù)

使用道具 舉報

6#
ID:294883 發(fā)表于 2018-5-4 15:27 | 只看該作者
多謝,樓主。
回復(fù)

使用道具 舉報

7#
ID:294883 發(fā)表于 2018-5-4 15:32 | 只看該作者
樓主,PID那部分有完善一點的嗎,我測試只要有一點偏轉(zhuǎn)就會往一個方向轉(zhuǎn)的。qq:3506746761
回復(fù)

使用道具 舉報

8#
ID:198530 發(fā)表于 2018-5-5 00:14 | 只看該作者
zds1995 發(fā)表于 2018-5-4 15:32
樓主,PID那部分有完善一點的嗎,我測試只要有一點偏轉(zhuǎn)就會往一個方向轉(zhuǎn)的。qq:3506746761

我沒有去再改善,你可以嘗試的調(diào)一下參
回復(fù)

使用道具 舉報

9#
ID:475021 發(fā)表于 2019-2-5 20:39 | 只看該作者
不錯
666
回復(fù)

使用道具 舉報

10#
ID:187094 發(fā)表于 2019-8-9 20:19 | 只看該作者
真的很感謝樓主
回復(fù)

使用道具 舉報

11#
ID:600656 發(fā)表于 2019-8-23 15:21 | 只看該作者
使用了HMC5883??只用MPU6050和STM32該如何修改?
回復(fù)

使用道具 舉報

12#
ID:600656 發(fā)表于 2019-9-3 17:29 | 只看該作者
這個程序中沒有用到HMC5583吧,我用的GY-25Z,為什么下載程序后串口調(diào)試助手上不顯示傾斜角度???
回復(fù)

使用道具 舉報

13#
ID:600656 發(fā)表于 2019-9-3 17:31 | 只看該作者
我用的GY-25Z,下載程序后串口調(diào)試助手不隨傳感器的變化而變化,一直都是0.00怎么解決???
回復(fù)

使用道具 舉報

14#
ID:170892 發(fā)表于 2019-9-6 20:40 | 只看該作者
單片機(jī)混子 發(fā)表于 2019-8-23 15:21
使用了HMC5883??只用MPU6050和STM32該如何修改?

我看視頻樓主這個原理就跟控制平衡小車差不多,單軸就行,不需要航向角,剩下就是調(diào)PID參數(shù)
回復(fù)

使用道具 舉報

15#
ID:123954 發(fā)表于 2021-2-9 23:43 | 只看該作者
樓主你好,感謝你的分享,我看了你的代碼,有一個疑問:代碼用的應(yīng)該是位置式pid算法,但是我看到計算PID輸出后,再加上了上次輸出的結(jié)果,請問是為什么呢。    Inc_PWM=MPU6050_PID(Pitch,0);
    Ver_PWM =Ver_PWM + Inc_PWM;
    if(Ver_PWM>500) Ver_PWM=500;
    if(Ver_PWM<-800) Ver_PWM=-800;
    PWMA=Amp_Limit(Ver_PWM+1600);



回復(fù)

使用道具 舉報

16#
ID:198530 發(fā)表于 2021-4-6 17:15 | 只看該作者
zwh 發(fā)表于 2021-2-9 23:43
樓主你好,感謝你的分享,我看了你的代碼,有一個疑問:代碼用的應(yīng)該是位置式pid算法,但是我看到計算PID輸 ...

是位置式控制,結(jié)果加上上一次的輸出是根據(jù)舵機(jī)的控制原理來的,舵機(jī)要轉(zhuǎn)動的角度是相對上一次的
回復(fù)

使用道具 舉報

17#
ID:588966 發(fā)表于 2021-11-1 11:21 | 只看該作者
Ver_PWM =Ver_PWM + Inc_PWM;
請問這句程序是什么意思呢,感謝樓主
回復(fù)

使用道具 舉報

18#
ID:588966 發(fā)表于 2021-11-1 11:28 | 只看該作者
請問樓主是要在motor.c中實現(xiàn)產(chǎn)生PWM的么。就是用TIM_SetCompare2(TIM3, CompareValue);這個函數(shù)
回復(fù)

使用道具 舉報

19#
ID:588966 發(fā)表于 2021-11-1 11:32 | 只看該作者
請問樓主PID的輸出PWM為什么要除以100呢
return PWM/100;
回復(fù)

使用道具 舉報

20#
ID:588966 發(fā)表于 2021-11-1 11:58 | 只看該作者
king_zxt 發(fā)表于 2021-4-6 17:15
是位置式控制,結(jié)果加上上一次的輸出是根據(jù)舵機(jī)的控制原理來的,舵機(jī)要轉(zhuǎn)動的角度是相對上一次的

抱歉,還想問一下您 微分,積分時間怎么選擇的呢
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品美女www爽爽爽视频 | 欧美精品一区二区三区四区 在线 | 97免费在线视频 | 成人国产在线视频 | 精品国产一区二区三区日日嗨 | 99免费视频 | 精品视频久久久 | 中文字幕成人在线 | 欧美日韩精品 | 亚洲国产精品人人爽夜夜爽 | 在线观看国产 | 日本aaa视频 | 免费天天干| 国产精品久久久久久吹潮 | 亚洲成人免费观看 | 久久国产精品色av免费观看 | 99视频网站 | 天天成人综合网 | 欧美精品1区2区 | 久久精品成人一区 | 男女羞羞视频在线看 | 欧美一区二区视频 | 精品一二三区在线观看 | 亚洲+变态+欧美+另类+精品 | 精品久| 国产在线观看 | 中文字幕在线一 | 欧美爱爱视频 | 日韩三级在线 | 亚洲视频免费观看 | 99精品一区二区三区 | 不卡视频一区二区三区 | 91久久精品国产91久久 | av一级久久| 欧美日韩精品久久久免费观看 | 中国91av| 欧美综合一区二区三区 | 亚洲欧美中文字幕在线观看 | 午夜看看 | 国产夜恋视频在线观看 | 久久精品二区亚洲w码 |