1 前言
大家好,我是手工飯!喜歡做一些看似簡單又不簡單的東西!
最近我精心制作了一款mini平衡車希望大家喜歡,雖然提供了基本功能可演示軟件,但我建議大家可以挑戰(zhàn)自我一步一步的實現(xiàn)自己的軟件。附件有原理圖以及部分物料的購買鏈接,如元器件標注有誤或者有疑問都可以聯(lián)系我哦!
2 平衡原理
如果通過簡單的練習,一般人可以通過自己的手指把木棒直立而不倒的 放在指尖上,所以練習的時候,需要學會的兩個條件:一是放在指尖上可以移動, 二是通過眼睛觀察木棒的傾斜角度和傾斜趨勢(角速度)。通過手指的移動去抵 消木棒傾斜的角度和趨勢,使得木棒能直立不倒。這樣的條件是不可以缺一的, 實際上加入這兩個條件,控制過程中就是負反饋機制。
平衡小車也是如此,小車運動方向與傾斜方向一致,通過慣性傳感器測量小車的傾角與傾角角速度,進而通過控制車輪的加速度來抵消小車的傾角和傾角角速度,小車即可平衡!
下面三幅圖分析小車的幾種運動可能
1、車體向左傾斜,車輪向左加速運行
2、車體垂直,車輪保持靜止
3、車體向右傾斜,車輪向右加速運行
3 絲滑穩(wěn)定的核心動力
相信大部分都玩過DIY平衡車,但是常見的平衡小車動力一般采用有刷直流減速電機,雖然力矩大但是由于減速箱工藝問題導(dǎo)致減速箱輸出軸有較大背隙(也可以稱之為虛位,即保證電機軸固定的情況下,用手來回轉(zhuǎn)動輸出軸,最理想情況是來回一點都轉(zhuǎn)不動),從而導(dǎo)致平衡小車直立時有小幅度來回抖動,這個時候不管算法再怎么高級都是沒有用的,除非減速箱虛位很?。ó斎幻總€人對這個小理解程度都不一樣)。
本設(shè)計使用無刷直驅(qū)動力,優(yōu)點:輸出軸無來回虛位,壽命長!缺點:扭力?。〉菍τ贒IY學習平衡小車是足夠的,當然不同大小體積的平衡小車需要選擇不同大小的無刷電機來保證其有足夠的扭力來維持小車的平衡!
4 硬件部分
主控板:核心AT32F413RC(運動控制和FOC算法) + MPU6500(姿態(tài)反饋) + LM358(電流采樣) + MP6536(電機3通道半橋驅(qū)動)+AMS1117-3.3+AMS1117-5.0
為什么用AT32呢?因為便宜!因為便宜!因為便宜!基于ARM? 32位的Cortex? -M4F微控制器+FPU,最高200MHz工作頻率,所以DIY有什么理由不用它呢?
MP6536是一款被大量用于無人機云臺的電機3通道半橋驅(qū)動,體積小巧5x5mm封裝,5V至26V供電,5.5A峰值電流輸出,高達1MHz PWM頻率,受保護的集成功率0.14Ω開關(guān)管,10ns開關(guān)管死區(qū)時間。
MPU6500設(shè)計有恒溫加熱,并且進行了溫度補償,保證傳感器數(shù)據(jù)不隨溫度變化而發(fā)生較大的零偏。
得益于處理器的強大,算法帶寬建議如下:電機電流環(huán)10KHz,電機速度環(huán)5KHz,小車角速度和直立環(huán)1KHz,小車速度環(huán)和控制環(huán)200Hz
IO板:ESP32-C3(藍牙通信、RGB控制)+HMC5883L(獲取航向角)+14500鋰電池座(2S)
-
- ESP32-C3功能也強大,集成藍牙與wifi,但是我并不喜歡它的編程方式。
所以看到源碼后就知道我寫的是什么垃圾,哈哈!
轉(zhuǎn)速反饋:TLE5012(獲取車輪速度)
-
- 磁編碼旋轉(zhuǎn)角度編碼器
5 上位機部分
我為了拋器專用的遙控手柄,從而開始學習微信小程序,但是我一點都不熟悉小程序的編程語言,只能靠我對C語言的理解去參考復(fù)制別人的代碼來實現(xiàn)了簡單控制功能,莫見笑!學習使我快樂!
6 結(jié)構(gòu)部分
小車結(jié)構(gòu):3D打印件+電機+徑向磁鐵+銅螺柱+螺絲+橡膠圈
7 原理圖
原理圖是用立創(chuàng)EDA畫的,高清源文件看附件。
8 軟件流程圖
9 相關(guān)資料
開源資料獲取方式,芯片之家微信公眾號后臺回復(fù):FOC平衡車,獲取全部開源資料!
再次感謝飯飯,我們搞電子的樂趣就在于不停的折騰,通過編程,算法一步步實現(xiàn)我們想要的效果與功能,學習電子,希望大家Enjoy!