B博客

截图和帧统计,直接来自开发板

编辑器可以截取已连接开发板屏幕上的画面,询问它的运行速度,还能自己找到它的端口。

发布于
作者
DevKirbyrawr
阅读
约 2 分钟

在微控制器上开发,通常意味着眯着眼盯着开发板看。你没法给它截图,不搭好调试器也看不出它跑得多快。Deki 0.18.2 补上了一部分差距:开发板会通过你用来烧录的同一根 USB 线响应几种请求,而编辑器知道怎么问。

开发板截图

编辑器可以把已连接开发板屏幕上的那一帧保存为 PNG:这是通过 USB 读回的真实帧缓冲,并且经过校验,传输出错时会被发现,而不是被保存下来。整个过程大约一秒,游戏不会把这一秒计入时间,所以之后任何计时的东西都不会突然往前跳。

开发板屏幕上显示的演示菜单,通过 USB 保存下来,角落里是它自己的帧率

想知道屏幕上看到的毛病是出在引擎画出的那一帧里,还是发生在传到屏幕的路上,这是最快的办法。

它跑得多快

问一下开发板,它就会报告每秒帧数、平均每帧在更新、渲染和发送上各花了多长时间,以及剩余多少内存。想看更多细节,它还能按组件类型细分渲染时间,也能按请求打开任意场景,所以一个脚本就能把所有场景都测一遍。60 fps 的那项工作就是这样测出来的。

更少的配置

  • 端口自己找。 烧录时如果没有指定端口,只有一个串口就用那一个;有好几个时,用第一个以 ESP32 身份应答的。
  • 构建输出就在眼前。 构建或烧录的输出和结果会显示在编辑器的 Activity 面板里,资源导出失败时会说明是哪些资源。

用脚本,或者交给智能体

这些功能也都在编辑器的 MCP 服务器上。让一个智能体连上正在运行的编辑器,它就能构建固件、烧录开发板、在板上打开场景、读取帧率、查看屏幕,中间不需要任何人。这个版本里大部分设备相关的工作,正是在这样的循环中完成的。

这些请求就是串口上的纯文本行,所以任何能打开串口的东西也都能使用它们。只要开发板的控制台是芯片自带的 USB 口或 UART,任何 ESP32 开发板都可以用。

← 全部文章