物聯網專業的學習方向,嵌入式該如何學習?
目前本科物聯網專業大三,之前學了C語言,51單片機和Linux,不算精通但是日常使用沒問題,了解過c++。最近想要學習圖像處理例如opencv,但是聽說入門不簡單,而且就業希望走嵌入式行業,突然特別迷茫,不知道下一步該學習什麼。並且看最近小米的物聯網家居已經做出了規模,想向其努力需要怎麼學習?
呃,不知道下一步該學習什麼,這個有點憂傷。
看題主有關注小米的物聯網家居,心嚮往之又拔劍四顧心惘然的話,這裡有個取巧的方法:
直接去看小米的物聯網子公司招什麼樣的人,要求有什麼不就得了嗎,下面是摘自某招聘網站:
----------------------------------------------------------------------------
嵌入式軟體工程師
深圳綠米聯創科技有限公司
崗位職責:
1.負責公司網關類智能設備產品的嵌入式軟體開發;
2.不同平台下嵌入式系統軟體分析規劃、系統框架設計,功能模塊開發,技術難點攻關等;
3.及時編寫各種文檔和標準化資料。
任職要求:
1.本科以上學歷,計算機、通信、電子等相關專業;
2.3年以上嵌入式軟體開發經驗;
3.精通嵌入式系統,精通C/C++;
4.熟悉微控制/處理器及各類SOC,至少精通一種CPU架構(MIPS,ARM等),熟練彙編語言;
5.熟悉底層軟體/firmware開發;
6.熟練各種常用硬體介面、感測器設備的驅動開發和調試;
7.熟悉RTOS/Linux等操作系統,具備系統級軟體架構設計、搭建和開發以及配置管理能力;
8.能夠獨立分析和解決問題,有責任心和抗壓能力;
9.有各種網路通信,wifi、藍牙、Zigbee等,相關經驗優先。
————————————————————————————
完
買塊開發版,按照教程,把實驗做一遍。只有大型公司才會分的那麼細,硬體軟體分開開發,中小型公司,一般都要求你軟硬體都要懂,你可以精通系統,但是硬體基礎也要有。
多敲代碼
關於話題回答:
看了問題覺得您基礎可能還不是很紮實,學習不在乎多在乎精。我也大三,機械設計製造機器自動化專業當然回答這個問題現在已經是大三下學期了在學校的時間不多,暑假已經可以實習,紮實基礎是開發的前提(單片機開發基礎,C/C++基礎,通信協議,感測器 ... ...)這裡最重要的就是語言基礎和開發框架,51Linuxopencvlib只是工具沒有紮實的開發語言基礎這些東西還是很難進行的。最近可以著手做一些項目,比如平衡車(實現已知環境路徑規劃)或者無人機(加入超聲波,光流定位)一定要自己完成認真敲好每一個代碼,看其他開源項目源碼時要理解每一句代碼的意思,多想想為什麼,自己來做會用什麼方法。
關於如何學習嵌入式(普通私立本科院校,以下內容、項目都是自學來的沒有學長老師帶)
這個問題可能有很多好的答案了我根據自己的學習經理回答一下給初學者一些建議:
最重要:數學/英語/梯子/謙虛
大一上學期買一塊51單片機(推薦買模塊化開發板【德飛萊51】,以後學習做項目會用得到)開始做開發版上的項目,這時候有人會問我C語言不行啊,不要急先學51單片機,把裡邊的項目做完一半的時候開始學習C語言,到指針的時候可能會卡住不理解指針怎麼回事,不要急慢慢學多看資料和實踐一定要自己多練習,多巧代碼。51單片機的書也要看一遍一遍的看。完成一個項目51尋跡小車。暑假紮實C語言基礎,arduino也要學習一下。
大一下學期找找學校相關的實驗室社團,跟著學長做項目學習,多接觸多學習切記要謙虛,問了問題說謝謝,大家都很忙的。stm32開發板,51學習是入門,進階做項目stm32還是很順手的,如果您是學生一定要先學一下51單片機在進行stm32的學習,不要直接學習stm32會頭大,沒有C語言基礎和單片機開發基礎進行學習嚴重打擊學習積極性。從庫函數出發到寄存器。暑假紮實C語言基礎,看看HTML/CSS(web開發)
大二上學期著手準備平衡車或無人機的開發搜集資料論文,安裝Ubuntu進行Linux的學習,ubunu下基本命令使用,C/C++編寫編譯 vim 數據結構 MySQL apache ftp 自己閑了可以搭建一個簡單的網站。接著學習python從基礎語法到基礎庫應用,覺得Ubuntu可以了買一塊樹莓派用python語言實現一個尋跡小車,當然大二可能還會參加一些比賽。如果掌握以上內容,可以在學校找領導要一些經費來做平衡或無人機,前提你的代買和開發基礎沒問題。暑假學習C++
大二下學期做無人機或者平衡車項目,可以看下一slam相關的書。關於slam你會學到很多新知識這時候會覺得數學很重要,關於slam不在多說。FPGA也要開始學習一下,買一塊開發版做一些小項目。大二下學期結束MATLAB會學的,可以了解一下。暑假學習一下JAVA不用精通看的懂就行
大三上學期根據您的平衡車和無人機跟slam結合出完整項目。我現在大三就寫到這裡了手裡的項目是圖書館尋書機器人(stm32寫了一個平衡車當做驅動)基本流程:樹莓派Python爬取圖書館網站數據定位根據已知地圖尋找最短路徑,帶領找書人找到圖書位置。
目前自己差到哪裡:C/C++語言不夠熟練,數學基礎差,英語還在學習。
謝邀
嵌入式學習無非是從軟硬體兩方面學習。
軟體的話,編程語言要掌握:彙編(一些硬體初始化只能用彙編寫),C(如果能掌握C++更好,不過C也夠用了);另外就是嵌入式操作系統,要會對操作系統進行剪裁,常用的操作系統有Windows CE(好像是CE,記不清了),VXworks(貴的離譜,但是好用),Linux(免費的,比較普及),操作系統建議題主學Linux。
硬體:硬體在於積累的,CPU,以及外設,這個學習起來建議結合實物,去買塊開發板,或者如果題主在念大學的話可以進個相關的實驗室會幫你省很多買晶元或者工具的錢的,另外還有學長老師指導,還可以參加比賽做項目增長經驗,嵌入式相關工作的前景不錯的,特別是嵌入式軟體的薪酬,比硬體高出不是一點,當然不是指剛入職場時。
個人建議大三暑假期間可以去找個實習,實習完之後收貨蠻大的。如果不準備考研,差不多該準備找工作了,校招的的時間金九銀十。
推薦閱讀:
※兒童手錶真的有宣傳的那般美好?
※ChinaJoy最觸動電競玩家的IP是什麼?
※用樹莓派+nodejs開發物聯網實時圖傳機器人
※青蓮晚報 | 物聯網安全多知道
※都說智能製造,卻很少有人注意到一直在制約智能製造發展的4個問題