文章目錄
- 前言
- 硬體設計
- 軟體設計
- 再回首
前言
前幾天在朋友圈看到面包闆社群的小編發了個**曬闆子的活動**,作為面包闆社群的活躍使用者,這個活動必須要參加一下!
說起分享自己畫的闆子,我首先想到的就是人生中設計的第一塊PCB闆子:基于STM32+MPU6050的兩輪自平衡小車主要闆,也是幾年前讀大學時的畢業設計。

思緒轉到5年前,2017年的夏天,大三的暑假還沒有結束,我就一人坐上了開往北京的列車,沒想到,這一去,就是5年!
實習的工作不算複雜,樣闆焊接、樣機調試,也會畫一些簡單的小闆子。因為自己是雙非普通大學出身,也深知自己的不足,平時白天幹活,晚上回去就學習PCB,單片機開發。實習了有半年的時間,到了大四下學期,回校準備畢業設計,由于有了一些實習經曆,畢業設計做起來就比較簡單了。
主要闆是自己設計的,小車底盤(輪胎+電機+編碼器)和锂電池是購買的成品。
PCB闆焊接、硬體調試、軟體設計、調參,畢業論文,查重,答辯,一切都比較順利!記得當時答辯現場,可能是因為我是獨立設計、調試的,答辯老師們對我的設計很感興趣,整個答辯過程都是在和老師們愉快的溝通中進行的!最終,我的畢業設計被所在的學院所收藏,畢業設計所花費的費用也找學校報帳了,畢業設計也被評為了優秀!
哈哈,居然還能找到當時在某PCB闆廠下的訂單,含運費一共90元,現在都是免費了吧!
和主題無關的話說的有點多了,下面來詳細介紹一下我當時畫的這塊處女闆!
硬體設計
硬體電路主要包括以下幾部分:
- STM32F103RET6,最小系統電路
- TB6612兩路直流電機驅動,電機編碼器檢測
- 通過分壓電阻方式實作的锂電池電壓ADC檢測
- 通過MOS管實作的锂電池防過放,欠壓保護電路
- 闆載MPU6050陀螺儀,用于擷取實時姿态資訊
- 一路紅外接收頭,預留OLED顯示接口,闆載HC-05藍牙子產品
- 一路複位按鍵,一路使用者按鍵、兩路使用者LED
- 預留SWD、序列槽、BOOT配置接口
硬體電路設計上的考慮不周到,電機AB相編碼器連接配接到了STM32的普通IO管腳, 而不是定時器的編碼器管腳,是以軟體控制效果不是太理想,哈哈,也可能是自己沒調好參數!
軟體設計
軟體設計上,僅僅實作了直立環,即平衡車直立效果,沒有實作速度環轉向控制,也沒有實作紅外、藍牙的遙控。
是以軟體方面的工作也比較簡單:
- STM32基本外設驅動,GPIO、UART、TIMER、ADC、DMA、中斷等等。
- MPU6050姿态擷取,使用官方DMP庫
- PID控制算法實作,直立環,參數的整定
- 異常姿态檢測算法,小車倒地後刹車,防止堵轉造成電機和晶片燒壞。
再回首
現在,再回看自己當時設計的那塊闆子,發現還是有很多不足之處的:
- 控制軟體方面不完美,僅僅實作了直立環,沒有實作速度環、紅外藍牙遙控等。
- PCB布局布線不合理,導緻過孔太多,走線比較混亂。
- 藍牙子產品射頻天線部分沒有預留淨空區,可能會導緻信号很弱。
- 沒有在靠近電機驅動晶片的位置添加儲能電容,導緻燒了幾次驅動晶片,後來加上才好點。
- 電機編碼器管腳沒有配置設定到定時器的編碼器接口,隻能通過GPIO中斷方式測速,導緻後續軟體調起來比較費勁
如今,我已經畢業四年,工作時間算是五年。畢業設計的空闆我還保留至今,剩下的都是回憶!
雖然時過多年,當時所學的專業也已經停止招生了,而我也不做單片機開發了,轉向了另一種可程式設計器件FPGA的開發,但是當看到單片機相關的技術文章還是會仔細的研讀一下。
富芮坤FR8016H開發闆+ESP8266實作疫情監控
uFUN開發闆+自己畫的PCIe擴充闆實作的聯網時鐘
血的教訓,Mini PCIe闆子的厚度1.0mm即可,錫手指切掉了一部分才剛好能插進去。
看起來還挺精緻的