在室友打呼嚕睡覺的時候我已經悄悄的學習單片機造小車的所有知識
如果想要真正從零做小車,需要橫跨很多專業。
所以你要問問自己的內心,是否願意在室友打呼嚕睡覺的時候堅持學習造小車的知識?
是否願意在大家購物的時候,省錢買電子硬體。
如果問完自己的內心,不願意的話,建議直接淘寶買成品。
如果願意的話,且聽我慢慢道來。
我估計如果只是靠下課時間來學習造小車的話,需要大概1年。
///插播一條:我自己在今年年初錄製了一套還比較系統的入門單片機教程,想要的同學找我拿就行了免費的,私信我就可以哦~點我頭像黑色字體加我也能領取哦。最近比較閒,帶做畢設///
正文開始:
其實不管是造小車也好,還是日後自己做產品也罷。上到稚暉君的機械臂,下到你的小車。類似於這種「造一個電子硬件」的任務,無外乎三大部分:「機械結構」,「PCB硬件」,「嵌入式軟體」
在這兒,首先你要明白一個問題,我們是工科而不是理科。理科生求真,工科生求解。
在這一系列的知識的學習過程中,我們要學習的不是為什麼,而是怎麼做。我們需要的是一個項目整合的能力,而不是說了解小車的每一方面。拿我的偶像稚暉君為例,他的機械臂就是整合了很多開源的項目:電機用的開源的步進電機,ROS也是用的開源的。
當然,不要小看整合的難度....要把最後的做出來難度是十分,十分,十分高的。(這裡用了三個十分,表示真的很難)
我們要把單片機當做工具,把AD繪圖當做工具,把Soldworks使用當做工具。真正的功夫在詩外。
所以回到你的問題:為了完成一個智能小車,你需要掌握哪些知識呢?
1.工具類知識(工具類知識指的是通過B站就能獲得的知識):
1.1掌握一門PCB繪製工具的操作(45課時,每天2課時,一星期5天10課時,差不多一個月。PS:雙休日肯定要出去玩的沒時間)
PCB我會用兩種,Altium Designer和 Cadence。AD是我在一家小公司學的,看的視頻是杜洋工作室的教程,他們用的是AD09,現在是AD21了。不過大同小異,而且新版本的AD吃電腦配置。09的用著也挺好。
我是比較討厭去配置開發環境(破解)的,我的破解都是在某寶上花錢讓人遠程解決的。
後來會被寄律師函了,就換了Cadence。Cadence目前還沒被寄過。
Cadence看的是西安小馬哥的開源四軸和Cadence小哥。
總結:
看完視頻後還是那句話,PCB繪圖軟體只是個工具罷了。
你應該根據這兩個視頻掌握的是:1.Datasheet的閱讀。2.單片機最小系統的繪製。3.怎麼把畫好的圖,通過嘉立創變成手上的板子。
1.2掌握一門單片機晶片的使用(靠悟性和勤奮,兩到三個月,每天1~2課時,一個月45課時)
接下來,你要掌握一項MCU的使用了,單片機晶片有很多很多。比如K210,STM32各種國產的32,乃至於全志的Soc等等。
這些晶片性能各異,鑒於你是初學者,推薦使用資料最多的STM32。
而這時你已經掌握了一門PCB繪圖工具的使用,而我推薦的兩個視頻也是實戰型的,不只是講操作。你看了視頻,已經會畫最小系統板了,想必也是躍躍欲試吧!
我覺得這時候,你應該通過自己繪製焊接一個最小系統板,掌握晶片的使用,因為視頻是通用的,你完全不需要買正點原子,野火的板子,直接白嫖他的教程就行了。
你不需要完全看完,你造小車,我建議目前只學習:LED流水燈點亮(GPIO的使用),串口的使用(USART),定時器的使用,嘀嗒定時器的使用。
所以你應該怎麼學呢?
1.畫一個最小系統板:帶幾個LED燈,幾個按鍵的就行,把所有IO口都引出來。用的要和你看的視頻的晶片型號一樣。晶振也一樣。這樣子程序能通用了。下載他的程序燒錄進去不會報錯就行了。推薦看個hal庫的視頻,實在不行咱們還可以使用cubeMx直接配置。板子記得元器件間距畫的大一點,電阻電容封裝選擇0603,0805的,這樣子你第一次焊接好焊。(可以直接參考杜洋的,他們畫的不錯。)
2.
購買焊台:富哥們直接上T12,窮哥們選936。936烙鐵頭便宜,氧化了換頭不心疼。(不過必須選擇可以恆溫的,那種只有一根電熱芯,十幾塊包郵的,完全用不來哦)
購買焊錫絲:我建議選擇有鉛的。無鉛的健康但是不錫。買重量最小的就行,我覺得你用不完,用完你就可以在宿舍里成大佬了!(不乾不淨吃了沒病,我目前用的是安立信的)
購買洗板水:如果你不是打算開工作室,買最小瓶的就行。(我用的是維修佬的)
購買助焊劑:針管助焊劑,最小的就行,用不完。(我不怎麼用,不知道啥牌子好,我是直接加錫解決的)
購買CH340:無差別,全網都一樣,選個最便宜的,調試必用。
購買DAPLINK/STLINK/JLINK:我用的是DAPLINK,安富萊(armfly)的H7-TOOL,超貴,但是超級好用。(你可以買個ST-LINK或者JLINK-OB幾十塊錢的那種就行)
購買杜邦線:富哥們用矽膠杜邦線0.5一根,窮哥們用杜邦線0.5一捆。(我喜歡矽膠的)
購買鑷子:有差別,看哥們的經濟能力選擇。(我用的是維修佬的,十幾塊錢一個,直頭)
購買焊接夾具:看你個人吧,這個東西不是必須的。但是我用了體驗蠻好的。西安小馬哥的店裡面買的,不便宜要130多。
購買萬用表:買個便宜的就行
3.根據你的BOM表,到tao寶或者立創商城配單,等待快遞到。手工焊接。焊完後。根據正點原子的教程,一步步操作。把他的LED管腳,改成你自己的LED管腳。看看小燈能亮不。
這時候你可能會遇到:下載器無法識別晶片(補焊一下MCU,萬用表看一下JTAG引腳是否連接),下進去了,但是仿真跑不到main函數(晶振是不是有問題,是不是沒焊好,是不是和原子的板晶振頻率不一樣)。
不過不要怕,問問身邊的高手。一步一步,總能解決的。
機械結構方面我也不懂,我不贅述了。
一般有用3D列印的做底盤的,有直接嘉立創列印鋁基板做底盤的。有CNC加工的。我目前也還在學習機械結構的知識。
到這裡,基本上你已經設計了一個最小系統板了,從硬體到軟體都是你做的哦!興奮吧。
現在只要把最小系統板換成小車就行了。這裡就不只是工具類知識能解決的。
需要涉及到方案選型,你用啥小車?四輪的,兩輪的?麥克納姆輪?
電機用啥電機,有刷的,無刷的?加不加編碼器,什麼編碼器,磁編?霍爾?ABZ?
怎麼控制?開環還是閉環。
智能的定義是什麼?什麼傳感器,是否要做手機上位機,怎麼通訊?用藍牙還是Wifi?
這時候一個新手,完全自主創造那是很不現實的。我覺得可以採用一個天下方案一大抄的手法。
你看看別人的作品,模仿一手就行了。
我不清楚你的需求哦,所以,我在網絡上找了一個Up做的四驅車。你可以模仿這個的功能。
0
我給你分析一下:
這個是採用的藍牙+安卓手機做上位機(需要你學習一下Android Studio)
他是四輪的小車,前驅,用的兩個直流電機+減速箱。
輪子地方加了霍爾傳感器,可以控制速度哦。
機械機構是這位大神自己設計的,並且代碼和PCB也在他的GitHub上開源了。可以直接借鑑。
方向採用的兩個輪子差速轉向。
其他的感覺也沒什麼了,你只要把類似的東西改動到你的小車上就行了。
我其實也有計劃做一個,不過我本身固件和機械都搞得定,主要是順帶學一下PCB畫板。PCB準備學到可商用的程度,湊合湊合畫出來焊上能動那種我不接受,要達到規範化設計的級別,要補很多知識。
作為一個長期更新吧,先更在這裡,後面再轉到自己的博客里。
預期計劃:
51複習》PCB入門》常用MCU開發板製作》PID學習》小車學習》進階
1.複習下51,手寫一遍常見協議,複習下中斷。
2.用立創EDA畫51最小系統板,和基本的功率電路的PCB,並實際打樣測試。
3.用立創EDA畫ESP32/RP2040最小系統板。
4.用ESP32/RP2040畫一個功率電路+ADC/I2C/SPI+電機驅動的PCB,並實際打樣測試。
5.用功率電路板學一下PID控制
6.用ESP32/RP2040畫一個平衡車的PCB,估計用步進電機。
7.用這個平衡車的demo,嘗試一下AI或者機器學習相關的分析吧,目前還分不清這些概念。
8.嘗試研究一下波士頓動力的二輪機器人。
進度:
2022年4月13日,階段1:結合這兩年Arduino下的經驗,用sdcc取代keil開發51。用的還是大學留下來的開發板。51DIP封裝的,電路以前做過一些,引腳少也好焊,先當作PCB畫板的學習。