標(biāo)題: STM32旋轉(zhuǎn)倒立擺自動起擺源碼 [打印本頁]

作者: Pig951001    時(shí)間: 2017-8-16 20:19
標(biāo)題: STM32旋轉(zhuǎn)倒立擺自動起擺源碼
這是2011年國賽倒立擺的自動起擺代碼,參數(shù)需要根據(jù)大家的機(jī)械結(jié)構(gòu)有所改變,想練手的同學(xué)可以下載來參考一下哦。

所有資料51hei提供下載:
【平衡小車之家】STM32 旋轉(zhuǎn)倒立擺自動起擺源碼.rar (216.88 KB, 下載次數(shù): 193)

單片機(jī)源程序如下:
  1. #include "sys.h"
  2.   /**************************************************************************
  3. 作者:平衡小車之家
  4. **************************************************************************/
  5. u8 Flag_Stop=0,delay_50,delay_flag,Flash_Send,Way_Turn;         //停止標(biāo)志位 50ms精準(zhǔn)演示標(biāo)志位
  6. int Encoder=10000,Position_Zero=10000,Velocity;            //編碼器的脈沖計(jì)數(shù)
  7. int Moto=0;                                   //電機(jī)PWM變量 應(yīng)是Motor的 向Moto致敬        
  8. int Voltage,Data_Show,Data_Show2;                                //電池電壓采樣相關(guān)的變量
  9. float Angle_Balance,Last_Angle_Balance,D_Angle_Balance;                        //角位移傳感器數(shù)據(jù)
  10. float Balance_KP=50,Balance_KD=244,Position_KP=25,Position_KD=600;  //PID系數(shù)
  11. float Menu=1,Amplitude1=1,Amplitude2=10,Amplitude3=1,Amplitude4=10; //PID調(diào)試相關(guān)參數(shù)
  12. u16 PID_Parameter[10],Flash_Parameter[10];  //Flash相關(guān)數(shù)組
  13. u8 Flag_OLED,State,Balance_Ratio=0;  //State是倒立擺狀態(tài) 1:倒立狀態(tài)  0:非倒立狀態(tài)
  14. int main(void)
  15. {
  16.         Stm32_Clock_Init(9);            //=====系統(tǒng)時(shí)鐘設(shè)置
  17.         delay_init(72);                 //=====延時(shí)初始化
  18.         JTAG_Set(JTAG_SWD_DISABLE);     //=====關(guān)閉JTAG接口
  19.         JTAG_Set(SWD_ENABLE);           //=====打開SWD接口 可以利用主板的SWD接口調(diào)試
  20.         delay_ms(1000);                 //=====延時(shí)啟動,等待系統(tǒng)穩(wěn)定
  21.         delay_ms(1000);                 //=====延時(shí)啟動,等待系統(tǒng)穩(wěn)定 共2s
  22.         LED_Init();                     //=====初始化與 LED 連接的硬件接口
  23.         EXTI_Init();                    //=====按鍵初始化(外部中斷的形式)
  24.         OLED_Init();                    //=====OLED初始化
  25.         uart_init(72,128000);           //=====初始化串口1
  26.   MiniBalance_PWM_Init(7199,0);   //=====初始化PWM 10KHZ,用于驅(qū)動電機(jī)
  27.         Encoder_Init_TIM2();            //=====初始化編碼器(TIM2的編碼器接口模式)
  28.         Angle_Adc_Init();               //=====角位移傳感器模擬量采集初始化
  29.         Baterry_Adc_Init();             //=====電池電壓模擬量采集初始化
  30.         Flash_Read();                   //=====從Flash里面讀取參數(shù)
  31.         Timer1_Init(49,7199);           //=====定時(shí)中斷初始化
  32.         while(1)
  33.                 {      
  34.                                 DataScope();                    //===上位機(jī)
  35.                                 delay_flag=1;                    //===50ms中斷精準(zhǔn)延時(shí)標(biāo)志位
  36.                                 oled_show();              //===顯示屏打開                  
  37.                                 while(delay_flag);        //===50ms中斷精準(zhǔn)延時(shí)  主要是波形顯示上位機(jī)需要嚴(yán)格的50ms傳輸周期                                          
  38.                                 if(Flash_Send==1)         //===寫入PID參數(shù)到Flash,由按鍵控制該指令
  39.                                 {
  40.                                         Flash_Write();                //===把參數(shù)寫入到Flash
  41.                                         Flash_Send=0;                  //===標(biāo)志位清零
  42.                                         Flag_OLED=1;            //===顯示標(biāo)志位置1 在顯示屏上面顯示Data Is Saved的字樣
  43.                                 }                                                        
  44.                 }
  45. }
復(fù)制代碼




作者: gaile163    時(shí)間: 2018-3-30 19:08
你好 這里的參數(shù)該怎么算

作者: a472849326    時(shí)間: 2018-4-4 16:58
你確定這能擺起來?
作者: lemon233    時(shí)間: 2018-5-14 16:28
厲害啊

作者: nachuan    時(shí)間: 2018-6-28 18:02
請問是哪一款stm32,我想直接用你的程序,復(fù)制一個(gè)倒立擺。請給個(gè)硬件清單
作者: MASTER1    時(shí)間: 2018-10-28 17:13
由擺起來的嗎?

作者: MASTER1    時(shí)間: 2018-10-28 17:19
這個(gè)代碼能倒立起來?
作者: 糖葫蘆小可愛    時(shí)間: 2019-6-17 15:50
厲害。!
作者: hehaheha1    時(shí)間: 2019-7-24 09:45
感覺擺不起來呀
作者: 電子設(shè)計(jì)8    時(shí)間: 2019-7-24 16:33
我試了一下,確實(shí)擺不起來
作者: k545    時(shí)間: 2019-7-29 15:34
這程序是錯(cuò)誤的   大家還是不要盲目相信了   最基本的還是作為參考吧
作者: 吳敏12306    時(shí)間: 2019-8-3 15:26
nachuan 發(fā)表于 2018-6-28 18:02
請問是哪一款stm32,我想直接用你的程序,復(fù)制一個(gè)倒立擺。請給個(gè)硬件清單

應(yīng)該可以直接去平衡小車之家,他那有套件
作者: 小m    時(shí)間: 2020-2-9 11:47
謝謝分享,他們家的套件我用過全套,代碼寫的并不規(guī)范,有很多誤導(dǎo)性的地方。不建議新手參考。
作者: csnbnbnb    時(shí)間: 2021-5-20 12:17
小m 發(fā)表于 2020-2-9 11:47
謝謝分享,他們家的套件我用過全套,代碼寫的并不規(guī)范,有很多誤導(dǎo)性的地方。不建議新手參考。

老哥,你的最后實(shí)現(xiàn)了嗎




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1