演示視頻:
我基于STM32F103RCT6單片機+MPU6050+15AH鋰電池+載人。我怎么就感覺那個基于51單片機做的程序有問題呢,我怎么折騰就是不行。我用的是RC代號的單片機,這個型號帶兩個專用定時器tim1和tim8,我用內部互補直接去驅動兩個全橋驅動。
單片機:STM32F103RCT6
濾波:卡爾曼
驅動:75F75場效應管+ IR2101S
電池:36V12AH鋰電池
電機:優耐特36v350w外頭電機
輪胎:6寸充氣輪胎
價格參考
電路板200元,電池650,外殼100,輪胎40,法蘭盤100,電機300。加起來1500元不到吧。
我的PID算法只用到了兩個量,一個角度比例,還有一個市陀螺儀積分吧。主要是載人的,不需要位移量和轉速量,載人的不需要定下來,主要是靠人來調節前后,速度。
我的角度測量是用的重力加速度的分類,用三角函數計算出來的。假如向前,有點左右歪,角度一樣沒問題。
程序分為四個部分,大家慢慢研究。不要說我的電機噪音大,做工粗糙,等我有空,我會做個升級版的。我今年22周歲還不到,馬上?飘厴I,誰敢站出來和我比嫩!
在這里感謝那個牛人開源了源代碼,大家應該知道是誰。我是做自動化行業的,做這個純屬愛好。所以開源完全是回報社會,下載附件之后點個贊啊,我很要面子的。不要做伸手黨。
我上傳了我的源代碼,歡迎大家下載。還有pcb圖。歡迎大家討論
單片機源程序(主程序)如下:
- #include "stm32f10x.h"
- #include "SysTick.h"
- #include "assignment1.h"
- #include "assignment2.h"
- #include "assignment3.h"
- extern float Angle;//角度
- int main(void)
- {
- SysTick_Init();//①系統滴答時鐘初始化
-
- I2C_MPU6050_Init();//②重力傳感器接口初始化
-
- InitMPU6050();//③初始化MPU6050
- // LED_Config();//④顯示LED初始化
- TIM1_Init();//⑤定時器tim1,tim8初始化
- ADC1_Init();//⑥ADC初始化
- USART2_Config();//⑦初始化串口2
- Direction_Init();//⑧初始化轉向
- while(1)
- {
- }
- }
- /******************* (C) COPYRIGHT 2012 WildFire Team *****END OF FILE************/
復制代碼
所有資料51hei提供下載(stm32兩輪平衡車含圖紙、代碼全套資料,供大家學習):
stm32平衡車資料.rar
(6.35 MB, 下載次數: 666)
2017-10-29 01:33 上傳
點擊文件名下載附件
|