dsh-mcu-lab:51 单片机开发闭环

前言

在 DSH(DeepSeek Harness)的插件生态中,51 单片机的开发流程通常涉及 Keil C51 编译、Proteus 仿真以及人工判定 LED 亮灭。人工判定依赖视觉模型,受引脚编号漂移影响,结果不稳定。dsh-mcu-lab 插件将这条链路接进 DSH 会话,提供确定的判定依据(如编译是否产出 hex、CPU 是否增长、是否有失败标记文本),让 AI 能够直接在对话中完成开发闭环。

是什么

这是一个 DSH 插件(lib/index.js)配合一个命令行内核(kernel/mcu_lab.py)的集合体。插件层负责向 DSH 注册 5 个工具,接收 AI 参数并调用内核;内核层使用 Python 编写,负责编译、仿真和判定逻辑。

它解决的问题很具体:把原本需要人工拆解的“编译 hex、复制到电路、跑仿真、看结果”这一系列操作,封装成 AI 可直接调用的工具,输出 PASS/FAIL 及判定依据。

核心功能

该插件提供以下核心能力:

  1. 5 个工具:mcu_run(默认入口)、mcu_build(仅编译)、mcu_sim(截图)、mcu_verify(复判)、mcu_list(索引电路)。
  2. 命令行内核:kernel/mcu_lab.py,支持 check、list、build、run、verify、sim 六个子命令。
  3. 编译器支持:支持 Keil C51 和免费开源的 SDCC。
  4. 仿真与判定:集成 Proteus ISIS 仿真,提供确定性判定后端(无需视觉模型介入)。

安装与启用

方式一:装进 DSH(获取 5 个工具)

  1. 放置仓库:将本仓库放到 DSH 的 profile 模块目录下,目录名必须与包名一致:
    <DSH_HOME>\profiles\node_modules\dsh-mcu-lab\
(`<DSH_HOME>` 默认为 `%USERPROFILE%\.dsh`)
  1. 添加装载行:在对应 profile 的 cordis.patch.yml 末尾添加:
    - insert:
      - id: mcu-lab
        name: 'dsh-mcu-lab'
  1. 重启 DSH:执行 dsh web 重启后,5 个工具将出现在会话中。

方式二:只用命令行内核(不依赖 DSH)

如果不需要 DSH 的插件层,可以直接运行内核脚本:

python kernel/mcu_lab.py check
python kernel/mcu_lab.py list
python kernel/mcu_lab.py build examples\led_blink.c
python kernel/mcu_lab.py run  examples\led_blink.c <你的电路.DSN> --wait 6
python kernel/mcu_lab.py verify <你的电路.DSN> --wait 6
python kernel/mcu_lab.py sim <你的电路.DSN> --seconds 8 --shot out.png

典型用法

在会话中直接调用工具,例如:

把 examples/led_blink.c 在这个电路上跑一遍,告诉我过没过。

对应的命令行操作如下:

  • 体检环境:
    python kernel/mcu_lab.py check
  • 列出可用电路:
    python kernel/mcu_lab.py list
  • 编译源码:
    python kernel/mcu_lab.py build examples\led_blink.c
  • 运行仿真并判定:
    python kernel/mcu_lab.py run  examples\led_blink.c <你的电路.DSN> --wait 6
  • 仅判定电路状态:
    python kernel/mcu_lab.py verify <你的电路.DSN> --wait 6
  • 生成仿真截图:
    python kernel/mcu_lab.py sim <你的电路.DSN> --seconds 8 --shot out.png

前置条件与依赖

插件以 Windows 平台为基准,必须满足以下条件:

  • 操作系统:Windows 11(作者实测),其他平台未验证。
  • 编译器:Keil C51(或 SDCC)。Keil 专有关键字在 SDCC 路线下需自行改写。
  • 仿真软件:Proteus ISIS(安装路径建议纯英文,中文路径会导致崩溃)。
  • Python 环境:
    • 建议版本:Python 3.13.15(作者实测)。
    • 依赖包:仅编译(check/list/build)使用标准库;仿真与判定(run/verify/sim)需安装 pywin32 和 Pillow。
  • 环境变量:
    • DSH_MCU_LAB_KEIL:指向 C51.exe。
    • DSH_MCU_LAB_ISIS:指向 ISIS.EXE。
    • DSH_MCU_LAB_IFACE:指向接口脚本目录(默认为仓库内的 kernel/iface/)。

注意事项

  1. 目录命名:安装时,放入 node_modules 的目录名必须与包名 dsh-mcu-lab 一致。
  2. 源码编码:C51 源码必须是纯 ASCII,包含中文注释会报 C141 语法错误。
  3. 确定性判定:判定逻辑依赖“仿真进程 CPU 是否增长”等确定性指标,而非读取截图像素,因此结果稳定。
  4. 未验证项:Keil C51 和 Proteus ISIS 的具体版本要求未做严格验证,仅作者实测环境为 C51 9.00 和 Proteus 7.08 SP2。
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜