各位大神看見我這凌亂的布線就不要吐槽了,畢竟不是電子專業出身,這些工具什么的都是自學的,如果哪位大神有關于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
如果覺得還行的話給我點個星星,如果覺得做的不好的話也希望大家能夠幫我一起改進~