天天看點

我的嵌入式學習曆程我的嵌入式學習曆程

我的嵌入式學習曆程

從大一接觸單片機到現在已經快三年了,三年之中有踩過的坑,也有令我難忘的事,下面我就說說我的學習曆程。以下内容純屬個人感受,如果意見不同隻當是時殊事異,情随事遷罷了,望大家海涵。

帶我入門的RoboMaster

——遇見陌生的面孔,人生新階段的開始——大學
           

大一剛開學的不久,本着找點事幹的原則,我加入了學校的RoboMaster機器人隊。當時對嵌入式沒什麼概念,隻是覺得能控制機器人很厲害就選了控制組,事後發現這個舉措很明智(其他組勿噴😆)。進隊流程是必須要走的:聽宣講會,選組,面試。面試通過以後,恭喜你!你還不是DT(Dream Team)的一員,但是隻要你努力,至少已經算半個了。為什麼這麼說呢?這是因為參賽名額有限,後期會有淘汰(記得我們那一屆第一波有100+人😮)。

一上來控制組組長GZ同志(哦不對,同學)就給大家布置了任務,剛開始的任務都是一樣的——自學STM32。按我這個急性子,當天晚上就開始刷原子哥的視訊,大概過了有一個星期左右,刷完了。然後領了一塊開發版,想寫個流水燈,之後吃驚的發現——what?不會啊。對喽,這就對喽,學單片機一定要實戰!!!(劃重點),光會看說明書那是紙上談兵。

然後迎來十一小長(集)假(訓)。集訓的每天都要報到打卡,有了前車之鑒,我決定從STM32庫函數學起,每天看原子哥的視訊,一個例程一個例程的跑。這樣大概過了5天左右,STM32基礎學的都差不多了,于是開始學習控制。

第一個任務是調電機PID。懷着PI什麼?P什麼D?的疑問開始自行查找資料——百度知乎搜了一遍,谷歌知網逛了一圈~~嗯,大概了解了。開始調試。單個電機調完以後就是調雲台——自穩什麼的。然後調底盤,,,這裡不再贅述。

以上内容如果你都完成了,那麼RM也就算入門了。這時,你應該已經對控制有了初步的感覺,這時候需要keep going。能走到這一步的人其實已經不多了。這也很正常,people walk in and walk out of our lives 有着不同的理想和目标,有着他們的人生軌迹,追求自我是個很正常的事情~~額,跑題了。下面繼續說,

控制組主要負責機器人運動控制程式編寫,當然,這裡面包含很多東西。比如說,配合硬體組測試一下電路,配合視覺聯調,配合機械布線等等,總之最後,你會發現幾乎所有的事情控制組多少都會參與。這樣一來,不僅隻是程式設計能力,對電路和機械知識,做控制的都會有了解。(聲明一下,我是控制組的)

最後的人員确定是在分區賽之前,這時候是最後一波刷人了,不過實際上,隻要你能到這一步,能力至少是值得肯定的,但是可能還不夠優秀。是以,如果被刷了,一般實驗室也會給你提供一席之地的,比如說做項目什麼的。參賽人員确定後,就要根據每年的比賽内容布置任務。剩下的不再多說,到時候自然會知道。

雖然最後我由于個人原因,沒有參加國賽,這也是算一個遺憾吧,但是RM的這段經曆對我來說真的收獲頗深!

這裡我有一個忠告:RM is not all,GPA、績點也很重要,尤其是對于有出國或者保研意向的同學來說,保住績點才是最重要的,這個一定要想清楚。同時,我想說的是參加RM絕對是一個能讓你成長的事情,掌握更多的知識和技能不是一件壞事。在這裡,你可以把所學應用到實踐中、可以體驗team working、可以在比賽中與各大高校的參賽隊交流切磋、可以沖杯☕️熬夜Debug調參、可以和團隊成員一起聯機CS😎(@兵哥),不對,這個不可以。哈哈,暫時就寫這麼多吧!

最後,引用《LIfe of Pi》(《少年派的奇幻漂流》)中的一句話作為這個階段的結束:

“ A l l   o f   l i f e   i s   a n   a c t   o f   l e t t i n g   g o   , b u t   w h a t   h u r t s   t h e   m o s t   i s   n o t   t a k i n g   a   m o m e n t   t o   s a y   g o o d b y e . ” “All\ of\ life\ is\ an\ act\ of\ letting\ go\ , but\ what\ hurts\ the\ most\ is\ not\ taking\ a\ moment\ to\ say\ goodbye.” “All of life is an act of letting go ,but what hurts the most is not taking a moment to say goodbye.”

夯實基礎從項目開始

——忙碌過後的甯靜,甯靜中的思考。
           

大二我加入了導師的實驗室,開始做項目。導師人很好,管理實驗室有自己的一套方法,每個項目都有小組,每周都會開例會彙報項目進度,項目開展有條不紊。實驗室的學長也都很厲害,有保研中科院自己畫闆程式設計調試的大佬,有考研北郵FPGA玩的很溜的大牛,每個人各有所長,相得益彰~~額,下面言歸正傳,

項目和比賽的差別在于:比賽你隻要可以實作功能會用就可以了,但是很多時候其實是在“試”,達到要求就OK了。項目不一樣,你需要從理論出發一點一點推敲,有的時候還需要經過大量實驗測量得出結論。也就是說,判斷一個方案可不可行的要求不再是“能用”,而變得更加苛刻,比如說:功耗、穩定性、成本等,需要從實際應用出發。

舉個例子,價格相同的兩個手機,山寨機和華為你選哪個?我相信大多數人還是會選後者的,為啥?穩定,可靠。這是産品思維的驅使,而“能用”隻是基礎。是以,要想把項目做好,需要的是=對細節的把握,也就是課本上的那些基礎——模數電、通信原理、微機原理、計算機網絡等。

我當時做的第一個項目是一個物聯網氣象站,使用NB-IoT子產品發送資料,然後收集到平台。整個項目難度不大,但是細節上的事情卻很多:傳感器和晶片選型、電路調試、程式等等。記得當時處理一個ADC資料不連續的問題,查了好幾天,最後發現是電路上的問題。還有DMA資料接收進入硬體錯誤中斷,最後發現是記憶體溢出的問題。由于需要做長時間烤機測試,我還為此學習C#并編寫了一個序列槽上位機記錄資料,從此解放大量人力。後來采用了RTOS,增強了多任務處理能力。實驗室還專門組建小組,每個部分都由專人負責,小組成員老帶新,對項目的延續也算是一個新的嘗試。導師對學生很支援,隻要是切實需要的,經費足夠,一般都能滿足,并且還不定期提供相關經費支援學生學習。

我的第二個項目是做的是一個麥克納姆移動平台,後來在這個基礎上又開始了新的項目,這個不再多說。當時,從小車的機械結構到軟體程式設計,每一個地方都需要考慮到。由于資金限制,不能使用價格較高的(RM)電機,于是采用工業無刷電機,導緻電機驅動要重新選型。電機轉矩轉速?小車載重?輪速回報用什麼方式?編碼器用霍爾還是光電?信号采集用單片機還是FPGA?實時性怎麼樣?底盤和上層采用什麼方式通訊?供電等等,每一處都需要考慮到。這也是我第一個從頭到尾設計并完成的項目。後來,這個小車對我們參加電賽前的準備也起到了很大作用。

幸運的是,由于導師帶留學生的課程,讓我有機會和留學生交流,了解他們國家的學習生活。讓我印象最深的是一個叫Andrew的留學生,他也同樣對機器人感興趣,我們經常互相交流,在這過程中不僅建立了友誼,也讓我打開了視野,面向更廣闊的世界。

暑假期間,實驗室組隊參加了電賽,電賽是我們專業裡分量較重的比賽。參加過電賽都知道,如果沒有準備充分,三天的比賽時間那簡直是能讓人掉層頭發😂😂😂一點都不誇張。很遺憾,我們小組沒能在比賽中拿獎,不過,這次經曆也絕對讓人難忘。最後,總結一條就是準備充分準備充分準備充分,重要的事情說100遍也不為過!

這兩年實驗室的隊伍也在不斷壯大,現在每年招新都會有不少人,雖然人數沒有RM那麼多,但是其中不乏能者。實驗室也順應時代發展配備了深度學習主機,Realsense,Kinect等裝置,隻要想學習,都會有你施展才能的地方!

如果說RM讓我對嵌入式有大體了解,那麼做項目可以說是對每個知識點細緻的考察。也正是在這段時間裡,讓我意識到理論的重要性,更重要的是給了我時間去沉澱知識,去思考自己的future。

結語——自己的路

——每個人都有自己的路
           

這兩年對我來說如白駒過隙,一眨眼到了大三,也到了思考明天的時候了。每個人都有自己的路要走,但是不一定每條路都是平坦的。怎麼選是你自己的決定,怎麼走也取決于你。這兩年我有幸也認識了很多為自己的夢想奮鬥的人,有的從電子轉去做創投,有的考了公務員,Anyway,just Follow Your Heart!