API
串口 API
姿态跟随显示器支架的 USB-C 串口 JSON 指令集:读取状态、设置位置、切换模式、保存预设与调整跟随参数。
串口 API
预览版文档。 本产品处于上市前预览阶段,规格与指令在发货前可能调整。
支架在电脑上显示为 USB 串口设备(115200 波特率,8N1)。每条指令是一行 JSON,每条回复也是一行 JSON。
读取状态
{"cmd": "status"}
{"ok": true, "mode": "follow", "pos": {"height": 142, "depth": 80, "tilt": 6, "pan": -3},
"user": {"present": true, "distance_mm": 612}, "fw": "1.2.0"}
位置单位:高度、深度为毫米,俯仰、水平转角为度。
移动
{"cmd": "move", "height": 180, "tilt": 5, "speed": 15}
未指定的轴保持不动。speed 单位为 mm/s(最大 20)。手动移动会把支架切换到 manual 模式。
模式
{"cmd": "mode", "value": "follow"}
| 取值 | 行为 |
|---|---|
follow |
持续跟随 |
nudge |
保持位置,驼背超过 20 分钟后缓慢上仰提醒 |
manual |
不自动移动 |
预设
{"cmd": "preset.save", "slot": "stand"}
{"cmd": "preset.go", "slot": "sit"}
可用槽位:sit、stand。
跟随参数
{"cmd": "tracking", "deadband_mm": 40, "delay_s": 3, "distance_mm": 600}
| 字段 | 默认值 | 范围 | 含义 |
|---|---|---|---|
deadband_mm |
40 | 10–120 | 小于该幅度的头部移动忽略不计 |
delay_s |
3 | 1–30 | 移动持续超过该时长后才跟随 |
distance_mm |
600 | 450–800 | 目标观看距离 |
Python 示例:下午 2 点切换到站立
import json, serial, time
arm = serial.Serial("/dev/ttyACM0", 115200, timeout=1)
def send(**cmd):
arm.write((json.dumps(cmd) + "\n").encode())
return json.loads(arm.readline())
while True:
if time.strftime("%H:%M") == "14:00":
send(cmd="preset.go", slot="stand")
time.sleep(30)
错误
出错时回复 {"ok": false, "error": "<code>"}。错误码:bad_json、unknown_cmd、
out_of_range、obstructed、overload。
最后更新 21 Sep 2026