AI發(fā)展日新月異,從Chat GPT的橫空出世,引發(fā)人工智能熱潮,到Gemini,Claude,Deepseek,Kimi等各路豪杰并起,科技的發(fā)展不再是以年計算,而是每月每日都在進化,并不停涌現(xiàn)出新的巨獸,讓人應(yīng)接不暇,手忙腳亂,頭暈?zāi)垦#?/span>
這次科技浪潮對嵌入式人員將產(chǎn)生什么影響?程序員會淪為工業(yè)革命時的馬車夫嗎?還是催生更多的機會?現(xiàn)在還真的很難說。就拿Claude來說,他的編程能力確實已經(jīng)到了讓人震驚的程度。
電機控制一直是嵌入式領(lǐng)域里比較難的方向,搞不好經(jīng)常有燒管子,燒電機的情況。那我們用它來測試以下AI的能力。下面是淘寶購買的一個電機驅(qū)動的套件,核心是STM32F103RCT6,通過6路PWM接至IR2101S與驅(qū)動,功率級通過IRF540N驅(qū)動,接至電機的UVW三相線。
開始我們把原理圖直接上傳給Claude,然后輸入電機的主要參數(shù),讓它直接寫一個開環(huán)控制電機跑起來的程序。可似乎不太理想,Claude試著調(diào)用Python,在本機沒找到,然后用PowerShell直接解壓PDF內(nèi)容提取文字,每頁的文本連同坐標抽出來,結(jié)果文本被拆成了碎片。有點兒失望啊!
看來大模型對電路圖的理解能力不太行啊。等等,是不是可以曲線救國?我們把電路圖用Gemini解讀一下。結(jié)果非常好,比如它對PWM驅(qū)動三相MOS管的描述非常清晰:
PWM 驅(qū)動信號流向 (連接至高級定時器 TIM1)系統(tǒng)采用 TIM1 的 3對互補 PWM 信號控制逆變橋: U相:High-Side 連接至 PA8 (TIM1_CH1) -> U相驅(qū)動IC (HIN) -> Q1;Low-Side 連接至 PB13 (TIM1_CH1N) -> U相驅(qū)動IC (LIN) -> Q2。 V相:High-Side 連接至 PA9 (TIM1_CH2) -> V相驅(qū)動IC (HIN) -> Q3;Low-Side 連接至 PB14 (TIM1_CH2N) -> V相驅(qū)動IC (LIN) -> Q4。 W相:High-Side 連接至 PA10 (TIM1_CH3) -> W相驅(qū)動IC (HIN) -> Q5;Low-Side 連接至 PB15 (TIM1_CH3N) -> W相驅(qū)動IC (LIN) -> Q6。
現(xiàn)在好了,我們把連接關(guān)系重新給到Claude。沒多久,一個工程從零創(chuàng)建好了,直接編譯通過,下載...
電機沒反應(yīng)?!
還好,工程提供了一個命令行的操作界面,還很貼心地給出了說明文件,如串口波特率,啟動停止,加減速等命令。通過把串口連接超級終端,我們可以控制運行,并得到一些調(diào)試信息:
Over current trip
過流了,反饋給AI后,它開始查找自己寫的代碼,發(fā)現(xiàn)ADC代碼有些問題,修正后電機能轉(zhuǎn)起來了,但是速度很慢。AI再次查找問題的原因,這次是因為死區(qū)時間設(shè)置的過長了,吃掉了幾乎全部的輸出電壓,所以速度上不去。
這個問題解決后速度可以到450rpm,但是超過這個速度電機就會抖動起來。這次AI也根據(jù)反饋的信息很快地推測出問題,就是線圈的阻抗在低速下可以認為是電阻,但是阻抗會隨著施加在線圈上的電壓頻率上升而增加,前面就是忽略了此問題,把線圈當(dāng)純電阻對待了。
終于,電機可以開環(huán)轉(zhuǎn)到3000rpm了,而且可以加減速,正反轉(zhuǎn),運行絲滑,噪聲非常小。這真大大超出了預(yù)期。原來以為能生成個六步換向代碼就不錯了,結(jié)果直接上來就是SVPWM。總之過程就像有一個特別專業(yè)的電機工程師,你只要告訴它要什么結(jié)果就行了。如果開始就能細致地告訴它完備的參數(shù),調(diào)試過程可能會更短一些。以后有機會再加一下難度,試試它的邊界,不過誰知道呢,AI的進步太神速了,今天還不行,明天沒準就實現(xiàn)了。
回顧過去幾十年,也是不斷有新的技術(shù)出現(xiàn),代替老的技術(shù)。比如最開始開發(fā)單片機,都是用ASM匯編語言,用匯編的好處就是編程人員可以掌控一切,所有的寄存器級操作,入棧出棧,存儲器的分配等,可以達到極致的效率。后來C的出現(xiàn)一度引發(fā)巨大的爭議,很多老家伙都嗤之以鼻,認為效率太低,而且很多細節(jié)不能控制。然而如今,也就是多年以后,很難再看到ASM的身影了。
這兩年AI能力的突飛猛進,顯然會帶來比C代替ASM更猛烈的變化。我們能做的就是不要停下腳步,不斷學(xué)習(xí),擁抱新事物,別被浩浩蕩蕩的大潮拋在身后,你說呢?