找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9281|回復: 13
收起左側

STM32旋轉倒立擺自動起擺源碼

  [復制鏈接]
ID:227963 發(fā)表于 2017-8-16 20:19 | 顯示全部樓層 |閱讀模式
這是2011年國賽倒立擺的自動起擺代碼,參數需要根據大家的機械結構有所改變,想練手的同學可以下載來參考一下哦。

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

單片機源程序如下:
  1. #include "sys.h"
  2.   /**************************************************************************
  3. 作者:平衡小車之家
  4. **************************************************************************/
  5. u8 Flag_Stop=0,delay_50,delay_flag,Flash_Send,Way_Turn;         //停止標志位 50ms精準演示標志位
  6. int Encoder=10000,Position_Zero=10000,Velocity;            //編碼器的脈沖計數
  7. int Moto=0;                                   //電機PWM變量 應是Motor的 向Moto致敬        
  8. int Voltage,Data_Show,Data_Show2;                                //電池電壓采樣相關的變量
  9. float Angle_Balance,Last_Angle_Balance,D_Angle_Balance;                        //角位移傳感器數據
  10. float Balance_KP=50,Balance_KD=244,Position_KP=25,Position_KD=600;  //PID系數
  11. float Menu=1,Amplitude1=1,Amplitude2=10,Amplitude3=1,Amplitude4=10; //PID調試相關參數
  12. u16 PID_Parameter[10],Flash_Parameter[10];  //Flash相關數組
  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)時鐘設置
  17.         delay_init(72);                 //=====延時初始化
  18.         JTAG_Set(JTAG_SWD_DISABLE);     //=====關閉JTAG接口
  19.         JTAG_Set(SWD_ENABLE);           //=====打開SWD接口 可以利用主板的SWD接口調試
  20.         delay_ms(1000);                 //=====延時啟動,等待系統(tǒng)穩(wěn)定
  21.         delay_ms(1000);                 //=====延時啟動,等待系統(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,用于驅動電機
  27.         Encoder_Init_TIM2();            //=====初始化編碼器(TIM2的編碼器接口模式)
  28.         Angle_Adc_Init();               //=====角位移傳感器模擬量采集初始化
  29.         Baterry_Adc_Init();             //=====電池電壓模擬量采集初始化
  30.         Flash_Read();                   //=====從Flash里面讀取參數
  31.         Timer1_Init(49,7199);           //=====定時中斷初始化
  32.         while(1)
  33.                 {      
  34.                                 DataScope();                    //===上位機
  35.                                 delay_flag=1;                    //===50ms中斷精準延時標志位
  36.                                 oled_show();              //===顯示屏打開                  
  37.                                 while(delay_flag);        //===50ms中斷精準延時  主要是波形顯示上位機需要嚴格的50ms傳輸周期                                          
  38.                                 if(Flash_Send==1)         //===寫入PID參數到Flash,由按鍵控制該指令
  39.                                 {
  40.                                         Flash_Write();                //===把參數寫入到Flash
  41.                                         Flash_Send=0;                  //===標志位清零
  42.                                         Flag_OLED=1;            //===顯示標志位置1 在顯示屏上面顯示Data Is Saved的字樣
  43.                                 }                                                        
  44.                 }
  45. }
復制代碼



回復

使用道具 舉報

ID:299581 發(fā)表于 2018-3-30 19:08 | 顯示全部樓層
你好 這里的參數該怎么算
回復

使用道具 舉報

ID:291031 發(fā)表于 2018-4-4 16:58 | 顯示全部樓層
你確定這能擺起來?
回復

使用道具 舉報

ID:329689 發(fā)表于 2018-5-14 16:28 | 顯示全部樓層
厲害啊
回復

使用道具 舉報

ID:354554 發(fā)表于 2018-6-28 18:02 | 顯示全部樓層
請問是哪一款stm32,我想直接用你的程序,復制一個倒立擺。請給個硬件清單
回復

使用道具 舉報

ID:399222 發(fā)表于 2018-10-28 17:13 | 顯示全部樓層
由擺起來的嗎?
回復

使用道具 舉報

ID:399222 發(fā)表于 2018-10-28 17:19 | 顯示全部樓層
這個代碼能倒立起來?
回復

使用道具 舉報

ID:564668 發(fā)表于 2019-6-17 15:50 | 顯示全部樓層
厲害。。
回復

使用道具 舉報

ID:538245 發(fā)表于 2019-7-24 09:45 | 顯示全部樓層
感覺擺不起來呀
回復

使用道具 舉報

ID:546472 發(fā)表于 2019-7-24 16:33 | 顯示全部樓層
我試了一下,確實擺不起來
回復

使用道具 舉報

ID:585752 發(fā)表于 2019-7-29 15:34 | 顯示全部樓層
這程序是錯誤的   大家還是不要盲目相信了   最基本的還是作為參考吧
回復

使用道具 舉報

ID:581847 發(fā)表于 2019-8-3 15:26 | 顯示全部樓層
nachuan 發(fā)表于 2018-6-28 18:02
請問是哪一款stm32,我想直接用你的程序,復制一個倒立擺。請給個硬件清單

應該可以直接去平衡小車之家,他那有套件
回復

使用道具 舉報

ID:97506 發(fā)表于 2020-2-9 11:47 | 顯示全部樓層
謝謝分享,他們家的套件我用過全套,代碼寫的并不規(guī)范,有很多誤導性的地方。不建議新手參考。
回復

使用道具 舉報

ID:924309 發(fā)表于 2021-5-20 12:17 來自手機 | 顯示全部樓層
小m 發(fā)表于 2020-2-9 11:47
謝謝分享,他們家的套件我用過全套,代碼寫的并不規(guī)范,有很多誤導性的地方。不建議新手參考。

老哥,你的最后實現了嗎
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表