DEEP 65 · 第七辑 · 换装 HL-2915 全流程 · LEARN NOTES

收进学习手册 · 2026-09-11 · duck.whatled.com

解读 65 · 设 ID、改波特率、校零位:一次只接一只

解读对象:microduck-replica/rl-series/scripts/hl2915_bench.py(744 行)cmd_set_id / cmd_set_baud / cmd_cal 三组命令
需要的前置:解读 59(整机 15 个 ID 怎么排)· 解读 63(六课之后做什么)

散件期的三件事:给每只舵机一个身份、一个通信速度、一个零位。脚本用三组命令覆盖,三组命令里藏着同一条纪律——一次只接一只。

1. set-id:为什么必须一次只接一只

原因写在出厂值里:所有 HL-2915 出厂都是 ID 1(docs/新手学习文档.md §12.1)。两只同接在总线上,set-id --new-id 2 的写指令两只都收到——双双改名,总线上出现两个 2,从此 PING 谁都是撞车。cmd_set_id 的流程是标准三步:unlock()(写 55=0 解锁 EPROM)→ 写 5 号寄存器 → 用新 ID 发 PING 验证:"✔ 新 ID 有应答 / ✗ 新 ID 无应答,回旧 ID 重试"。范围 0–253(254 是广播,不可用)。命令打印的提示就是解读 59的伏笔:"装上整机前,把每只舵机按 model.rs 的关节 ID 表设好并贴标签"。

2. set-baud:写的是档位,验的是重连

BAUD_INDEX = {1000000: 0, 500000: 1, 250000: 2, 128000: 3, 115200: 4, 76800: 5, 57600: 6, 38400: 7}——寄存器 6 号存的是档位号,不是波特率数值,--new-baud 只接受这八档。写完命令只说了一半:"已写入档位 N。用 --baud <新值> 重连验证。"改通信参数的最后一步永远是用新参数再通一次——"写成功"和"能通信"是两回事。台架排障里还有对照用法:拷机丢包时,"把波特率降到 500k/115200 对照(set-baud)"。

3. cal:两种标零的安全差别

cal 不带参数只读:打印当前位置和 31 号"位置校正"(±2047 步,BIT11=方向)。真正标零有两个选项,安全级别完全不同:

另有 --volt-max 14.0:写 14 号 = 140,12V 供电前放开过压保护。命令自己总结的时序也值得抄:"40 写 128 和 31 号校正都会改变零位,装配后再标,标完记录进构建日志。"还有一条容易忘:多圈圈数疑似掉电不保存(待实测)——上电前机器人要摆在已知姿态。

你带走的收获

延伸

什么鸭 WHATDUCK · 复刻学习笔记 ← 全部手册 · 首页