用於找工作的自我介紹
本科
大二開始接觸嵌入式, 剛開始主要是學習51, 430, stm32一些微控制器, 裸機程式設計, 做過一些電子DIY小設計, 比如: 參加電賽的音訊數字處理器, 自平衡小車, 拋投遙控機器人, 四驅漂移遙控小車(本科畢業設計)
參加電賽的音訊數字處理器(主要是做音訊訊號的放大, 保證音訊訊號不失真(嘯叫抑制處理), 且能夠濾掉噪聲(帶通濾波器) -- 基於430處理器)
- 自平衡小車(積分分離pid, mpu6050感測器, 光柵編碼器, stm32輸出PWM波控制電機驅動)
- 積分分離pid, 根據誤差大小選擇是否選用p環節(即積分環節)
- 引入積分環節的目的主要是為了消除靜差(靜態誤差),提高控制精度
- 但在過程的啟動、結束或大幅度增減設定時,短時間內系統輸出有很大的偏差,會造成PID運算的積分積累,致使控制量超過執行機構可能允許的最大動作範圍對應的極限控制量,引起系統較大的振盪(一會兒正轉, 一會兒反轉),這在生產中是絕對不允許的
- 積分分離控制基本思路是,當被控量與設定值偏差較大時,取消積分作用,以免由於積分作用使系統穩定性降低,超調量增大;(誤差大的時候不用積分環節, 只用pd)
- 當被控量接近給定量時,引入積分控制,以便消除靜差,提高控制精度(誤差小的時候再加上積分環節)
- 積分分離主要體現了一個分段的思想
if (abs(pid.err) > 200) { index = 0; } else { index = 1; pid.integral += pid.err; //積分就是指錯誤的積累, 對每次迭代出來的誤差(目標值 - 當前指)求和 //微分環節就是指這次這次誤差與上次誤差的差值(做減法) //比例環節就是直接乘以一個比例常數 } pid.voltage = pid.Kp * pid.err + pid.Ki*pid.integral + pid.Kd*(pid.err - pid.err_last);
- 拋投遙控機器人(有視訊傳輸的功能, 遙控器是用2.4G的串列埠透傳模組)
- 還是基於stm32來做的, 這個小專案的主要挑戰是小型化設計, 和安全效能上的挑戰, 影象透傳
- 四驅漂移遙控小車(本科畢業設計)
- 簡單的運動控制演算法和差速轉彎控制演算法(pwm波輸出控制波形)
- NRF24L01無線模組(SPI全雙工通訊協議)
- 全橋驅動晶片A4973(Allegro公司)
- 本科自己做了一些事情, 但思維方式比較固定(缺少一些探索本質的精神), 而且當時自己的視野比較窄, 對未來的預判和掌握不太準, 基礎資料結構與演算法, 程式設計, 作業系統還比較欠缺
研究生階段
- 主要惡補了一些資料結構與演算法, 作業系統, 程式設計相關的知識
- 看過的書籍: (其實這些書自己只是停留在看看上面, 並沒有很好的實踐, 那為什麼不從現在開始好好實踐呢?)
- 《c三劍客》
- 《CSAPP深入理解計算機系統》
- 《Unix環境高階程式設計》
- 《STL原始碼剖析》
- 《演算法導論》
- 《effective C++》
- 《Unix網路程式設計》
- 《現代作業系統》
- 看過的書籍: (其實這些書自己只是停留在看看上面, 並沒有很好的實踐, 那為什麼不從現在開始好好實踐呢?)
- 研究生期間自己主要集中大量的精力在學習上, 專案參加不太多
- 找工作最重要的其實是: 專案在於精而不在於多, 要做到專案知其然知其所以然的效果, 不要只停留在表面(切記)
- 慘痛的教訓是: 要養成隨時記錄筆記的習慣(面試工程中往往會問道很多細節問題)
- 主要參與的是一個可穿戴專案(畢業設計), 發了一篇專利和一篇SCI論文
- 參加了兩屆華為軟體精英挑戰賽(類似ACM的比賽, 但是以解決工業界的實際問題為出發點)
- 第一年賽區初賽第9, 複賽第15
- 第二年賽區初賽第20, 複賽第7
- 在一家做無人駕駛的初創公司實習過3個月左右的時間, 做了一個底盤模擬器的server伺服器專案
主要會的技能
- C/C++, Linux環境程式設計, 作業系統相關的基礎知識
找工作的方向
- 找工作的方向: 主要集中在兩個方向, 嵌入式軟體開發或C++後臺開發
- Java的基本語法自己大致的過了一遍, 感覺和C++有很多共通的地方
- 自己的優勢: 對新技術敏感, 注重基礎知識的鞏固
- 自己的缺點: 交流溝通上還需要進一步的加強, 擴充自己的語言表達能力和理解能力(要更多的站在別人的位置上思考問題)