很多人對平衡車的相關技術很有興趣,但是在實際搭建平衡車或者購買套件時會發現其實成本很高,動輒需要300~400的價錢,而且搭建出來的東西塊頭很大,做好后的存放是個問題...
之前自己就走這條路做過一個平衡小車,為了填坑,我專門花了不少時間進行選型,最后在經過三次PCB打樣后終于有了一款非常小巧的平衡小車,這個平衡小車在實現了平衡的前提下做到了非常小的尺寸以及高度的模塊化設計,其整體尺寸僅為8cm*4cm*4cm;其模塊化設計做到了將傳感器,電機驅動器,紅外遙控接收器,以及馬達和電池都是可以拆卸的模塊。
其次就是關于代碼和資料方面,感謝很多網友的無私奉獻,他們的資料給了我很大幫助,現在小車已經差不多完成,我也在這里分享給大家。
先上個全家福:
BBear_balancecar1.jpg (493.54 KB, 下載次數: 117)
下載附件
2016-12-28 21:58 上傳
東西大小可以通過尺子看出來,控制方面采用的紅外遙控~
剛才提到了模塊化的問題,在設計中,我盡可能的將能夠安裝的模塊都采用模塊化方式處理,這樣就算以后不用小車了,它的很多模塊都是可以放到別的地方繼續使用的。 我專門把所有東西都拆開后照了張照片:
BBear_balancecar2.jpg (500.77 KB, 下載次數: 145)
下載附件
2016-12-28 21:58 上傳
其實東西不多, 一個核心板, 一個mpu6050陀螺儀加速度計, 一個電機驅動, 兩個無刷電機減速馬達, 兩個輪子, 一個紅外遙控器, 一塊鋰電池, 一個紅外接收管
接下來給大家看看電路原理圖:
QQ截圖20161210225327.png (40.96 KB, 下載次數: 164)
下載附件
2016-12-28 21:58 上傳
因為是截圖,有點模糊,如果需要源文件,我待會兒放在附件里面~ 原理圖沒什么難的,最小系統+電機控制+電機電源 繪制時細心加耐心就沒什么問題,不然就會和我畫第一版時一樣吧tx和rx給畫反了...
PCB圖:
QQ截圖20161210230230.png (111.68 KB, 下載次數: 128)
下載附件
2016-12-28 21:58 上傳
各位大神看見我這凌亂的布線就不要吐槽了,畢竟不是電子專業出身,這些工具什么的都是自學的,如果哪位大神有關于PCB方面比較好的書籍推薦我學習學習我會非常樂意接受的,嘿嘿~
上面是關于硬件設計部分,接下來是軟件了: 軟件流程: 軟件部分分為兩個大部分: 1數據部分 數據部分圍繞MPU6050傳感器展開。分為數據獲取,濾波,數據處理 1.1數據獲取 STM32通過I2C和MPU6050進行通訊,其中涉及到基礎的I2C通信協議實現,在I2C基礎上,涉及到MPU6050各種參數的設置,比如加速度的范圍等。不同的設置獲取到的數據會不一樣并且精度也不一樣。 1.2濾波 在獲取到原始數據后經過簡單轉化變為角度,但是這個數據是不準確的,因此需要濾波處理,由于小車比較簡單,濾波就用的是互補濾波。這樣就能獲取比較精確的數據的了。 1.3數據處理 在濾波前需要對獲取的原始數據進行處理,這個需要一點點物理知識,還有一個就是角速度的積分操作,這個需要使用定時器來完成。
2控制部分 控制部分主要分為PID算法,電機驅動 2.1PID算法 PID算法就是比例,積分,微分這三個變量相互作用最后輸出到控制器上去。剛開始時以為需要P就夠了,最后發現效果不好,在加入了D之后,效果就很好了。 2.2電機驅動 電機驅動主要設計的知識就是PWM波的控制,STM32有相關的庫操作,只需要按要求設置好就OK了。然后將PID算法產生的結果作為參數輸入到這里就可以實現控制了。
軟件部分涉及的東西不多,就算是單片機新手,花功夫肯琢磨也不會用多久時間。
七七八八說了那么多,沒有視頻說個毛線,在這里錄了個小視頻,讓大家見笑了:
做這個小車還是花了些時間,目的是希望給后來者多填坑,小車目前還有很多不足需要改進,由于選型問題,沒有找到合適的碼盤測速,所以目前這個小車還沒有車輪的速度反饋,如果解決這個問題,小車的性能會更上一層樓。 希望大家能給我多多提出意見,如果有什么疑惑,我也會盡可能幫助解決~
差點把資料的事情給忘記了,我的這個小車的所有相關資料都放在github上面,地址: https://github.com/bigbearishappy/BBear_balance_car
如果覺得還行的話給我點個星星,如果覺得做的不好的話也希望大家能夠幫我一起改進~
|