lerry

AI 立大功、闯大祸?记一次 ESP32 开发调试

  •  
  •   lerry · Mar 16 · 3539 views
    This topic created in 84 days ago, the information mentioned may be changed or developed.

    最近在用 ESP32 做语音对话机器人,接麦克风、喇叭、小屏幕,连豆包的 API ,能说话能回应。

    从零开始,AI 帮我设计方案、选零件、写代码,连怎么用电烙铁都是 AI 教的。不到 24 小时,第一阶段跑通了——按键唤醒、接入大模型对话,效果和手机上差不多。我没想到会这么快。

    然后我花了两周排查一个破音的 bug 。换喇叭、换电源、查 WiFi 干扰、查 DMA 缓冲区,全都没用。最后发现是一行 C++ 类型问题:constexpr uint32_tint32_t 相乘,有符号数被隐式提升成无符号数,负数溢出,音频波形下半段全毁了。改一个字符,问题消失。这个 bug 也是 AI 在某次重构时引入的。

    AI 写代码很快,但在我不熟悉的领域,我看不出它生成的代码哪里有问题,只能靠症状反推。这就是为什么排查了这么久。

    AI 可以帮你做很多事情,但它无法替代你的判断力。

    详细过程: https://lerry.me/post/2026/03/ai-helped-esp32-audio-bug

    24 replies    2026-03-16 20:43:13 +08:00
    lp7631010
        1
    lp7631010  
       Mar 16
    然而很多老板只看到了前面不到 24 小时能把东西弄出来 意识不到后面可能要花两周去排查 bug
    Nasdaq
        2
    Nasdaq  
    PRO
       Mar 16
    nrtEBH
        3
    nrtEBH  
       Mar 16
    @liu731 我也想到这个了 最近淘宝推给我 m5stack
    hnbcinfo
        4
    hnbcinfo  
       Mar 16
    没办法,虽然 AI 发展很快。但现在还是有一些领域或场景 AI 容易出错。而且如果完全借助 AI 进行 Vibe Coding ,那就是概率稍大点的老虎机游戏。一切顺利还好,极个别时候,特别是对于一些 AI 自己搞出来的问题修复,全看运气了。不过好在,按目前的势头看,AI 发展很快,这类问题随着时间估计以后都不是问题。现在碰到这类问题,只能多换几个模型多试试了。
    lerry
        5
    lerry  
    OP
       Mar 16
    @lp7631010 AI 确实擅长编码,因为开源的代码太多了,但是加上领域知识就没那么灵了
    @liu731 后来发现这个项目了,还是想自己从头折腾
    promontory123
        6
    promontory123  
       Mar 16
    这种隐藏的 bug 就得自己去处理,做嵌入式的相同的代码,换了平台和编译器又不一样
    zomco
        7
    zomco  
       Mar 16
    去年用 esp32s3 做过一个类似的 demo ,半天 AI 就生成好能跑起来的代码,但是几轮对话之后会随机出现请求失败的问题。将问题反馈给 AI 修改,一直改不好。只好人工审查代码,最后发现是 AI 调用了有 bug 的旧接口。
    整整花了三天修复那个问题。
    EyebrowsWhite
        8
    EyebrowsWhite  
       Mar 16
    换个角度想,如果没有 AI ,24h 加上两周是否可以做出来这个语音机器人呢?
    我觉得以“干中学”的心态来使用 AI 会有更高的效率,并且使用 AI 确实要把 debug 的时间算进去,就好像健身要把热身和练后拉伸算进去一样,它们是同等重要的。
    handsome198311
        9
    handsome198311  
       Mar 16
    最近也是搞了几个开发板,ESP32S3 ESP32P4, STM32H750VBT6, 直接一把 AI 梭哈,从生成界面到功能代码,全给 AI 搞定,让 AI 写好注释,一步一步走,功能都能实现。后面测试,运行时再发现 bug 再修改,完全不写一行代码,把 IDE 环境搭好就行。 总的来说,对于专业人士来说,AI 效率提升非常大。外行来干的话会走很多弯路。并且产品不可控。
    lsp7572
        10
    lsp7572  
       Mar 16
    用的什么模型?。是不是最好的
    goodryb
        11
    goodryb  
       Mar 16
    是类似于小智 AI 这种的吗,那个好像也是 esp32 上搞的
    yxc246800
        12
    yxc246800  
       Mar 16
    和现实世界交互,就是经验的问题,破音这个给有经验的人大概两天内就能 debug 出来原因,
    嵌入式领域很多这种类似的问题,和 it 纯软不一样,与模拟世界产生交互就得用人来充当胶合剂,
    再其次 c/c++在嵌入式领域,真的是对数据和数据类型极其敏感的,现在很多高级语言都是弱类型的了,一些强类型语言也都有自己的 var 或者 auto ,嵌入式还是太底层了,数据到二进制位都是由程序员自己控制选择的
    fe619742721
        13
    fe619742721  
       Mar 16
    但是模型进化速度非常快,产生常见问题的概率后面会越来越少

    综合对比了去年年初、去年下半年和今年上半年我的 vibe coding 使用体验后得出的结论
    imagecap
        14
    imagecap  
       Mar 16
    这类教程在网上也不少,ai 只是搜索整理处理,你去实施。很多人以为是 AI 搞出来的,没有 AI 也一样能搞定。
    lerry
        15
    lerry  
    OP
       Mar 16
    @lsp7572 ChatGPT 5.4 Claude 4.6
    @yxc246800 是的,现在看,有经验的人一听应该很快能确认问题在哪里,我对这些都不了解
    defaw
        16
    defaw  
       Mar 16
    多打日志,ai 写出来的时候都没意识到这是个问题找是让他自己找是找不出来的
    dcatfly
        17
    dcatfly  
       Mar 16
    1. 你需要给项目添加 review 和 test 机制,让 ai 自己能完成闭环,大概率能及时捕获重构带来的 bug 。
    2. 定位 bug 时需要开最大的思考量(/effort ),codex 是 xhigh ,opus 是 max ,sequential thinking 也比较有用。
    justdoitzZ
        18
    justdoitzZ  
       Mar 16
    让父母学习试用 AI ,防止被微商,无良直播,带货等骗,比我说一万句顶用
    我觉得你这个排查错误的过程。不妨把你修复错误前的版本给不同的大模型看看,review ,看看谁能发现错误。
    很多模型,宣传很牛,实际试用还是有局限。
    我觉得现在,每一个试用 AI 的人,都是 AI 到真实世界的触手,所以某种意义来说,谁有最多的用户,谁的 AI 对现实世界的理解更深,谁的 AI 可能成长到更牛
    那么看来,国内就是豆包/GLM ,国外就是 chatppt/gemini ,最终会胜出
    qiangbao
        19
    qiangbao  
       Mar 16
    AI 我觉得对外行很有用呀,至少以前你对于这些东西感兴趣,但因为获取信息渠道很费劲,所以你就把这个兴趣方向先滞后了;有了 AI 之后获取信息效率大大提高了,做出来了成品,你会收到很大的成就感,反而会增大你的兴趣;毕竟正反馈总比负反馈来的好太多了。
    zerovoid
        20
    zerovoid  
       Mar 16   ❤️ 1
    AI 肯定还是大大提升效率,大大降低门槛了。

    如果没有 AI ,一个小白根本不可能折腾出一个成品,
    这些无法解决的入门问题,

    以前是小白入门学习阶段会遇到的。
    而现在却是在制作成品的过程中发生的,

    这放以前简直不可思议。
    flytsuki
        21
    flytsuki  
       Mar 16
    我之前用 ai 写 esp32 通信,定义的字节数组给我改了每个字节的定义
    zmqiang
        22
    zmqiang  
       Mar 16
    我也遇到类似的问题,也是音频类的应用,推行到 90%左右就卡住了,还是得自己了解基本支持才行
    levelworm
        23
    levelworm  
       Mar 16
    constexpr uint32_t 和 int32_t 相乘

    这个问题我在学习内核代码的时候,总是碰到,现在有一类似的问题,我就想是不是 overflow 了。我感觉 C/C++的确是更容易出这种问题,但是也让程序员更加警醒。
    forisra
        24
    forisra  
       Mar 16
    ai 无论如何总是会有幻觉的,这个没办法。假设没幻觉就是 agi 了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   972 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 78ms · UTC 19:47 · PVG 03:47 · LAX 12:47 · JFK 15:47
    ♥ Do have faith in what you're doing.