計競賽備賽核心指南:從系統(tǒng)設(shè)計到實戰(zhàn)調(diào)試)
2021年第一次電設(shè)競賽培訓(xùn)成功舉辦這個標(biāo)題看起來像是一則校園新聞但真正參加過電設(shè)競賽的人都知道一場培訓(xùn)背后藏著的是整個備賽周期的起點、方向和方法論。作為連續(xù)帶過幾屆電設(shè)隊伍的老兵我太清楚這場培訓(xùn)的含金量了——它不是在講“這個芯片怎么用”“那個傳感器怎么接”而是在幫所有參賽者回答一個最要命的問題從拿到題目到交上作品這四天三夜到底該怎么過。這篇文章我就以2021年第一次電設(shè)競賽培訓(xùn)為引子把電設(shè)競賽從備賽到實戰(zhàn)的完整邏輯拆開講透。不管你是第一次接觸電設(shè)的新人還是已經(jīng)打過一次醬油想認(rèn)真沖獎的老手這篇內(nèi)容都能幫你建立一套清晰的備戰(zhàn)框架。1. 內(nèi)容整體設(shè)計與思路拆解1.1 電設(shè)競賽到底在比什么很多新人一開始就把電設(shè)競賽理解成“焊板子比賽”或者“編程比賽”這個認(rèn)知偏差會在備賽階段帶來很大的誤導(dǎo)。電設(shè)競賽的全稱是大學(xué)生電子設(shè)計競賽它表面上看是比誰的作品功能多、性能強(qiáng)但本質(zhì)上比的是系統(tǒng)設(shè)計能力——在你拿到題目之后能不能用有限的器件、有限的時間、有限的人力搭建出一個完整可用的電子系統(tǒng)。這就好比你開一家餐廳不是比誰會炒的菜多而是比誰能在食材有限、時間有限、客人還在催菜的情況下把一桌菜穩(wěn)穩(wěn)當(dāng)當(dāng)端上去。電設(shè)競賽的題目往往是一個具體的應(yīng)用場景比如信號采集、功率變換、運(yùn)動控制、無線通信你需要根據(jù)題目要求選擇主控、設(shè)計電路、寫算法、調(diào)參數(shù)、做結(jié)構(gòu)最后在評測現(xiàn)場讓作品穩(wěn)定跑起來。2021年第一次電設(shè)競賽培訓(xùn)最有價值的地方恰恰是它在一開始就把這個“系統(tǒng)觀”傳遞給了參賽者。培訓(xùn)沒有一上來就塞一堆數(shù)據(jù)手冊而是先幫大家建立了對競賽全流程的認(rèn)知題目怎么解讀、方案怎么選型、時間怎么分配、評測怎么應(yīng)對。這個思路我覺得特別對因為很多隊伍輸?shù)舯荣惒皇禽斣诩夹g(shù)實力上而是輸在“一開始就跑偏了方向”。1.2 培訓(xùn)內(nèi)容的架構(gòu)邏輯一場合格的電設(shè)培訓(xùn)不應(yīng)該只是知識點的羅列而應(yīng)該是一條完整的“從認(rèn)知到實戰(zhàn)”的鏈路。我見過不少培訓(xùn)請了幾個老師輪流講PPT講完就散場學(xué)生聽得云里霧里回去還是不知道怎么下手。2021年這一次培訓(xùn)的安排從架構(gòu)上來看是比較合理的它至少覆蓋了四個層面。第一層是競賽規(guī)則與評分標(biāo)準(zhǔn)解讀。這一層解決的是“方向問題”。很多隊伍到評測現(xiàn)場才第一次認(rèn)真看評分細(xì)則結(jié)果發(fā)現(xiàn)自己辛辛苦苦做出來的功能根本不在評分點上或者評分權(quán)重很低反而把大量時間花在了無關(guān)緊要的指標(biāo)上。培訓(xùn)一開始就把題目類型、評分維度、時間節(jié)點講清楚能讓參賽者從一開始就把力氣花在刀刃上。第二層是核心模塊的技術(shù)儲備。電設(shè)競賽的題目雖然每年都在變但核心模塊是相對固定的電源、信號調(diào)理、ADC/DAC采樣、電機(jī)驅(qū)動、無線通信、顯示交互。這些模塊就像餐廳里的基礎(chǔ)食材不管客人點什么菜你都得先備好蔥姜蒜。培訓(xùn)把這些基礎(chǔ)模塊的原理和典型電路過了一遍相當(dāng)于給參賽者發(fā)了一套“基礎(chǔ)菜譜”。第三層是往年真題的拆解與復(fù)盤。這一層是最有含金量的。真題不是用來“刷”的而是用來“拆”的——拆解題思路、拆方案選型、拆時間分配、拆常見坑點。2021年培訓(xùn)中專門安排了往屆優(yōu)秀作品的分析環(huán)節(jié)我記得當(dāng)時拆了一道控制類題目從傳感器選型、控制算法、機(jī)械結(jié)構(gòu)到代碼框架一步步還原了整個設(shè)計過程。這種復(fù)盤的價值比你自己悶頭做十個練習(xí)都大。第四層是實戰(zhàn)演練與實驗室資源對接。培訓(xùn)最終落在了動手環(huán)節(jié)讓參賽者分組完成一個小的功能模塊同時告知實驗室的設(shè)備資源、元器件庫、焊接工具、測試儀器的使用規(guī)范。這個安排特別重要因為電設(shè)競賽不是“紙上談兵”你的方案再好焊出來不能跑一切都是零。1.3 為什么2021年這屆培訓(xùn)值得單獨說有人可能會問每年都有培訓(xùn)為什么單獨把2021年這一次拎出來說原因有幾個。第一個原因是培訓(xùn)時間節(jié)點選得好。2021年這第一次培訓(xùn)安排在賽前比較早的階段留足了“認(rèn)知—儲備—實戰(zhàn)—優(yōu)化”的周期。很多隊伍是臨近比賽才開始沖刺而這次培訓(xùn)等于把備賽周期拉長了讓參賽者有時間試錯、有時間迭代。第二個原因是培訓(xùn)內(nèi)容分層合理。不是所有人都有硬件基礎(chǔ)也不是所有人都擅長編程。這次培訓(xùn)在內(nèi)容設(shè)計上照顧到了不同基礎(chǔ)的參賽者基礎(chǔ)模塊講原理和電路進(jìn)階內(nèi)容給拓展思路實戰(zhàn)環(huán)節(jié)讓大家自由組隊分工。這種分層設(shè)計能讓每個參賽者都找到自己的切入點。第三個原因是培訓(xùn)請來了有實戰(zhàn)經(jīng)驗的人做分享。這一點我特別看重。電設(shè)競賽不是靠理論推導(dǎo)就能贏的很多經(jīng)驗是“只有踩過坑才知道”的。比如你辛辛苦苦調(diào)好的PID參數(shù)一到現(xiàn)場換了環(huán)境就飄了比如你精心設(shè)計的PCB板打樣回來發(fā)現(xiàn)封裝錯了。這些坑書上不會寫老師不一定講只有真正打過比賽的人才能告訴你。2021年這次培訓(xùn)至少有往屆獲獎隊伍的成員參與了分享這比任何PPT都有說服力。2. 核心細(xì)節(jié)解析與實操要點2.1 賽題類型與主控選型的底層邏輯電設(shè)競賽的題目按照我的經(jīng)驗可以粗略分成幾大類電源類、信號類、控制類、通信類、儀器儀表類以及這幾年越來越常見的綜合應(yīng)用類。不同類型題目對主控的需求差異極大選錯了主控后面所有工作都會很痛苦。電源類題目一般要求做高效率的DC-DC變換、逆變、充電管理等這類題目對主控的實時性要求不高但對PWM分辨率、ADC采集精度、保護(hù)邏輯的可靠性有要求。常見的方案是STM32系列配合專門的電源控制芯片或者直接用數(shù)字電源控制器加MCU做監(jiān)控。信號類題目圍繞信號采集、濾波、放大、頻譜分析展開這類題目對ADC采樣率、FFT運(yùn)算能力、模擬前端設(shè)計能力要求很高。主控一般選帶高速ADC或者可以外接高速ADC的MCU比如STM32F4系列、GD32F4系列復(fù)雜一點的會用到FPGA做并行采樣??刂祁愵}目是很多隊伍的心頭痛比如倒立擺、風(fēng)力發(fā)電、無人機(jī)飛行、小車追蹤等。這類題目對實時控制、傳感器融合、算法迭代要求極高。主控選型要兼顧計算能力和外設(shè)接口豐富度STM32F4或H7系列是主流選擇處理復(fù)雜非線性控制時會用到DSP或者更高性能的處理器。通信類題目這幾年熱度很高涉及無線收發(fā)、調(diào)制解調(diào)、信號編解碼等。主控需要有足夠快的處理速度同時要熟悉常用無線模塊的接口協(xié)議。常見組合是STM32加LoRa模塊、nRF24L01模塊、藍(lán)牙模塊等復(fù)雜一點的會用到SDR軟件定義無線電平臺。這里我給新手一個非常實在的建議不要迷信“性能越強(qiáng)越好”。電設(shè)競賽拼的是在規(guī)定時間內(nèi)把系統(tǒng)做出來你選了一片自己完全不熟悉的H7系列芯片光啃寄存器手冊就要啃兩周那還不如老老實實用自己熟悉的F1系列。選型的第一原則是“用你最有把握的器件”第二原則才是“滿足性能需求”。2.2 電路設(shè)計的核心原則與細(xì)節(jié)電路設(shè)計是電設(shè)競賽的基本功但也是最容易出問題的地方。我在培訓(xùn)中經(jīng)常跟參賽者強(qiáng)調(diào)一句話電路設(shè)計不是畫原理圖而是畫“可靠性”。首先是電源設(shè)計。很多隊伍的電賽作品死在電源上不是電源芯片選得不夠好而是布局布線出了問題。DC-DC芯片的開關(guān)節(jié)點、反饋回路、輸入輸出電容的位置都會直接影響紋波大小和穩(wěn)定性。我的經(jīng)驗是電源部分的PCB布局要按照數(shù)據(jù)手冊里的參考設(shè)計來不要“憑感覺”改布局。輸入電容要靠近芯片的VIN引腳反饋電阻要遠(yuǎn)離電感地平面要完整這些細(xì)節(jié)決定了你的電源能不能穩(wěn)定工作。其次是信號完整性。信號類題目中模擬信號的處理路徑要盡量短走線要避開數(shù)字電路的高頻噪聲源。如果你用的是ADC采樣模擬地和數(shù)字地要合理分割采樣時鐘要干凈參考電壓要穩(wěn)定。很多隊伍調(diào)不出精度焊了好幾次板子最后發(fā)現(xiàn)是ADC參考電壓紋波太大——這種問題常規(guī)的調(diào)試很難發(fā)現(xiàn)必須在設(shè)計階段就規(guī)避。再就是接口保護(hù)。電設(shè)競賽的現(xiàn)場環(huán)境比較“惡劣”很多隊伍的作品在評測時被手一碰就掛了原因就是接口沒有保護(hù)。按鍵、接口、對外連接器的信號線建議加上TVS管或者簡單的RC濾波電源輸入口要加防反接電路和保險絲。這些設(shè)計雖然占一點面積但能讓你的作品在現(xiàn)場評測時穩(wěn)定得多。2.3 代碼框架與算法實現(xiàn)的工程化思路很多參賽者寫代碼是“邊寫邊想”想到哪寫到哪最后代碼混亂不堪一調(diào)試就崩潰。電設(shè)競賽的代碼量其實不小尤其是控制類題目涉及傳感器初始化、數(shù)據(jù)采集、控制算法、通信協(xié)議、狀態(tài)顯示等多個模塊。如果沒有一個清晰的代碼框架你會在調(diào)試階段浪費(fèi)大量時間。我建議采用模塊化分層設(shè)計。底層是驅(qū)動層負(fù)責(zé)初始化外設(shè)、封裝傳感器讀取函數(shù)、輸出PWM等中間是算法層負(fù)責(zé)PID控制、濾波、FFT等核心算法上層是應(yīng)用層負(fù)責(zé)狀態(tài)機(jī)切換、參數(shù)設(shè)置、數(shù)據(jù)顯示。每一層之間用清晰的接口連接不要跨層調(diào)用。這里分享一個我自己的代碼組織習(xí)慣把參數(shù)配置和算法實現(xiàn)分離。所有需要調(diào)試的參數(shù)PID系數(shù)、采樣率、濾波截止頻率、控制目標(biāo)值統(tǒng)一放在一個配置文件或者結(jié)構(gòu)體里這樣在調(diào)參的時候不需要翻遍整個代碼去找散落的宏定義。實測下來這個習(xí)慣能節(jié)省大量調(diào)試時間。控制算法方面PID是電設(shè)競賽的“萬金油”但不要以為PID就是抄一段代碼就完事。你需要理解位置式PID和增量式PID的區(qū)別理解積分限幅和微分先行這兩種改進(jìn)策略理解輸出限幅和抗飽和機(jī)制。2021年培訓(xùn)中專門花了時間講解PID參數(shù)的整定方法從經(jīng)驗法到臨界比例度法再到仿真調(diào)參每一步都講得比較透。掌握這些你會發(fā)現(xiàn)在實際調(diào)試中“調(diào)參”從玄學(xué)變成了方法論。2.4 機(jī)械結(jié)構(gòu)與系統(tǒng)集成的配合電設(shè)競賽的很多題目不只是電子問題還是一個系統(tǒng)工程問題比如控制類的倒立擺、風(fēng)力發(fā)電、跟隨小車都需要設(shè)計機(jī)械結(jié)構(gòu)。很多電子專業(yè)的學(xué)生在這里會踩坑——他們擅長寫代碼、畫板子但一到做結(jié)構(gòu)就抓瞎。我的建議是機(jī)械結(jié)構(gòu)要越簡單越好可靠性優(yōu)先于“高級感”。華而不實的3D打印外殼、復(fù)雜連桿結(jié)構(gòu)不僅加工周期長還容易在評測現(xiàn)場掉鏈子。2021年培訓(xùn)中分享的一個小車方案就非常典型車架用亞克力板切割電機(jī)用TT馬達(dá)加編碼器輪子用標(biāo)準(zhǔn)的橡膠輪結(jié)構(gòu)簡單到不能再簡單但跑起來特別穩(wěn)因為重心低、結(jié)構(gòu)剛性夠、驅(qū)動容易控制。系統(tǒng)集成方面還有一個容易忽略的問題模塊之間的電氣耦合。電機(jī)啟動時的浪涌電流會導(dǎo)致電壓跌落從而讓單片機(jī)復(fù)位繼電器吸合時會產(chǎn)生反向電動勢干擾傳感器信號。這些問題在單獨調(diào)試時不會出現(xiàn)只有在整機(jī)聯(lián)調(diào)時才會暴露。所以我建議在系統(tǒng)設(shè)計階段就做好電源隔離、信號隔離和去耦處理不要等聯(lián)調(diào)出了問題再回頭改那時候改板子、改結(jié)構(gòu)的成本就很高了。3. 實操過程與核心環(huán)節(jié)實現(xiàn)3.1 從真題出發(fā)經(jīng)典控制類題目的完整拆解為了讓這篇博文不只是空洞的“方法論”我拿一個經(jīng)典的控制類賽題來走一遍完整流程——風(fēng)力發(fā)電模擬裝置。這個題目是往年電設(shè)競賽中出現(xiàn)過的非常適合用來演示“題目解讀→方案選型→系統(tǒng)實現(xiàn)”的完整鏈路。拿到題目后第一步不是打開芯片手冊而是拆解題目需求。風(fēng)力發(fā)電模擬裝置一般要求你用風(fēng)扇模擬風(fēng)力帶動風(fēng)輪轉(zhuǎn)動然后通過發(fā)電機(jī)把機(jī)械能轉(zhuǎn)化為電能同時要檢測風(fēng)速、轉(zhuǎn)速、輸出電壓等參數(shù)實現(xiàn)最大功率點追蹤MPPT。把題目拆開核心功能單元就四個風(fēng)源模塊風(fēng)扇、風(fēng)輪與發(fā)電機(jī)模塊、電能變換模塊整流、DC-DC、檢測與控制系統(tǒng)模塊。第二步是方案選型。主控我選STM32F103系列就夠用因為它要干的活是采集風(fēng)速傳感器、編碼器轉(zhuǎn)速、電壓電流信號然后通過PWM控制DC-DC變換器的工作點計算量并不大。發(fā)電機(jī)我選擇小型的直流發(fā)電機(jī)好處是輸出直流電不需要復(fù)雜的整流電路。風(fēng)扇選擇電腦用的12V無刷風(fēng)扇風(fēng)速控制好實現(xiàn)功率也夠。整套方案下來除了主控板和傳感器模塊其他基本是標(biāo)準(zhǔn)件采購成本低調(diào)試難度也適中。第三步是電路設(shè)計。這里重點說一下DC-DC變換部分。要用MCU實現(xiàn)MPPT最直接的方法是做一個Buck電路通過PWM占空比調(diào)節(jié)負(fù)載等效電阻從而改變發(fā)電機(jī)工作點。Buck電路的關(guān)鍵器件選型要算一下輸入電壓是發(fā)電機(jī)最大輸出電壓假設(shè)是12V輸出給負(fù)載假設(shè)電壓是5V、電流是1A。開關(guān)頻率我選100kHz電感紋波電流取輸出電流的20%到30%也就是大概0.25A。電感值計算公式是 L (Vin - Vout) × D / (f × ΔI)占空比D約為5/120.417算出來L約為 (12-5)×0.417/(100000×0.25)約等于0.117mH所以選120uH左右的功率電感就合適。輸出電容的選型要保證輸出電壓紋波在可接受范圍內(nèi)一般取低ESR的鉭電容或陶瓷電容容值按經(jīng)驗取100uF到220uF。第四步是控制算法實現(xiàn)。MPPT最常見的實現(xiàn)方法是擾動觀察法每隔一小段時間給占空比加一個小的步進(jìn)然后觀察輸出功率是增大還是減小如果增大就繼續(xù)往這個方向調(diào)節(jié)如果減小就反向調(diào)節(jié)。這個算法非常簡單但要注意兩個問題擾動步長不能太大否則輸出會在最大功率點附近劇烈震蕩采樣周期要避開系統(tǒng)瞬態(tài)響應(yīng)時間否則測得的功率變化是系統(tǒng)響應(yīng)引起的不是擾動引起的。我實際調(diào)試時擾動步長取1%的占空比采樣周期取100ms左右系統(tǒng)穩(wěn)定性和追蹤速度都比較滿意。第五步是結(jié)構(gòu)與系統(tǒng)集成。風(fēng)輪我用的是三葉塑料螺旋槳直徑選了20cm左右的太大太小都會影響風(fēng)力到機(jī)械能的轉(zhuǎn)換效率。發(fā)電機(jī)和風(fēng)輪之間用聯(lián)軸器直接連接省去齒輪傳動帶來的損耗和裝配麻煩。整個裝置固定在一個厚實的底座上重心要低否則風(fēng)扇一吹裝置就晃。檢測傳感器方面風(fēng)速用風(fēng)機(jī)自身的轉(zhuǎn)速脈沖來間接估算發(fā)電機(jī)輸出電壓用電阻分壓后直接采ADC輸出電流用低邊采樣電阻加運(yùn)放放大后采集。3.2 培訓(xùn)現(xiàn)場實操模擬信號采集與顯示系統(tǒng)的搭建在真正備賽時我建議每個參賽小組在培訓(xùn)后立刻做一個“熱身項目”目的不是做得多高端而是把完整流程跑一遍。這里給你一個非常適合熱身的題目設(shè)計一個簡易的信號采集與顯示系統(tǒng)要求通過ADC采集一個模擬信號進(jìn)行數(shù)字濾波后在顯示屏上實時顯示波形。第一步搭建硬件平臺。你需要一塊STM32F103核心板、一個1.3寸或者2.4寸的SPI接口TFT屏、一個電位器作為模擬信號源、幾顆電容電阻以及一個面包板或者洞洞板。把這些器件按照電路圖連接起來注意STM32的ADC引腳不要和SPI引腳沖突否則后面調(diào)試會非常痛苦。第二步初始化ADCDMA。ADC采集要用DMA模式目的有二一是減輕CPU負(fù)擔(dān)讓處理器有時間去處理顯示邏輯二是保證采樣的連續(xù)性DMA會把ADC的數(shù)據(jù)源源不斷地搬運(yùn)到緩沖區(qū)不需要CPU頻繁響應(yīng)中斷。第三步實現(xiàn)簡單的數(shù)字濾波。采集到的原始信號必然有噪聲你可以實現(xiàn)一個滑動平均濾波在緩沖區(qū)中取最近的N個采樣值求平均。N越大濾波越平滑但信號響應(yīng)越慢這就是一個典型的“平滑度 vs 實時性”取舍。我建議N取16到32之間既能明顯抑制噪聲又不會讓波形變得遲鈍。第四步驅(qū)動TFT屏顯示波形。TFT屏的SPI接口驅(qū)動在嵌入式里是一個成熟模塊你在網(wǎng)上能搜到很多庫。但我不建議你直接抄別人封裝好的復(fù)雜庫因為那種庫往往很大效率也不一定高。更建議自己從零寫一個簡單的“畫點畫線”函數(shù)屏幕上留出一塊波形顯示區(qū)把ADC采樣值映射到顯示區(qū)的高度然后從左到右畫線實時刷新。第五步聯(lián)調(diào)與驗證。調(diào)節(jié)電位器給信號疊加一個低頻變化觀察屏幕刷新是否正常波形是否穩(wěn)定。如果你發(fā)現(xiàn)波形有嚴(yán)重的毛刺優(yōu)先檢查ADC參考電壓是否穩(wěn)定如果發(fā)現(xiàn)屏幕刷新閃爍考慮使用雙緩沖或者加快SPI時鐘。這個項目雖然很簡單但跑完之后你必須具備的幾項能力就全有了ADC采集、DMA傳輸、軟件濾波、屏幕驅(qū)動、系統(tǒng)聯(lián)調(diào)。這些能力是電設(shè)競賽的地基地基不穩(wěn)后面做什么都難受。3.3 備賽小組的時間分配與分工建議2021年培訓(xùn)結(jié)束后我相信很多參賽小組面臨的最現(xiàn)實的問題就是我們到底應(yīng)該怎么分工時間怎么排。這里我給出一個經(jīng)過多次驗證的備賽周期分配方案供參考。備賽周期總時長假設(shè)為8周這是比較常見的一個賽前準(zhǔn)備周期。第1周是“方案確定周”。這一周的核心任務(wù)是吃透歷年真題確定自己小組的主攻方向。不要貪多選一個你最可能做出來且評分權(quán)重高的題型集中火力。同時確定主控平臺、傳感器方案、基本結(jié)構(gòu)方案把元器件采購清單列出來盡快下單。第2-3周是“模塊驗證周”。這一周要把系統(tǒng)拆成獨立的模塊逐個驗證電源模塊能否穩(wěn)定輸出、傳感器能否正確讀數(shù)、電機(jī)能否正常驅(qū)動、屏幕能否正常顯示。任何模塊驗證失敗都要在這一階段解決不要拖到后面。第4-5周是“系統(tǒng)集成周”。把驗證過的模塊整合在一起搭建完整的原型系統(tǒng)。這個時候你會遇到各種聯(lián)調(diào)問題信號干擾、電源波動、時序沖突、結(jié)構(gòu)干涉。這一段是最容易焦慮的階段但也是能力提升最快的階段。第6-7周是“性能優(yōu)化周”。系統(tǒng)能跑之后就要開始摳評分點。對照評分標(biāo)準(zhǔn)逐項檢查速度快不快精度高不高功耗低不低操作方便不方便針對每一個可能的得分點做專項優(yōu)化。同時把代碼和電路圖做一次“凍結(jié)”不要繼續(xù)大改了。第8周是“模擬評測周”。按照比賽的完整流程進(jìn)行模擬評測。從拿到題目到作品完成、現(xiàn)場演示全部按真實比賽節(jié)奏來。模擬評測的意義在于暴露出“臨場才會出現(xiàn)”的問題時間分配不合理、團(tuán)隊成員銜接不暢、作品頻繁死機(jī)、演示流程不熟練。小組分工方面我建議按“軟硬分離、一人統(tǒng)籌”的原則。三人小組最合理的分工是一人負(fù)責(zé)硬件電路設(shè)計與焊接調(diào)試一人負(fù)責(zé)嵌入式軟件與算法實現(xiàn)一人負(fù)責(zé)結(jié)構(gòu)與系統(tǒng)聯(lián)調(diào)、文檔整理和統(tǒng)籌規(guī)劃。統(tǒng)籌人非常關(guān)鍵他要對整個系統(tǒng)的進(jìn)度負(fù)責(zé)要知道每個模塊的當(dāng)前狀態(tài)要能協(xié)調(diào)兩個人的接口對接而不是埋頭做自己的任務(wù)。3.4 元器件與工具的準(zhǔn)備清單電設(shè)競賽備賽中“手里沒料”是最耽誤事的。我建議每個參賽小組建立一個“元器件儲備清單”常見的東西一定要有庫存不能等到比賽前一天才想起來缺一個電阻。必備的通用器件清單主控芯片或核心板STM32F103C8T6核心板至少2塊F401/F407核心板至少1塊電源芯片AMS1117-3.3、ASM1117-5.0、LM2596、MP1584、XL4015若干常用接口芯片MAX232、SP3485485通信、TLP521光耦隔離若干傳感器類溫濕度傳感器DHT11、光敏電阻、霍爾傳感器、MPU6050六軸陀螺儀、編碼器若干電機(jī)驅(qū)動L298N模塊、TB6612模塊、MOS管驅(qū)動電路元件若干無線模塊nRF24L01、HC-05藍(lán)牙、LoRa模塊各至少1套顯示器件OLED屏、TFT屏、數(shù)碼管、LED指示燈若干被動元件電阻1/4W常用阻值各20-50只、電容陶瓷和電解容值范圍全覆蓋、電感常用值各10只、二極管、穩(wěn)壓管接插件排針、排母、杜邦線、接線端子、開關(guān)、按鍵、保險絲座調(diào)試工具清單萬用表必須人手一個或每組至少兩個示波器低頻模擬信號至少2通道數(shù)字信號調(diào)試建議4通道可調(diào)直流電源至少雙路輸出電壓0-30V電流0-5A電烙鐵焊臺、熱風(fēng)槍用于拆焊貼片元件邏輯分析儀或者帶邏輯分析功能的調(diào)試器ST-Link或J-Link調(diào)試器至少2個函數(shù)信號發(fā)生器用于模擬信號源和測試激勵這個清單不是讓你一次買齊所有東西你要根據(jù)自己的選題方向來調(diào)整側(cè)重。做電源類的多備電感電容和MOS管做控制類的多備傳感器和電機(jī)做信號類的多備運(yùn)放和ADC模塊。但通用器件比如STM32核心板、AMS1117、萬用表、示波器不管做什么題目都用得上不要省。4. 常見問題與排查技巧實錄4.1 硬件問題的典型癥狀與排查路徑電設(shè)競賽中80%的時間可能都在調(diào)問題。我最常聽到的求助就是“我的板子莫名復(fù)位了”“我的傳感器讀數(shù)亂跳”“我的電機(jī)跑起來咔咔響”。這些問題的背后往往有一整套常見的硬件陷阱。癥狀一單片機(jī)頻繁復(fù)位。優(yōu)先懷疑電源。用萬用表或示波器測MCU供電引腳的電壓波形看有沒有跌落。如果電壓跌落是瞬間的大概率是后級有大電流負(fù)載啟動電機(jī)、繼電器、大功率LED。排查方法是斷開所有后級負(fù)載單獨給MCU供電看是否還復(fù)位。不復(fù)位說明電源帶載能力不足或者是負(fù)載啟動沖擊太大考慮換更大功率的電源模塊、增加大容量儲能電容、或者對負(fù)載做軟啟動。如果斷開負(fù)載仍然復(fù)位就是MCU系統(tǒng)自身的問題檢查復(fù)位電路、晶振電路、電源去耦電容。癥狀二傳感器讀數(shù)漂移或跳變。優(yōu)先檢查傳感器供電的穩(wěn)定性。很多傳感器內(nèi)部有ADC對參考電壓極其敏感。如果傳感器供電直接取自系統(tǒng)電源而后級有電機(jī)在轉(zhuǎn)你的傳感器讀數(shù)必然被干擾。排查方法是用示波器觀察傳感器供電引腳看有沒有毛刺給傳感器單獨用線性穩(wěn)壓器供電再看看讀數(shù)是否穩(wěn)定。另外還要檢查傳感器和MCU之間的信號線如果用的是杜邦線且走線較長建議改成短連線或者用屏蔽線必要時加一個RC低通濾波。癥狀三繼電器或者電機(jī)動作時系統(tǒng)死機(jī)。這個基本是“反電動勢”導(dǎo)致的。繼電器線圈或者電機(jī)繞組在斷開瞬間會產(chǎn)生高壓反電動勢如果這個電壓竄到了MCU供電或者復(fù)位電路就直接導(dǎo)致死機(jī)。解決方案是繼電器線圈兩端并一個反向續(xù)流二極管1N4007系列或者1N5819電機(jī)兩端并一個陶瓷電容和TVS管同時繼電器控制信號要走光耦隔離電機(jī)電源和邏輯電源要分開。4.2 軟件問題的典型癥狀與排查路徑軟件問題最容易耗時間的地方是“不確定”。代碼跑著跑著就進(jìn)HardFault了你甚至不知道它在哪里崩的。癥狀一程序跑到不確定的地方就死機(jī)。最有效的排查工具是調(diào)試器的HardFault定位功能。用Keil或者IAR進(jìn)入調(diào)試模式當(dāng)程序卡死時查看Call Stack窗口找到進(jìn)入HardFault之前的最后調(diào)用位置。絕大多數(shù)HardFault是數(shù)組越界、野指針、堆棧溢出導(dǎo)致的。我遇到過很多次新人在中斷處理函數(shù)里定義了一個大數(shù)組直接把堆棧干爆了。建議檢查每個中斷處理函數(shù)不要把大塊代碼放進(jìn)中斷里中斷里只做置標(biāo)志位和快速數(shù)據(jù)搬運(yùn)復(fù)雜處理放到主循環(huán)中執(zhí)行。癥狀二ADC采樣值不穩(wěn)定尤其是采樣值周期性跳變。如果你用的是STM32的ADC且開啟了掃描模式或者注入通道要特別檢查采樣時間的配置。ADC的采樣時間太短會導(dǎo)致采樣電容沒有充分充電讀數(shù)偏低且不穩(wěn)定。拿STM32F103來說采樣周期配置為至少1.5us到7.5us如果信號源輸出阻抗較高建議加大采樣時間。另外如果你的ADC引腳和SPI引腳共用了一個GPIO端口SPI通信時產(chǎn)生的毛刺會通過引腳內(nèi)部寄生電容耦合到ADC導(dǎo)致采樣值跳變這一點很難查建議設(shè)計時就讓ADC引腳單獨用一個端口。癥狀三顯示刷新卡頓或者顯示內(nèi)容花屏。SPI屏的花屏大概率是初始化時序不對或者是SPI時鐘過快導(dǎo)致屏內(nèi)部狀態(tài)機(jī)沒跟上。把SPI時鐘降下來試試比如從18MHz降到9MHz很多時候花屏就解決了。顯示卡頓如果是刷一幀全屏要幾十毫秒建議不要全屏刷新只刷新變化區(qū)域或者使用MCU的DMA進(jìn)行數(shù)據(jù)搬運(yùn)CPU不需要等SPI傳輸完成就可以去干別的。4.3 比賽現(xiàn)場的突發(fā)狀況與應(yīng)急預(yù)案電設(shè)競賽評測現(xiàn)場和平時的實驗室環(huán)境差別很大。你平時在實驗室里調(diào)得再好到了現(xiàn)場可能會因為供電環(huán)境、場地電磁干擾、操作緊張等原因出各種狀況。我總結(jié)了幾條現(xiàn)場應(yīng)急經(jīng)驗算是踩過坑之后的血淚教訓(xùn)。第一一定要有備用方案。如果你的作品依賴一個特殊器件而這個器件一旦損壞現(xiàn)場又沒法立刻替換你就危險了。所以每個關(guān)鍵模塊都要有“Plan B”。比如你的主控用STM32F407如果片子在現(xiàn)場燒了你能不能立刻換一塊F103改代碼跑一個降級功能你的無線通信模塊是LoRa現(xiàn)場測試環(huán)境干擾嚴(yán)重能不能立刻切換到有線通信這種后備意識在比賽中能救命。第二現(xiàn)場演示要提前演練到位。很多作品的失敗不是技術(shù)問題而是操作問題上電順序不對、沒等系統(tǒng)初始化完就開始按按鈕、測量表筆接錯了端口。我建議在模擬評測階段把“演示腳本”寫下來上電后等幾秒、再按哪個鍵、觀察哪個現(xiàn)象、記錄哪個數(shù)據(jù)每一步都固定下來。到了現(xiàn)場照著腳本操作不要臨時發(fā)揮。第三注意電源接入方式?,F(xiàn)場評測很可能用公用電源而公用電源的紋波和噪聲通常比你在實驗室用的可調(diào)電源差得多。接入現(xiàn)場電源后你的作品如果出現(xiàn)不穩(wěn)定優(yōu)先檢查電源輸入端的濾波是否足夠。我建議在作品電源入口處加一個π型濾波器電感電容電容這個小成本改動可能就能避免一次現(xiàn)場驚嚇。4.4 排查問題時的思維方法論排查問題最容易犯的錯誤是“亂試”。一會兒懷疑這一會兒懷疑那改了一堆地方問題依然存在。我分享一個排查系統(tǒng)問題的思維框架是我自己在多屆比賽和工程項目中摸索出來的經(jīng)驗。第一步定位問題域。先搞清楚問題出現(xiàn)在哪個模塊、哪個環(huán)節(jié)。是電源、傳感器、執(zhí)行器、主控、還是算法這一步靠的是“分段隔離”。把系統(tǒng)拆成獨立模塊單獨測試每一個。如果每個模塊單獨工作都正常問題就在模塊之間的“接口”上——信號電平不匹配、時序不匹配、供電互相干擾。第二步加探針。當(dāng)你不確定問題在哪里時不要猜用工具找。在關(guān)鍵節(jié)點加示波器探針觀察信號波形在代碼關(guān)鍵處加日志輸出或斷點。示波器能看到你肉眼看不見的毛刺、尖峰、紋波。有時候問題不是不存在而是你根本沒測到那個關(guān)鍵節(jié)點。第三步復(fù)現(xiàn)問題。如果不能穩(wěn)定復(fù)現(xiàn)的問題最難排查。所以排查的第一步往往不是修而是“復(fù)現(xiàn)”。創(chuàng)造條件讓問題穩(wěn)定出現(xiàn)比如把負(fù)載加上、把采樣率調(diào)高、把環(huán)境溫度降下來。復(fù)現(xiàn)問題的過程往往就已經(jīng)告訴你了一大半答案。第四步修改一次只動一個變量。這是最容易被忽略但最重要的一條。很多新手一遇到問題同時改了好幾個地方結(jié)果問題解決了但你不知道是哪個改動解決的如果問題沒解決你更不知道是哪里沒改對。正確做法是每次只改一個變量驗證一次再改下一個。這樣排查問題的時間平均能減少一半以上。5. 從這次培訓(xùn)延伸出的長線備賽策略5.1 知識體系的持續(xù)積累2021年電設(shè)競賽培訓(xùn)只是一個起點真正的備賽是一個持續(xù)積累的過程。我身邊很多獲獎隊伍的共同特點是他們在賽前就已經(jīng)有了大量的模塊化積累。什么意思呢就是他們不是從零開始做賽題的而是在賽前已經(jīng)親手做過電源模塊、傳感器模塊、通信模塊、控制算法模塊每一種模塊都有成熟的設(shè)計方案和代碼庫。比賽時拿到題目他們做的其實是在已有的“積木”上進(jìn)行拼接和調(diào)優(yōu)而不是從零開始造輪子。所以我建議每次培訓(xùn)結(jié)束后你都要給自己排一個“模塊積累計劃”每周固定時間做一個小模塊做完之后寫總結(jié)文檔把電路原理圖、PCB文件、代碼、調(diào)試心得都?xì)w檔。這樣到了真正比賽的時候你的“武器庫”里就有足夠的彈藥了。5.2 團(tuán)隊協(xié)作的磨合方法電設(shè)競賽是三人一組的團(tuán)隊賽。團(tuán)隊水平的上限不是由最強(qiáng)的那個人決定的而是由“最弱的接口”決定的。我見過太多隊伍個人能力都很強(qiáng)但協(xié)作得一塌糊涂做硬件的不知道軟件需要哪些接口做軟件的不知道硬件實際用了哪幾個引腳做結(jié)構(gòu)的不知道電路板的安裝孔位在哪里。要避免這個問題我認(rèn)為最重要的是“接口文檔先行”。在方案確定階段就要明確主控的哪些引腳分配給哪類功能、傳感器與MCU之間用什么協(xié)議通信、數(shù)據(jù)結(jié)構(gòu)怎么定義、機(jī)械結(jié)構(gòu)和電路板的接口尺寸是多少。這些接口確定得越早、越詳細(xì)后期聯(lián)調(diào)的摩擦就越少。團(tuán)隊的日常磨合也很重要。我建議每周安排一次固定時間的“聯(lián)調(diào)日”所有成員坐在一起跑一遍當(dāng)前系統(tǒng)的最新狀態(tài)同步進(jìn)展。聯(lián)調(diào)日的核心不是干活而是對齊信息。只要信息對齊了干活的時候各干各的反而效率最高。5.3 長期復(fù)盤與經(jīng)驗傳承電設(shè)競賽每年一屆但經(jīng)驗是可以積累和傳承的。一支成熟的參賽團(tuán)隊賽后一定要做一次完整的復(fù)盤把成功經(jīng)驗和失敗教訓(xùn)都記錄下來。復(fù)盤不是只有比賽結(jié)束才做而是每完成一個階段就要復(fù)盤一次。2021年第一次電設(shè)競賽培訓(xùn)所傳遞的最重要的理念其實就是“盡早建立系統(tǒng)性認(rèn)知用工程化方法備戰(zhàn)”。真正有效率的備賽不是靠最后兩個星期的突擊而是靠整個賽前周期的持續(xù)積累、持續(xù)驗證、持續(xù)復(fù)盤。如果你現(xiàn)在正處于備賽階段我給你一個最實際的目標(biāo)讓每一次調(diào)試都比上一次更接近系統(tǒng)的本質(zhì)讓每一個問題都成為你知識體系的一部分。當(dāng)你積累了足夠多的小模塊、排查了足夠多的問題、磨合了足夠深的團(tuán)隊默契電設(shè)競賽的結(jié)果自然不會差。比賽比的從來不只是最后那四天三夜而是那之前你為這四天三夜準(zhǔn)備了多久。