校准前:按板型做准备
| 路线 | 校准固件 | 供电 |
|---|---|---|
| DIY / Lolin S2 Mini / Distro Board V1 | 用 Arduino IDE 刷 firmware/debugging-firmware/sesame-motor-tester.ino,然后按官方 Motor testing guide(hardware/motor-testing/README.md)继续 | USB 连电脑,用可靠的数据线 |
| Distro Board V3 / V2 套件 | 出厂已预刷,无需连电脑 | 直接接 USB 电源(手机快充或笔记本充电器);V2 的电池系统不稳定,必须走 USB-C,不要用电池 |
校准时所有电机轴必须能自由旋转,不要提前把关节装上电机。装歪的舵机臂会让电机瞬间堵转或扫齿。
逐路插入舵机,推上关节
- 连上机器狗的热点,打开控制页(portal)。
- 点 Standby。预期:PWM 通道初始化,之后每插上一个舵机,它会立刻转到正确位置并保持。
- 从 Motor 0 开始逐个插舵机,棕线必须对准地轨一侧。预期:插上的瞬间能听到舵机上电的嗡声,输出轴稳稳保持位置。
- 8 个舵机按编号依次插完,对照官方构建指南的 sesame-angle-guide 图核对电机编号与物理位置。电机编号与关节位的对应来自固件源码的 ServoNames 顺序,见下表。
- 保持 Stand 模式,把髋关节与腿关节按 45° 推入电机轴。
- 用 Rest 与 Stand 交替验证:点 Rest,关节应转到与机身完全平行;点 Stand,应回到 45°。反复切换,确认每个关节角度正确、无碰撞。
- 确认后用 M2.5 机螺丝穿过主孔把关节固定到电机轴,轻轻拧紧。过度拧紧会顶住电机引发 brownout(电压跌落)。
| 电机编号 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
|---|---|---|---|---|---|---|---|---|
| 关节位 | R1 | R2 | L1 | L2 | R4 | R3 | L3 | L4 |
R1、R2、L1、L2 是髋关节位,R3、R4、L3、L4 是腿部关节位。注意 4 号位是 R4、5 号位是 R3,编号与名字没有顺着写,插线时最容易在这里错一格。
舵机乱动先查插错槽
官方构建指南给出的经验值:99% 的舵机反向、乱动、抽风都是插错槽,出问题先把接线查一遍。判别清单:
- 插每个舵机前确认棕线对准地轨一侧。
- 整机朝向拿不准时用官方记号对齐:Notch(缺口)= 前,USB 口 = 后。
- 某一路反向、乱动、抽风,先查这一路的槽位与接线,再考虑其他原因。
用串口 subtrim 微调
关节固定后个别舵机角度略有偏差,用主固件的 Serial CLI 调偏移。串口监视器波特率 115200,电机编号 0–7:
| 命令 | 作用 |
|---|---|
subtrim / st
|
查看 8 路偏移值 |
subtrim <motor> <value> / st <motor> <value>
|
设单路偏移,value 范围 −90 到 +90 |
subtrim save / st save
|
输出可直接粘贴回源码的 int8_t servoSubtrim[8] = {...};
|
subtrim reset / st reset
|
8 路偏移全部清零 |
all <angle> |
8 路同时转到指定角度 |
<motor> <angle> |
单路直接转到指定角度 |
调整流程:
- 刷好主固件、连上串口,输入
st。预期:打印 Motor 0 到 Motor 7 的偏移,出厂全为 0。 - 用
st <motor> <value>逐路调整,边调边看关节角度。预期:串口回显 Motor N subtrim set to +X 之类的确认。 - 满意后输入
st save。预期:输出一行int8_t servoSubtrim[8] = {...};,把它粘贴回固件源码替换全 0 的默认数组,重新编译上传后偏移长期生效。
运行时改的 subtrim 只存在内存里,断电即回到源码里的值;不做 st save 并粘贴回源码,下次上电还是全 0。