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

標題: 風力擺的程序設計+匿名四軸上位機(15年國賽)對練習PID算法很有幫助 [打印本頁]

作者: 笨笨不太笨    時間: 2017-8-11 22:20
標題: 風力擺的程序設計+匿名四軸上位機(15年國賽)對練習PID算法很有幫助
PID算法的極好學習資料,匿名四軸資料


stm32單片機風力擺源程序如下:
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"
  5. #include "key.h"  
  6. #include "mpu6050.h"
  7. #include "pwmset.h"
  8. #include "niming.h"
  9. #include "pid.h"
  10. #include "usmart.h"   
  11. #include "inv_mpu.h"
  12. #include "inv_mpu_dmp_motion_driver.h"

  13. volatile float pitch,roll,yaw;                 //歐拉角
  14. volatile u8 mode = 1;                                                        //當前工作方式
  15. volatile float step = 0;

  16. int main(void)
  17. {               
  18.          Stm32_Clock_Init(9);                //系統時鐘設置
  19.         uart_init(72,500000);                //串口初始化為500000
  20.         delay_init(72);                                    //延時初始化
  21.         usmart_dev.init(72);                //初始化USMART
  22.         LED_Init();                                                  //初始化與LED連接的硬件接口
  23.         KEY_Init();                                                        //初始化按鍵
  24.         MPU_Init();                                                        //初始化MPU6050
  25.         TIM3_PWM_Init(999,8);          //初始化脈寬波輸出        
  26.         TIM2_Int_Init(4999,71);        //初始化定時器2,每5ms產生一次中斷


  27.         while(mpu_dmp_init())
  28.         {
  29.                 delay_ms(20);        
  30.         }               

  31.          while(1)
  32.         {               
  33.                 key=KEY_Scan(0);
  34.                 if(key==KEY2_PRES)                                                //測試發送pid數據給上位機
  35.                 {
  36.                         pid_send_data(rol_p,rol_i,rol_d,pit_p,pit_i,pit_d);
  37.                 }
  38.                
  39.                 if(key==KEY0_PRES)                                                //開啟或關閉下位機數據發送開關
  40.                 {
  41.                         report=!report;
  42.                 }        

  43.                 if(key==KEY1_PRES)                                                //開啟或關閉下位機數據發送開關
  44.                 {
  45.                         Rol_SumError = 0;
  46.                 }               

  47.                 if(key == KEY8_PRES)                                        //PE8按下
  48.                 {
  49.                         rol_p += 1;
  50.                         LED0 = ~LED0;
  51.                 }
  52.                 if(key == KEY9_PRES)
  53.                 {
  54.                         rol_i += 0.1;
  55.                         LED0 = ~LED0;
  56.                 }
  57.                 if(key == KEY10_PRES)
  58.                 {
  59.                         R += 0.05;
  60.                         LED0 = ~LED0;
  61.                 }
  62.                 if(key == KEY11_PRES)                                        //模式切換
  63.                 {
  64.                         mode++;
  65.                         LED0 = ~LED0;
  66.                 }

  67.                 if(key == KEY12_PRES)
  68.                 {
  69.                         rol_p -= 1;
  70.                         LED0 = ~LED0;
  71.                 }
  72.                 if(key == KEY13_PRES)
  73.                 {
  74.                         rol_i -= 0.1;
  75.                         LED0 = ~LED0;
  76.                 }
  77.                 if(key == KEY14_PRES)
  78.                 {
  79.                         R -= 0.05;
  80.                         LED0 = ~LED0;
  81.                 }
  82.                 if(key == KEY15_PRES)
  83.                 {
  84.                         mode--;                                                                                        //模式切換
  85.                         LED0 = ~LED0;
  86.                 }
  87.                
  88.                 if(USART_RX_STA == 1)                                        //檢測是否接收到了數據。
  89.                 {
  90.                         USART_RX_STA = 0;                                                //清除接收標志,防止多次判斷。
  91.                         LED1 = ~LED1;
  92.                         rol_p = (USART_RX_BUF[4]<<8)|USART_RX_BUF[5];
  93.                         rol_i = (USART_RX_BUF[6]<<8)|USART_RX_BUF[7];
  94.                         rol_d = (USART_RX_BUF[8]<<8)|USART_RX_BUF[9];
  95.                         pit_p = (USART_RX_BUF[10]<<8)|USART_RX_BUF[11];
  96.                         pit_i = (USART_RX_BUF[12]<<8)|USART_RX_BUF[13];
  97.                         pit_d = (USART_RX_BUF[14]<<8)|USART_RX_BUF[15];                                       
  98.                 }        
  99.                         
  100.         }         
  101. }

復制代碼

所有資料51hei提供下載:
15電賽風力擺源碼及上位機.rar (3.81 MB, 下載次數: 144)



作者: wobugaosuni    時間: 2019-8-2 13:48
謝謝分享

作者: wobugaosuni    時間: 2019-8-2 13:49
謝謝分享




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 成人午夜免费福利视频 | 激情黄色在线观看 | 97精品超碰一区二区三区 | 亚洲综合视频 | 日本久久久一区二区三区 | 亚洲精品一区中文字幕乱码 | 亚洲欧洲成人 | jizz视频| 中文字幕免费视频 | 欧美久久久久久久 | 久久精品国产v日韩v亚洲 | 欧美精品a∨在线观看不卡 欧美日韩中文字幕在线播放 | 久久精品国产免费 | 久久99国产精一区二区三区 | 欧美成人性生活 | 一级片免费视频 | 国产日韩欧美一区 | 亚洲欧美aⅴ | 精品视频99 | 中文字幕人成乱码在线观看 | 白浆在线 | 久久激情五月丁香伊人 | 欧美日日 | 精品欧美一区二区精品久久久 | 免费v片在线观看 | 久久www免费人成看片高清 | 亚洲一区国产精品 | 亚洲精品视频一区 | 永久免费视频 | 国产成人精品免高潮在线观看 | 在线观看成人小视频 | 欧美在线一区二区三区 | 97天天干| 欧美黄色大片在线观看 | 国产99视频精品免费播放照片 | 亚洲欧美激情精品一区二区 | 成年无码av片在线 | 久草在线免费资源 | 国产精品亚洲成在人线 | 成人免费观看男女羞羞视频 | 国产一级在线 |