三条控制通道
固件烧好、连上网络后,Sesame 有三条控制通道:网页控制页、串口命令行、HTTP JSON API;网页与 Legacy 端点共用 URL 参数接口,JSON API 面向脚本与外部设备,串口用于调试舵机与接线。网络端点需先连上热点或家庭网络,串口命令需 USB 直连;全部适用 main 分支固件。
API 端点一览
| 端点 | 方法与作用 |
|---|---|
/api/status |
GET;返回 currentCommand / currentFace / networkConnected / apIP / networkIP
|
/api/command |
POST 且带 Content-Type: application/json;执行动作与表情命令 |
/cmd?go=forward |
GET;Legacy 行走控制 |
/cmd?pose=wave |
GET;Legacy 触发一次性姿态 |
/cmd?motor=1&value=90 |
GET;Legacy 单舵机,motor 1–8、value 0–180 |
/getSettings |
GET;Legacy 读取运行参数 |
/setSettings?... |
GET;Legacy 修改运行参数 |
/api/command 三种请求体,依次是组合、只换脸、停止:
{"command":"wave","face":"happy"}
{"face":"happy"}
{"command":"stop"}
默认运行参数
默认值逐字来自固件源码,与 /getSettings 一致:
frameDelay = 100
walkCycles = 10
motorCurrentDelay = 20
faceFps = 8
MAX_FACE_FRAMES = 6
servoSubtrim[8] = {0,0,0,0,0,0,0,0}
动作与表情清单
持续行走命令 5 个,循环到 stop:forward, backward, left, right, stop。一次性姿态 15 个:rest, stand, wave, dance, swim, point, pushup, bow, cute, freaky, worm, shake, shrug, dead, crab。
对话表情 9 个:happy, sad, angry, surprised, sleepy, love, excited, confused, thinking,每个都有 talk_ 变体(如 talk_happy);另有 idle、idle_blink、default。
Serial CLI 命令表
USB 连接后在 Arduino IDE 串口监视器(115200 波特率)逐行输入;命令逐字来自固件源码,表外没有别的命令。快捷命令对照:
run walk / rn wf=前进 rn wb=后退 rn tl=左转 rn tr=右转 run rest / rn rs=rest run stand / rn st=stand rn wv=wave rn dn=dance rn sw=swim rn pt=point rn pu=pushup rn bw=bow rn ct=cute rn fk=freaky rn wm=worm rn sk=shake rn sg=shrug rn dd=dead rn cb=crab
| 命令 | 作用 |
|---|---|
face <name> / fc <name>
|
切换表情,如 fc happy
|
subtrim / st
|
查看 8 路舵机偏移 |
subtrim save / st save
|
输出可粘贴的 int8_t servoSubtrim[8] = {...};
|
subtrim reset / st reset
|
偏移全部清零 |
subtrim <motor> <value> / st <motor> <value>
|
设单路偏移,电机号 0–7,范围 −90 ~ +90 |
all <angle> |
8 路同时设角度 |
<motor> <angle> |
单路设角度 |
五步跑通三条通道
- 打开控制页:连上 Sesame 热点打开控制页,网络模式用
sesame-robot.local。预期:看到网页控制界面。 - 用 Web UI 发一个动作:在控制页触发 wave。预期:机器狗完成挥手后回到站立姿态,OLED 显示 wave。
- 用串口发一条命令:串口监视器设 115200,输入
rn st回车。预期:打印 STAND,机器狗回到站立姿态。 - 用 HTTP POST 发一个组合命令:
curl -X POST http://sesame-robot.local/api/command -H "Content-Type: application/json" -d '{"command":"wave","face":"happy"}'预期:返回{"status":"ok","message":"Command executed"},挥手并显示 happy 表情。 - 从
/api/status验证返回:浏览器打开http://sesame-robot.local/api/status。预期:返回 JSON,执行期间currentCommand为 wave、currentFace为 happy,播完后currentCommand清空、表情保留。
排障与易错点
API 不工作先查两件事:必须是 POST 到 /api/command 且带 Content-Type: application/json 头,用 GET 会返回 405;串口没反应时确认波特率 115200 并按回车。
易错提醒一:单独输入st是查看舵机偏移,rn st才是 stand 姿态。易错提醒二:串口调好的 subtrim 偏移重启即丢,要保留就执行subtrim save,把输出的数组贴回源码重新烧录。