# 程序控制文档 --- ## 一、基本说明 - **版本号**:`v3.5.1` - **适用算法**:OCR、色块、AprilTag --- ## 二、支持算法列表 | 算法ID | 名称 | 简介说明 | | ---- | -------- | ----------------------------- | | `0` | 空 | 开机默认状态,无算法运行 | | `1` | 色块检测 | 默认 LAB 参数为 0,需配合 `S` 指令设置颜色范围 | | `2` | Apriltag | 检测 Apriltag 标签,返回 ID 与旋转角度 | | `3` | OCR | 光学字符识别 | | `4` | 交叉点 | 测试中功能,尚未稳定 | --- ## 三、控制指令 | 操作 | 指令字符 | 参数格式与说明 | 示例命令 | | ------------ | ---- | ------------------------------------------------------------------------------------- | ------------------------------ | | **开启指定算法** | `N` | `<算法ID>`
立即切换当前运行算法 | `N1`(启动色块检测) | | **设置LAB参数** | `S` | `<参数ID>+LMin+LMax+AMin+AMax+BMin+BMax>`
用于色块检测的颜色范围(LAB色彩空间,0~255) | `S1+0+100+30+80+20+70` | | **设置串口应答模式** | `A` | `<模式>`
• `-n`:定时上报,间隔 n 毫秒
• `0`:关闭上报
• `n>0`:仅上报第n个目标后自动切回 `A0` | `A-500`
`A0`
`A2` | | **缩放画面比例** | `Z` | `<缩放倍数>`
以画面中心为基准缩放。`Z100`=原始尺寸,`Z150`=放大至150% | `Z100`
`Z150` | | **设置分辨率** | `R` | `<分辨率>`
格式:`宽x高`,如 `552x368` | `R552x368` | | **设置检测框显示项** | `D` | `+标识符+状态`
标识符: `i`, `x`, `y`, `w`, `h`, `v`, `r`, `cx`, `cy`
状态: `1`=显示, `0`=隐藏 | `D+i1+cx1+cy1`
`D+i1+x0+y0` | --- ## 四、算法结果返回格式规范 ### 基础通用格式(适用于色块、OCR等) ``` #i{x}y{y}w{w}h{h}v{v}! ``` ### 特殊格式 - Apriltag(含旋转角度) ``` #i{i}x{x}y{y}w{w}h{h}v{v}r{r}! ``` ### 字段含义说明 | 字段 | 含义 | 说明 | | --- | -------- | ----------------------------------------------------------- | | `i` | 目标序号 | 第几个被检测到的目标(从 `1` 开始递增) | | `x` | 中心点 X 坐标 | 目标在图像中的横向像素坐标 | | `y` | 中心点 Y 坐标 | 目标在图像中的纵向像素坐标 | | `w` | 宽度 | 目标包围框宽度(像素) | | `h` | 高度 | 目标包围框高度(像素) | | `v` | 结果值 | 根据算法不同:
• Apriltag → 标签 ID
• 色块 → LAB 参数组 ID(如 S1/S2) | | `r` | 旋转角度 | 仅Apriltag | ### 示例输出(色块检测) 若检测到三个色块: ``` #i1x100y120w50h50v1! #i2x200y160w60h60v1! #i3x300y200w55h55v1! ``` ### 📌 对于多个结果,优先以 y 升序排序,其次以 x 升序排序 ---