Commit Graph

15 Commits

Author SHA1 Message Date
pNexus 633459caee refactor(protocol): 移除未使用的消息队列获取函数 2026-05-20 21:02:40 +08:00
pNexus a2d6ef8893 refactor(sensor): 重构采样策略,Butterworth 20Hz 滤波 + 50Hz 输出
- 采样次数 17→9 提升帧率至 ~100Hz(Nyquist 50Hz)
- 移除 CoP 级自适应 IIR,改为通道级二阶 Butterworth(fc=20Hz)
- 保留 8-10Hz 振动板信号(通过率 98%),抑制高频噪声
- 2:1 降采样实现 50Hz BLE 输出
- 迟滞阈值 5/2→3/1 kg,死区 1000→250 counts
- 新增 EMI 检测:采集异常短时触发寄存器恢复
2026-05-19 14:50:10 +08:00
pNexus d95cce5cf2 feat(ads1256): 添加 EMI 防护与寄存器自恢复机制
CS 引脚加内部上拉防止干扰误触发;新增 ads1256_recover() 在检测到
寄存器被改写时重写关键配置并验证恢复。
2026-05-19 14:50:04 +08:00
pNexus 0979866a7c refactor(protocol): 新增 comm_protocol 协议收发解析层,ble_transport 退化为纯传输
- 删除 protocol.h,帧定义和标定命令码统一迁入 comm_protocol.h
- 新增 comm_protocol.c:上行组包(CoP/标定响应)、下行解析+msgq 分发
- ble_transport 剥离所有协议解析和参数 getter,仅保留字节收发+rx 回调注册
- main.c 初始化顺序:ble_transport → comm_protocol → adv_start → cal_init
- 更新 README 架构图和项目结构表,补充标定流程章节
- 更新 BALANCE_BOARD_PROTOCOL.md 增加标定命令/响应帧格式文档
2026-05-15 18:06:33 +08:00
pNexus 1a65bf0f22 feat(sensor): 增加 CoP 迟滞判定与 IIR 低通滤波,修复空载尖刺和负力对消
- 单通道负力钳零:压力传感器不可能产生负力,消除零漂通道对 total 的对消
- 迟滞阈值:进入 ≥5kg / 退出 <2kg,防止马达振动触发 VALID
- IIR 低通:重载(≥10kg)直通零延迟,轻载 alpha=0.3 平滑 2-3 帧
- 物理常量统一到 calibration.h,sensor.c 和 calibration.c 共享
- 新增 calibration 模块(L1/L2 标定状态机 + NVS 持久化)
2026-05-15 17:10:02 +08:00
pNexus e5518ac17e refactor(gml670x4): 将函数注释统一迁移到源文件 2026-05-14 21:30:24 +08:00
pNexus 93e7990fdf refactor(ads1256): 修改等待 DRDY 和硬件复位函数返回值,增加超时处理 2026-05-14 21:17:53 +08:00
pNexus ffafbc4c6a refactor(protocol): 板面几何与 CoP 计算统一为 cm 单位,force 改 int16
compute_cop 直接输出 int16_t (cm/kg),消除打包时的浮点转换;
BOARD_HALF_WIDTH/LENGTH 从 mm 改 cm,传感器坐标表同步更新。
2026-05-12 16:23:55 +08:00
pNexus f0072c3bd0 refactor(protocol): CoP 帧字段从 float 改为整型,单位 mm→cm / kg
cop_x/cop_y 改为 int16_t (cm),force 改为 uint16_t (kg),
帧长 17→11 字节,降低带宽占用;1 cm 精度满足平衡板场景需求。
2026-05-12 16:11:19 +08:00
pNexus b72ea5334f refactor(protocol): 移除上行帧 seq 字段,精简协议开销
BLE 链路层已有重传保序机制,应用层 seq 冗余且从未被接收端消费,
移除后 CoP 帧 18→17 字节、Encoder 帧 14→13 字节。
2026-05-12 15:58:46 +08:00
pNexus 353f9aca13 feat(button): 添加按键模块及初始化按键去皮功能 2026-05-11 14:23:05 +08:00
pNexus dc525ea4e7 feat(gml670x4): 所有协议帧添加 CRC-8/MAXIM 校验
使用 Zephyr crc8() 对帧头之后的载荷计算 CRC,上行发送前填充、
下行接收时校验不通过则丢弃并告警。同步更新协议文档。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-05-09 14:38:28 +08:00
pNexus 1e8809cf89 feat(gml670-v2): 添加传感器采集线程与主入口
- sensor: 独立 Zephyr 线程,4 通道×17 次均值采集→CoP→BLE 发送,
  原子去皮请求,5Hz 调试日志
- main: 薄编排层,仅初始化 BLE 和传感器模块

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-30 17:37:38 +08:00
pNexus 1ad7a9d4ad feat(gml670-v2): 添加 BLE NUS 传输层
BLE 广播/连接管理、NUS 上下行通信、下行参数解析
(Resistance/Spotter/Heartbeat),3 次重试发送机制。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-30 17:39:22 +08:00
pNexus 97f0d65783 feat(gml670-v2): 添加二进制协议定义与 ADS1256 SPI 驱动
- protocol.h: CoP/Encoder/Resistance/Spotter/Heartbeat 帧定义,
  GML670 50kg ADC→kg 标定参数
- ads1256: SPI 命令模式驱动,BUFEN=1 解决高阻抗负载误差,
  3750 SPS 平衡精度与采样率,SELFCAL + 寄存器回读校验

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-30 17:39:05 +08:00