AI 的发展速度已经很难用“年”来衡量了。从 ChatGPT 引爆人工智能热潮,到 Gemini、Claude、Deepseek、Kimi 等各路模型接连登场,几乎每个月都有新的能力涌现。面对这样的节奏,很多嵌入式开发者心里都悬着一个问题:这一轮科技浪潮,到底会砸掉程序员的饭碗,还是打开更多机会?
拿 Claude 来说,它的编程能力确实已经到了让人不得不在意的程度。
电机控制一直是嵌入式领域里比较硬核的方向,调试过程中烧管子、烧电机都是家常便饭。这次我直接拿它来试试真实水平。手里是一套淘宝买的电机驱动套件,核心是 STM32F103RCT6,通过 6 路 PWM 接至 IR2101S 进行驱动,功率级用 IRF540N 推动,最终接入电机的 UVW 三相线。
我先把原理图直接上传给 Claude,再告诉它电机的主要参数,目标是让它写一个开环控制程序,让电机先转起来。结果不太理想。Claude 先是尝试调用 Python,本机没找到,接着用 PowerShell 直接解压 PDF 提取文字,每页文本连同坐标一起抽出来,结果被拆成了一堆碎片。说实话,当时是有点失望的。
看来大模型对电路图的理解能力还是偏弱。不过,换个思路或许可行?我试着把电路图先交给 Gemini 做一次解读,效果出乎意料地好。比如它对 PWM 驱动三相 MOS 管的连接关系描述得非常清晰:
PWM 驱动信号流向(连接至高级定时器 TIM1) 系统采用 TIM1 的 3 对互补 PWM 信号控制逆变桥:
- U 相:High-Side 连接至 PA8 (TIM1_CH1) -> U 相驱动 IC (HIN) -> Q1;Low-Side 连接至 PB13 (TIM1_CH1N) -> U 相驱动 IC (LIN) -> Q2。
- V 相:High-Side 连接至 PA9 (TIM1_CH2) -> V 相驱动 IC (HIN) -> Q3;Low-Side 连接至 PB14 (TIM1_CH2N) -> V 相驱动 IC (LIN) -> Q4。
- W 相:High-Side 连接至 PA10 (TIM1_CH3) -> W 相驱动 IC (HIN) -> Q5;Low-Side 连接至 PB15 (TIM1_CH3N) -> W 相驱动 IC (LIN) -> Q6。
有了这段清晰的关系描述,我再把连接关系重新交给 Claude。没等多久,一个完整的工程就从零建好了,直接编译通过,下载到板子上。
电机没反应?!
好在工程里提供了一个命令行操作界面,还附带了一份说明文件,标明了串口波特率、启动停止、加减速等命令。把串口接到超级终端后,可以控制运行并拿到调试信息:
Over current trip
过流了。把问题反馈给 AI 后,它开始检查自己写的代码,发现 ADC 部分有问题。修正之后电机能转起来了,但速度非常慢。AI 继续排查,这次定位到死区时间设置得过长,几乎吃掉了全部输出电压,所以转速一直上不去。
解决这个问题之后,转速可以到 450 rpm,但再往上电机就开始抖动。这次 AI 同样根据反馈现象快速给出了判断:线圈阻抗在低速下可以近似为电阻,但随着施加在线圈上的电压频率上升,阻抗会随之增加。之前正是忽略了这一点,把线圈当纯电阻处理了。
经过几轮调试,电机终于可以在开环状态下转到 3000 rpm,而且支持加减速、正反转,运行丝滑,噪声也非常小。这个结果大大超出了我的预期。原本以为能生成个六步换向代码就不错了,结果它直接给出了 SVPWM 方案。整个过程就像有一位非常专业的电机工程师在配合,你只需要告诉它目标是什么。如果一开始就把完备的参数交代清楚,调试过程可能还会更短一些。以后有机会可以再加点难度,试试它的边界。不过话说回来,AI 的进步速度太快了,今天还做不到的事情,明天也许就实现了。
回顾过去几十年,新技术替代旧技术的戏码一直在上演。比如最早做单片机开发,基本都用 ASM 汇编语言,好处是编程人员可以掌控一切,寄存器级操作、入栈出栈、存储器分配,效率能做到极致。后来 C 语言出现,一度引发巨大争议,很多老工程师看不上,觉得效率太低,很多细节控制不了。可如今再看,汇编在常规开发里已经很难见到了。
这两年 AI 能力的突飞猛进,带来的冲击显然会比当年 C 替代 ASM 更猛烈。身处这个行业,能做的也就是别停下脚步,持续学习,主动拥抱新事物,别被这股浪潮甩在身后。
在 云栈社区 里,越来越多开发者也在讨论 AI 对嵌入式岗位的影响,有人焦虑,也有人已经在用它提效了。你怎么看?
|