Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions docs/milestones.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# VibeMate 里程碑

## 第一阶段:两条链路分别跑通

第一阶段不进行舵机与 CoreS3-SE 的联调。

### A:舵机链路

```text
FE-URT
→ SCS0009 #1
→ SCS0009 #2
```

验收清单:

- [ ] 两颗舵机分别设置不同 ID。
- [ ] 两颗舵机均可独立控制。
- [ ] 确定并记录波特率。
- [ ] 确定并记录供电方案。
- [ ] 记录完整接线方式。
- [ ] 连续动作测试稳定。

### C:显示与通信链路

```text
PC
→ Wi-Fi
→ CoreS3-SE
→ 屏幕
```

验收清单:

- [ ] 官方 StackChan 固件开发环境能够正常使用。
- [ ] CoreS3-SE 能正常编译和烧录程序。
- [ ] 屏幕能够正常显示。
- [ ] Wi-Fi 能够正常连接。
- [ ] PC 可以向 CoreS3-SE 发送测试状态 `RUNNING`。
- [ ] CoreS3-SE 收到状态后,屏幕显示 `RUNNING`。

## 第二阶段:固件控制舵机

```text
CoreS3-SE
→ UART
→ SCS0009 ×2
```

进入条件:第一阶段 A、C 的验收项全部通过。第二阶段再确定 UART 引脚、供电共地、协议适配及固件集成方案。

## 验收记录

| 日期 | 阶段 | 负责人 | 结果 | 证据/问题 |
| --- | --- | --- | --- | --- |
| 待填写 | 待填写 | 待填写 | 待填写 | 日志、照片、视频或提交链接 |
35 changes: 35 additions & 0 deletions docs/protocol.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
# VibeMate 状态协议

## 目标

定义 PC 端与 CoreS3-SE 之间的 Coding Agent 状态消息。当前仅建立文档骨架,不锁定传输实现。

## 第一阶段最小消息

PC 发送:

```text
RUNNING
```

CoreS3-SE 接收成功后在屏幕显示:

```text
RUNNING
```

## 待确认项

- [ ] 传输方式:HTTP、WebSocket、TCP 或 UDP。
- [ ] PC 与设备的发现、IP 配置方式。
- [ ] 消息编码、换行和大小限制。
- [ ] 心跳、超时、断线重连与状态过期规则。
- [ ] 状态集合及状态切换规则。
- [ ] 协议版本与向后兼容策略。
- [ ] 是否需要鉴权或局域网访问限制。

## 后续状态表

| 状态 | 含义 | 屏幕表现 | 动作/灯效 |
| --- | --- | --- | --- |
| `RUNNING` | Agent 正在执行任务 | 第一阶段显示状态文本 | 第二阶段再定义 |
28 changes: 28 additions & 0 deletions docs/team_roles.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# VibeMate 团队分工

## 职责

| 成员 | 负责范围 | 当前阶段交付 |
| --- | --- | --- |
| 项目负责人 | PC 端 Coding Agent 状态检测、VibeMate 状态协议、产品逻辑 | 定义最小状态协议,并准备 PC 端测试发送程序 |
| A | 硬件电控适配:SCS0009、FE-URT、供电、UART、舵机 ID、接线与稳定性 | 在 PC + FE-URT 环境下独立控制两颗舵机并完成记录 |
| B | 官方 StackChan 结构复现、3D 打印、装配验证、CAD 修改与 VibeMate 外观 | 整理结构来源、打印参数、装配问题和改版记录 |
| C | 基于官方 `firmware/` 的嵌入式开发与系统集成 | 跑通 CoreS3-SE 编译、烧录、屏幕、Wi-Fi 和 `RUNNING` 显示 |

## Git 协作约定

- `main`:稳定主分支,只通过 Pull Request 合入。
- `feature/pc`:PC 端与通信协议开发。
- `feature/hardware`:硬件记录与测试程序。
- `feature/mechanical`:结构文件、打印与装配记录。
- `feature/firmware`:基于官方 `firmware/` 的固件开发。
- 日常开发不直接提交到 `main`;每项功能完成并自测后再发起 Pull Request。
- 保留 `upstream` 跟踪 `m5stack/StackChan`,定期同步官方更新;团队仓库使用 `origin`。
- 不采用额外的 `develop`、release 或 hotfix 分支,保持流程简单。

## 交接约定

- PC 与固件的消息格式记录在 `docs/protocol.md`。
- 电气参数和接线变化记录在 `hardware/README.md`。
- 结构版本、打印参数和装配问题记录在 `mechanical/README.md`。
- 阶段验收结果记录在 `docs/milestones.md`。
36 changes: 36 additions & 0 deletions hardware/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# VibeMate 硬件电控

负责人:唐英杰

## 范围

- SCS0009 舵机 ID、波特率和控制测试。
- FE-URT 与舵机总线连接。
- 供电、电流能力、共地、UART 和接线记录。
- 连续动作与硬件稳定性验证。

## 第一阶段

```text
FE-URT
→ SCS0009 #1
→ SCS0009 #2
```

第一阶段不连接 CoreS3-SE。先使用 FE-URT 完成两颗舵机的独立控制与稳定性验证。

## 实验记录模板

| 项目 | 记录 |
| --- | --- |
| 舵机型号 | SCS0009 |
| 舵机 ID | 1(#1)、2(#2)|
| 波特率 | 1000000 |
| 舵机供电 | 5V 3A 电源适配器 |
| FE-URT 供电 | 5V 3A 电源适配器(同端子侧供电)|
| 接线定义 | 调试板→舵机1(ID=1)→舵机2(ID=2),三线排线串联,GND共地 |
| 测试程序/工具 | FST Servo Debug |
| 连续动作时长与结果 | 建议速度500,实测曲线平稳;目标值增大→逆时针,减小→顺时针 |
| 已知问题 | 中位512(对应150°);安全角度≈6°至294°(限位20至1003);软限位N_Limit=20,P_Limit=1003 |

> 接线或上电前先核对额定电压、极性和共地要求;不要由不确定能否承载舵机电流的接口直接供电。
67 changes: 67 additions & 0 deletions hardware/stability_report.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
# SCS0009 舵机连续动作稳定性测试报告

## 一、测试环境

| 项目 | 参数 |
|------|------|
| 舵机型号 | SCS0009 |
| 测试数量 | 2 台(ID=1、ID=2) |
| 通信端口 | COM7 |
| 波特率 | 1,000,000 bps |
| 通信协议 | SCS 串行总线协议(半双工) |
| 测试程序 | `hardware/test.py` |
| 供电方式 | 5V 直流稳压电源 |

## 二、测试目的

验证 SCS0009 舵机在"前进→停止→回中→关闭扭矩"完整动作序列中的连续执行稳定性,包括:
- 位置重复精度(前进/回中往返一致性)
- 通信可靠性(丢帧/校验错误率)
- 错误码监控(运行过程是否触发报警)

## 三、测试方法

1. 通过串口依次对 ID=1 和 ID=2 舵机下发指令
2. 单次测试流程:
- 写入扭矩使能(ADDR=40, VAL=1)
- 写入目标位置前进 50 步(ADDR=42)
- 延时 1 秒后下发停止指令(INST=0x07)
- 回中至初始位置
- 关闭扭矩使能(ADDR=40, VAL=0)
3. 每步动作后回读当前位置(ADDR=56)和错误码(ADDR=41)
4. 记录实际到达位置、误差值及错误码

## 四、测试结果

### 4.1 ID=1 舵机

| 测试项 | 预期位置 | 实际位置 | 误差 | 错误码 |
|--------|---------|---------|------|--------|
| 初始位置 | — | 860 | — | 0x00 |
| 前进 | 910 | 909 | -1 | 0x00 |
| 回中 | 860 | 860 | 0 | 0x00 |

### 4.2 ID=2 舵机

| 测试项 | 预期位置 | 实际位置 | 误差 | 错误码 |
|--------|---------|---------|------|--------|
| 初始位置 | — | 259 | — | 0x00 |
| 前进 | 309 | 308 | -1 | 0x00 |
| 回中 | 259 | 259 | 0 | 0x00 |

### 4.3 汇总

| 指标 | 结果 | 判定 |
|------|------|------|
| 位置重复精度 | 最大误差 ≤ 1 步(≈0.36°) | ✅ PASS |
| 通信成功率 | 100%(无丢帧、无超时) | ✅ PASS |
| 错误码 | 全程 0x00(无过流/过温/过载) | ✅ PASS |

## 五、结论

- 两台 SCS0009 舵机在连续"前进→停止→回中"动作中表现稳定,往返位置重复精度 ≤ 1 步,通信链路无异常。
- 建议在正式集成到 VibeMate 项目后,进行长时老化测试(≥2 小时连续循环),以进一步确认热稳定性。

> 测试日期:2026-08-26
> 测试人:唐英杰
> 报告版本:V1.0
Loading