找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STM32旋轉(zhuǎn)倒立擺自動(dòng)起擺源碼

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:227963 發(fā)表于 2017-8-16 20:19 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
這是2011年國賽倒立擺的自動(dòng)起擺代碼,參數(shù)需要根據(jù)大家的機(jī)械結(jié)構(gòu)有所改變,想練手的同學(xué)可以下載來參考一下哦。

所有資料51hei提供下載:
【平衡小車之家】STM32 旋轉(zhuǎn)倒立擺自動(dòng)起擺源碼.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í)啟動(dòng),等待系統(tǒng)穩(wěn)定
  21.         delay_ms(1000);                 //=====延時(shí)啟動(dòng),等待系統(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ū)動(dòng)電機(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ù)制代碼



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

使用道具 舉報(bào)

沙發(fā)
ID:299581 發(fā)表于 2018-3-30 19:08 | 只看該作者
你好 這里的參數(shù)該怎么算
回復(fù)

使用道具 舉報(bào)

板凳
ID:291031 發(fā)表于 2018-4-4 16:58 | 只看該作者
你確定這能擺起來?
回復(fù)

使用道具 舉報(bào)

地板
ID:329689 發(fā)表于 2018-5-14 16:28 | 只看該作者
厲害啊
回復(fù)

使用道具 舉報(bào)

5#
ID:354554 發(fā)表于 2018-6-28 18:02 | 只看該作者
請問是哪一款stm32,我想直接用你的程序,復(fù)制一個(gè)倒立擺。請給個(gè)硬件清單
回復(fù)

使用道具 舉報(bào)

6#
ID:399222 發(fā)表于 2018-10-28 17:13 | 只看該作者
由擺起來的嗎?
回復(fù)

使用道具 舉報(bào)

7#
ID:399222 發(fā)表于 2018-10-28 17:19 | 只看該作者
這個(gè)代碼能倒立起來?
回復(fù)

使用道具 舉報(bào)

8#
ID:564668 發(fā)表于 2019-6-17 15:50 | 只看該作者
厲害。!
回復(fù)

使用道具 舉報(bào)

9#
ID:538245 發(fā)表于 2019-7-24 09:45 | 只看該作者
感覺擺不起來呀
回復(fù)

使用道具 舉報(bào)

10#
ID:546472 發(fā)表于 2019-7-24 16:33 | 只看該作者
我試了一下,確實(shí)擺不起來
回復(fù)

使用道具 舉報(bào)

11#
ID:585752 發(fā)表于 2019-7-29 15:34 | 只看該作者
這程序是錯(cuò)誤的   大家還是不要盲目相信了   最基本的還是作為參考吧
回復(fù)

使用道具 舉報(bào)

12#
ID:581847 發(fā)表于 2019-8-3 15:26 | 只看該作者
nachuan 發(fā)表于 2018-6-28 18:02
請問是哪一款stm32,我想直接用你的程序,復(fù)制一個(gè)倒立擺。請給個(gè)硬件清單

應(yīng)該可以直接去平衡小車之家,他那有套件
回復(fù)

使用道具 舉報(bào)

13#
ID:97506 發(fā)表于 2020-2-9 11:47 | 只看該作者
謝謝分享,他們家的套件我用過全套,代碼寫的并不規(guī)范,有很多誤導(dǎo)性的地方。不建議新手參考。
回復(fù)

使用道具 舉報(bào)

14#
ID:924309 發(fā)表于 2021-5-20 12:17 來自觸屏版 | 只看該作者
小m 發(fā)表于 2020-2-9 11:47
謝謝分享,他們家的套件我用過全套,代碼寫的并不規(guī)范,有很多誤導(dǎo)性的地方。不建議新手參考。

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

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表