把电脑上正在运行的 dsh-pet 桌宠显示在 WatcheRobot 圆屏上。角色动画、表情和对话气泡来自原桌宠;电脑负责运行桌宠,机器人通过 USB 显示画面并把实体操作传回电脑。
| 操作 | 效果 |
|---|---|
| 单击屏幕上的角色 | 原桌宠的普通点击反馈 |
| 背部轻触后松开 | 打开菜单;菜单内返回上一级,根菜单时关闭 |
| 旋转滚轮 | 移动当前菜单的选择 |
| 短按滚轮 | 确认选择,进入子菜单或切换动作 |
菜单退出后恢复固定角色构图;气泡出现时会临时扩大取景,气泡结束后恢复。应用持续运行,直到用户停止。文字输入仍在电脑完成。
此版本为候选版,依赖新增的 SDK 显示与 USB 能力。源码发布、审核提交和应用广场上架是三个独立阶段。
watcher-pet-sdk-0.3.2,声明 display.stream.v1、input.events.v1、input.display_context.v1。普通设备固件不会自动获得这些能力。这是桌宠副屏,电脑关闭或桌宠退出后不会独立运行。USB 下仍有帧率限制,不承诺流畅视频效果。源码不包含角色模型、动作视频、桌宠安装包或任何用户凭据。
App 0.1.2 在 app.json.requires_firmware 声明配套社区固件 **local.watcher_desktop_pet_usb / 0.3.2**,兼容范围为 ==0.3.2,推荐版本和已测试版本均为 0.3.2。watcher-pet-sdk-0.3.2 是这份自定义固件的运行标识,不是官方固件版本。
应用源码与固件包分别发布、分别审核。固件先被同一来源的广场目录收录,应用才可提交关联审核;源码仓库可访问不代表已审核上架。此候选版仍等待正式 SDK 依赖及配套固件审核收录,不应在普通用户环境直接安装。
配套 0.3.2 固件下载 已公开并匿名核对完整 ZIP。2026 年 11 月 3 日提交的固件审核请求仍待审批;下载可用不表示可在任意设备刷写。
支持该功能的 Desktop 可以显示配套要求,并提供仅安装应用或安装应用、下载配套固件的选择。USB 写入前仍需选择目标、核对实际分区并确认。当前 USB 专用固件没有广场的 Wi-Fi 实时身份上报;界面显示“当前版本未知”时,不应把历史烧录记录当作实时兼容证明。应用启动还会检查设备是否声明所需显示与输入能力。
配套固件的硬件修订目前未确认,清单中的 unknown 不表示支持所有修订;须人工核对固件说明中的屏幕、Flash、输入链路和实际分区布局。
2026 年 11 月 3 日,在本次验证设备上使用同一组 JPEG,经受管 SDK 分别连续呈现 120 帧角色图和 120 帧菜单测试图,两种速率均完成全部 240 帧,未出现传输错误:
| 从发送到显示确认的中位耗时 | 1 Mbps | 2 Mbps |
|---|---|---|
| 206×206 角色图,约 5.4 KB | 125 ms | 94 ms |
| 412×412 菜单测试图,约 13.9 KB | 250 ms | 172 ms |
菜单测试图为本机生成的固定样图;这些数值不是从按键到画面变化的完整延迟。2 Mbps 真实桌宠同步另连续运行超过 100 秒,约 8.7 帧/秒,日志未出现传输错误。用户已在实屏确认开菜单、滚轮选择与确认、单击反馈明显更快、可以接受,且画面正常。其他硬件版本和 USB 链路仍需各自验证。
以下命令在应用目录的 PowerShell 执行;先使用包含上述能力且满足 app.json 的 SDK 环境。所有 Python 命令都指向同一个环境。
安装并运行自己的 dsh-pet 0.3.8,确认角色正常显示。
找到其 runtime/electron-helper 目录,检查本地取画桥接:
& ./.venv/Scripts/python.exe tools/renderer_bridge.py check --helper-dir '<dsh-pet目录>/runtime/electron-helper'
未安装时执行同一命令,将 check 换成 install,按提示手动重启原桌宠。安装工具先备份、校验版本,再写入桥接代码;不会自动重启桌宠。原有实验版桥接可以复用。
配置固定构图:关闭原桌宠的菜单与气泡,保持常用待机动画,采样约 15 秒:
& ./.venv/Scripts/python.exe tools/calibrate_framing.py --seconds 15
结果保存在本机 data/framing-profile.json。换角色、改原桌宠窗口尺寸后重新执行。默认不保存画面。
按 配套固件说明 完成备份、分区和硬件版本核对,再安装配套 ESP32 应用。首次刷写会暂时替换原 ESP32 功能,不能把此步骤当作普通 App 安装。
使用实际设备管理器显示的 ESP32 串口号连接,例如:
& ./.venv/Scripts/watcherobot.exe robot usb connect --port COM7 --baudrate 2000000
串口号随电脑变化;不要选 STM32、Himax 或另一台机器人。已被其他程序占用时先正常停止该程序。
检查并启动:
& ./.venv/Scripts/watcherobot.exe app check .
& ./.venv/Scripts/watcherobot.exe app run .
必须通过 watcherobot app run 托管启动。停止本应用使用 Ctrl+C 或 watcherobot app stop,不需要停止整个 Daemon。端口断开、呈现超时会停止同步并报告错误;确认设备重新连接后,再明确启动应用。
取画来自原桌宠内部的 Electron renderer,通过带本地会话验证的 loopback HTTP 读取,不截取整个桌面,也不上传画面。设备 USB 由 SDK Daemon 管理,应用自身不另开串口。
如已有另一显示客户端占用原桌宠取画桥接,本应用只复用有效会话,停止时不删除其他客户端的会话。准备工具的私有备份默认在用户本地应用数据目录;restore 仅恢复本工具对应的安装,文件被外部修改时拒绝覆盖。
恢复桥接使用 tools/renderer_bridge.py restore --helper-dir '<helper目录>',之后按提示手动重启桌宠。恢复设备使用刷写前保存的该台设备应用镜像;具体边界见固件说明。
角色和媒体由用户自行提供并遵守其授权。代码及第三方授权见 THIRD_PARTY_NOTICES.md。