refactor(protocol): 板面几何与 CoP 计算统一为 cm 单位,force 改 int16
compute_cop 直接输出 int16_t (cm/kg),消除打包时的浮点转换; BOARD_HALF_WIDTH/LENGTH 从 mm 改 cm,传感器坐标表同步更新。
This commit is contained in:
@@ -51,7 +51,7 @@ CoP 帧固定 11 字节,结构如下:
|
||||
| `3` | `flags` | `uint8` | 见下表 | 状态标志位 |
|
||||
| `4-5` | `cop_x` | `int16 LE` | - | 压力中心 X 坐标 (cm) |
|
||||
| `6-7` | `cop_y` | `int16 LE` | - | 压力中心 Y 坐标 (cm) |
|
||||
| `8-9` | `force` | `uint16 LE` | - | 总重量 (kg) |
|
||||
| `8-9` | `force` | `int16 LE` | - | 总重量 (kg) |
|
||||
| `10` | `crc` | `uint8` | - | CRC-8/MAXIM 校验 |
|
||||
|
||||
#### flags 位定义
|
||||
@@ -71,14 +71,14 @@ CoP 帧固定 11 字节,结构如下:
|
||||
S3 (BL) -------- S2 (BR)
|
||||
```
|
||||
|
||||
传感器坐标(单位:mm,板面中心为原点):
|
||||
传感器坐标(单位:cm,板面中心为原点):
|
||||
|
||||
| 传感器 | 位置 | X | Y |
|
||||
|--------|------|---|---|
|
||||
| S1 | 右前 (FR) | `+200` | `+200` |
|
||||
| S2 | 右后 (BR) | `+200` | `-200` |
|
||||
| S3 | 左后 (BL) | `-200` | `-200` |
|
||||
| S4 | 左前 (FL) | `-200` | `+200` |
|
||||
| S1 | 右前 (FR) | `+10` | `+10` |
|
||||
| S2 | 右后 (BR) | `+10` | `-10` |
|
||||
| S3 | 左后 (BL) | `-10` | `-10` |
|
||||
| S4 | 左前 (FL) | `-10` | `+10` |
|
||||
|
||||
计算公式:
|
||||
|
||||
@@ -89,7 +89,7 @@ CoP_X = (F0 * x0 + F1 * x1 + F2 * x2 + F3 * x3) / F_total
|
||||
CoP_Y = (F0 * y0 + F1 * y1 + F2 * y2 + F3 * y3) / F_total
|
||||
```
|
||||
|
||||
当 `F_total < COP_MIN_FORCE_THRESHOLD` 时,CoP 坐标无意义,`flags.bit0 = 0`,`cop_x` 和 `cop_y` 填 `0.0f`。
|
||||
当 `F_total < COP_MIN_FORCE_THRESHOLD` 时,CoP 坐标无意义,`flags.bit0 = 0`,`cop_x` 和 `cop_y` 填 `0`。
|
||||
|
||||
#### 示例
|
||||
|
||||
@@ -199,6 +199,6 @@ AA 55 20 05 XX
|
||||
- CoP 帧固定 11 字节,可在最小 ATT MTU 23(NUS 有效负载 20 字节)下传输。
|
||||
- 50 Hz CoP 上行流隐式充当平衡板到基站的活性检测,因此心跳仅为下行。
|
||||
- 传感器通道到物理位置的映射:MUX `{0x01, 0x23, 0x45, 0x67}` → FL/FR/BR/BL。
|
||||
- `BOARD_HALF_WIDTH_MM = 200`,`BOARD_HALF_LENGTH_MM = 200`(后续可能调整)。
|
||||
- `BOARD_HALF_WIDTH_CM = 10`,`BOARD_HALF_LENGTH_CM = 10`(后续可能调整)。
|
||||
- `ADC_TO_FORCE_SCALE` 当前为占位值 `1.0f`,待 10 kg 砝码标定后修正。
|
||||
- ARM Cortex-M33 为小端架构,`float32` 在 packed struct 中天然符合 Little Endian 要求。
|
||||
|
||||
Reference in New Issue
Block a user