找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

自平衡自行車軟件硬件原理圖+STM32源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:515496 發(fā)表于 2019-4-18 15:08 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
自平衡自行車是用一個(gè)平衡輪的PID火算法控制加減速來(lái)得到校正力的方案。懂的人看看就知道了

單片機(jī)源程序如下:
  1. #include "sys.h"
  2. u8 Flag_Stop=1,Flag_Show=0,Flag_Direction;         //停止標(biāo)志位和 顯示標(biāo)志位 默認(rèn)停止 顯示打開(kāi)
  3. float Encoder_Balance,Encoder_Walk,Target_Walk;          //編碼器的脈沖計(jì)數(shù)            
  4. float Motor_Balance,Motor_Walk,Motor_Turn,Velocity=70;      //電機(jī)PWM變量
  5. int Voltage;                              //電池電壓采樣相關(guān)的變量                       
  6. u8 delay_50,delay_flag,PID_Send;          //延時(shí)相關(guān)變量
  7. float Pitch,Roll,Yaw;   //三軸角度和XYZ軸目標(biāo)速度
  8. float        Balance_KP=1800,Balance_KD=8,Position_KP=100,Position_KI=2;  //位置控制PID參數(shù)
  9. float Adjust,Middle;
  10. int main(void)
  11. {
  12.         Stm32_Clock_Init(9);            //=====系統(tǒng)時(shí)鐘設(shè)置
  13.         delay_init(72);                 //=====延時(shí)初始化
  14.         JTAG_Set(JTAG_SWD_DISABLE);     //=====關(guān)閉JTAG接口
  15.         JTAG_Set(SWD_ENABLE);           //=====打開(kāi)SWD接口 可以利用主板的SWD接口調(diào)試
  16.         MiniBalance_PWM_Init();         //=====初始化PWM 10KHZ,用于驅(qū)動(dòng)電機(jī)
  17.         LED_Init();                     //=====初始化與 LED 連接的硬件接口
  18.         KEY_Init();                     //=====按鍵初始化
  19.         OLED_Init();                    //=====OLED初始化
  20.         uart_init(72,128000);           //=====初始化串口1
  21.         uart2_init(36,9600);            //=====串口3初始化
  22.         Encoder_Init_TIM2();            //=====編碼器接口
  23.         Encoder_Init_TIM3();            //=====初始化編碼器C
  24.         Adc_Init();                     //=====adc初始化
  25.         delay_ms(500);                  //=====延時(shí)
  26.         IIC_Init();                     //=====IIC初始化
  27.   MPU6050_initialize();           //=====MPU6050初始化       
  28.   DMP_Init();                     //=====初始化DMP     
  29.   EXTI_Init();                    //=====MPU6050 5ms定時(shí)中斷初始化
  30.         while(1)
  31.                 {       
  32.             if(Flag_Show==0)          //使用MiniBalance APP和OLED顯示屏
  33.                         {
  34.                                 APP_Show();       
  35.                                 oled_show();          //===顯示屏打開(kāi)
  36.             }
  37.             else                    //使用MiniBalance 上位機(jī) 上位機(jī)使用的時(shí)候需要嚴(yán)格的時(shí)序,故此時(shí)關(guān)閉app監(jiān)控部分和OLED顯示屏
  38.                   {
  39.                                 DataScope();          //開(kāi)啟MiniBalance上位機(jī)
  40.                         }
  41.                         delay_flag=1;       
  42.                         delay_50=0;
  43.                         while(delay_flag);             //通過(guò)MPU6050的INT中斷實(shí)現(xiàn)的50ms精準(zhǔn)延時(shí)                               
  44.                 }
  45. }
復(fù)制代碼

所有資料51hei提供下載:
平衡自行車.7z (5.93 MB, 下載次數(shù): 68)




評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

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

使用道具 舉報(bào)

沙發(fā)
ID:1091382 發(fā)表于 2023-8-27 00:07 | 只看該作者
實(shí)物圖呢、至少給張圖片吧
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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