2026全国电赛H题 车载平衡滚球运动控制系统|STM32F103+K230完整方案
2026/7/30 4:46:11 网站建设 项目流程

一、赛题需求深度拆解

1.1 题目核心任务

  1. 车体尺寸限制:整车≤35cm×25cm轮式小车,电池独立供电;
  2. 执行机构:4分PPR水管改造凹槽摆杆,左端铰接高度≥5cm,摆杆由舵机驱动俯仰倾斜,依靠重力实现Φ1cm钢球左右滚动;水管内壁禁止任何增摩擦改造,违规直接不予测试;
  3. 检测规则:小车循迹仅允许使用红外光电传感器,钢球位置必须由摄像头视觉识别;
  4. 附加要求:车载显示屏尺寸≤2英寸、场外视频图传+录像留存、定点稳球、行驶过程动态稳球、指定刻度定位等多任务考核。

1.2 考察四大核心能力

  1. 机械结构工程设计:PPR水管开槽规范、铰链安装、舵机连杆角度传动机构;
  2. 多级闭环控制算法:钢球位置环-摆杆倾角环-执行器驱动环三级串级PID;小车独立循迹差速PID;
  3. 嵌入式AI视觉检测:K230实现钢球圆心定位、像素与物理刻度映射、低延迟坐标串口下发;
  4. 多系统集成调度:运动控制、姿态补偿、视觉通信、WiFi图传、OLED状态显示多模块并行稳定运行。

1.3 本方案选型说明(为什么选F103+K230)

  • STM32F103C8T6:低成本、资料极多、定时器资源刚好满足舵机PWM、电机驱动、编码器测速,足够承载两路PID闭环,适合预算有限队伍;
  • K230:内置NPU算力远超ESP32-CAM,霍夫圆检测、反光抗干扰能力更强,独立承担视觉运算不占用主控资源,同时支持WiFi推流/HDMI输出满足赛题图传要求。

二、系统总体硬件架构

2.1 整体硬件拓扑框图

┌─────────────────────────────────────────────────────┐ │ 视觉处理单元:K230开发板 + OV摄像头 │ │ 1. ROI裁剪→灰度模糊→霍夫圆检测→钢球坐标解算 │ │ 2. 像素映射实际刻度值,TTL串口下发给STM32 │ │ 3. WiFi MJPG图传推流 / HDMI采集卡录像 │ └───────────────┬─────────────────────────────────────┘ │ 3.3V TTL串口交叉连接 ▼ ┌─────────────────────────────────────────────────────┐ │ 运动主控单元:STM32F103C8T6 │ │ ├─ TIM1 PWM → MG996R舵机(摆杆倾角控制) │ │ ├─ TIM2 PWM → TB6612 直流减速电机驱动(小车行驶) │ │ ├─ TIM3 正交编码器 → 电机速度闭环 │ │ ├─ I2C1 → MPU6050 六轴姿态传感器(倾角前馈补偿) │ │ ├─ I2C1 → 0.96寸OLED屏(时长+球位置显示) │ │ ├─ GPIO PC0~PC6 → 7路TCRT5000红外循迹阵列 │ │ └─ USART1 中断接收K230下发钢球位置数据 │ └─────────────────────────────────────────────────────┘

2.2 STM32F103定时器资源精细化分配(重点)

F103C8T6定时器资源紧张,严格分配避免冲突:

定时器功能用途外设引脚
TIM1舵机标准20ms PWM输出PA8
TIM2左右轮电机两路PWM调速PA0/PA1
TIM3编码器正交测速模式PA6/PA7
USART1与K230串口通信PA9(TX)/PA10(RX)
I2C1MPU6050 + OLED共用总线PB6/PB7

注意:所有传感器、执行器统一3.3V逻辑电平,电机、舵机采用独立电源供电,防止电压跌落导致串口乱码、主控死机。

2.3 完整BOM物料清单

模块分类器件名称数量作用说明
主控核心STM32F103C8T6最小系统板1全车运动控制、PID运算、逻辑调度
视觉单元K230开发板+配套摄像头1钢球识别、坐标解算、WiFi图传
执行机构MG996R金属齿轮大扭矩舵机2(1备1用)PPR摆杆倾角连杆驱动
小车驱动直流减速电机+TB6612驱动板2套差速循迹小车底盘
循迹传感器TCRT5000红外对管模块7路黑线循迹,加权计算偏差值
姿态反馈MPU6050六轴陀螺仪加速度计1摆杆俯仰角读取+车体晃动前馈补偿
显示模块0.96寸I2C OLED显示屏1车载时长、钢球位置、运行状态显示
结构件4分PPR水管、合页铰链、连杆支架1套滚球凹槽摆动机构
被控对象Φ1cm实心钢球≥3颗防止丢失、备用替换
供电配件12V锂电池、5V稳压模块、杜邦线2套整车双组备用电源

三、机械结构详细设计方案

3.1 PPR水管摆杆制作规范(硬性规则不能违规)

  1. 截取长度:单根水管总长25cm,不超出35cm车身限制;
  2. 开槽方式:沿轴线剖开上半部分,保留底部120°~150°圆弧承重槽,保证钢球稳定卡在槽内;
  3. 内壁要求:原始光滑状态,禁止打磨、贴胶带、涂胶水增加摩擦力,否则测试直接作废;
  4. 刻度标定:仅在凹槽外侧边缘粘贴0.1cm间隔刻度条,中心点标记零点O,左右±5cm量程;
  5. 安装高度:左侧铰链固定支架离地高度≥5cm,右侧通过舵机摇臂+连杆实现升降倾斜。

3.2 角度执行机构两种可选方案

  1. 方案A(比赛首选):MG996R舵机+连杆机构
    舵机转动角度线性转化为摆杆右端升降量,结构简单、代码只需要PWM角度映射,调试成本低;注意必须加装金属舵臂,高频摆动避免扫齿。
  2. 方案B(高精度备选):步进电机+丝杆滑台
    倾角控制精度更高,但响应速度偏慢,需要限位开关,代码复杂度高,非必要不推荐。

3.3 小车底盘布局规划(俯视)

  • 前部:7路红外传感器横向排布,用于弯道、直道黑线循迹;
  • 中部:纵向固定PPR摆动摆杆,K230摄像头支架垂直俯拍凹槽全程;
  • 后部:主控板、驱动模块、电池、舵机集中布线;
  • 优化点:过弯离心力易导致钢球甩出,底盘尽量降低重心,走线做扎带固定减震。

四、K230视觉检测与图传实现

4.1 K230整体功能定位

  1. 不参与任何闭环控制,只做感知层:识别钢球→计算物理位置→串口下发给STM32;
  2. 并行任务:视频流编码推流,满足场外电脑录像存档的赛题硬性要求。

4.2 钢球识别完整算法流程

  1. ROI区域锁定:框选水管凹槽拍摄区域,过滤背景杂物,减少算力开销;
  2. 图像预处理:灰度化→高斯模糊→腐蚀膨胀消除水管内壁反光噪点;
  3. 目标特征提取:
    • 限定圆形半径9~11mm,霍夫圆检测筛选唯一钢球;
    • 进阶优化:二值化轮廓查找+最小外接圆,亚像素重心定位提升精度;
  4. 物理刻度标定:赛前拍摄刻度模板,建立像素坐标 ↔ 实际厘米值映射系数;
  5. 数据打包下发:通过TTL串口以固定帧格式发送,刷新率≥50Hz;
  6. 视频推流同步执行。

4.3 串口通信协议(极简可靠,比赛零bug)

  • 电平:3.3V对3.3V直连,TX交叉对接RX;
  • 波特率:115200 8N1;
  • 数据帧格式:#数值\r\n
    示例:
#0.00\r\n // 钢球居中零点 #-3.20\r\n // 向左偏移3.2cm #2.75\r\n // 向右偏移2.75cm

STM32在串口中断仅做数据缓存,主循环解析浮点值送入位置环PID。

4.4 两种图传落地方案(应对赛场WiFi干扰)

方案1:WiFi模块MJPG流推流(便捷)

K230外接WiFi模块开启AP热点,笔记本连接局域网IP,浏览器打开实时画面并使用OBS录制视频,对标原ESP32-CAM方案使用逻辑。

方案2:HDMI输出+USB采集卡录制(稳定性拉满)

直接HDMI输出原始画面至采集卡,电脑端录制,彻底规避赛场大量2.4G设备信道拥堵、丢包卡顿问题,建议作为备用兜底方案。

4.5 K230专属避坑点

  1. 俯拍镜头近距离畸变较大,可微调镜头焦距或增加近摄垫圈;
  2. 视觉处理存在固定几毫秒延迟,后端PID微分参数不可过大,避免系统振荡;
  3. 对传回的钢球坐标做一阶低通滤波平滑,抑制识别跳变干扰。

五、STM32F103控制算法核心设计(全文重点)

5.1 三级串级PID闭环架构(决定稳球成败)

外环:钢球位置环(最外层)
  • 设定值:定点0cm / 指定±5cm刻度;
  • 反馈值:K230串口解析得到的钢球实际位置;
  • 输出量:期望摆杆俯仰角度;
  • 作用:消除钢球静态偏差,I积分项抵消稳态误差。
中环:摆杆倾角环
  • 设定值:位置环输出目标倾角;
  • 反馈值:MPU6050读取摆杆Pitch俯仰角;
  • 输出量:舵机目标PWM角度;
  • 作用:补偿舵机连杆机械非线性、车体颠簸扰动,提升响应速度。
内环:执行器驱动环

舵机直接PWM定位,无需额外速度环;若使用直流电机驱动倾角机构则增加速度PID。

核心原理:单级PID无法克服钢球滚动惯性导致的持续振荡,串级结构内环提前抑制扰动,闭环稳定性大幅提升。

5.2 小车红外循迹独立PID

  1. 7路TCRT5000采集黑白电平,加权计算轨道中心偏差量;
  2. PID输出左右轮差速PWM值,直道降低P值保证平稳,弯道动态增大P提升转向灵敏度;
  3. 关键联动策略:检测到大偏差急转弯时,主动降低小车行驶速度,同时给滚球控制增加前馈补偿,防止离心力将钢球抛出凹槽。

5.3 车体姿态前馈补偿(高分加分项)

小车加速、减速、转弯会带来车身侧倾,直接导致钢球被动偏移。利用MPU6050采集车身Roll横滚角,叠加前馈量至摆杆目标倾角:

目标倾角 = 位置环PID输出 + 车体倾角×前馈系数Kf

提前预判扰动并修正摆杆角度,大幅提升行驶过程中稳球效果。

5.4 STM32F103算力适配优化(必做)

  1. F1无硬件FPU浮点单元,PID运算尽量采用定点缩放算法,减少大量float运算造成主控卡顿;
  2. 闭环周期不需要强行拉满200Hz,稳定50Hz闭环即可可靠运行;
  3. 串口中断只做字节缓存,复杂数据解析放置主while循环,避免中断过长导致丢数据;
  4. 电池压降对舵机响应影响大,最终参数务必在半电状态下复测整定。

六、软件功能整体逻辑框图

系统上电初始化 ├─ 外设初始化:定时器PWM、I2C、串口、GPIO、OLED、MPU6050 ├─ K230握手等待,确认视觉数据正常接收 ├─ MPU6050静置3秒零偏校准 └─ 大循环轮询执行 ├─ 串口解析K230钢球位置数据(滤波平滑) ├─ 三级串级PID计算 → 输出舵机角度 ├─ 7路红外采集 → 循迹PID → 小车差速行驶 ├─ 车身姿态前馈补偿叠加修正 ├─ OLED刷新:运行时间、钢球当前刻度、工作模式 └─ 按键检测:定点模式/行驶稳球模式切换

七、四天备赛时间规划 & 三人分工(可直接写进报告)

Day1 硬件搭建与模块单独调通

  • 结构组员:PPR水管开槽、摆杆舵机连杆装配、整车底盘组装、红外传感器排布;
  • 视觉组员:K230摄像头对焦调试、霍夫圆识别代码编写、串口坐标下发功能打通;
  • 控制组员:STM32最小系统外设驱动编写、循迹传感器读取、MPU6050姿态读取、OLED显示调试。

Day2 算法单模块闭环实现

  • 结构组员:机械加固、支架减震、电源分路供电优化、解决舵机抖动共振;
  • 视觉组员:像素-刻度标定校准、识别精度优化、WiFi图传推流与录像功能完成;
  • 控制组员:小车循迹PID跑通、三级串级PID框架编写、静态定点稳球任务调试成功。

Day3 系统联调与动态任务调试

  • 结构组员:随时整改机械松动、限位干涉问题;
  • 视觉组员:解决光线干扰识别跳变问题,降低传输延迟;
  • 控制组员:行驶中动态稳球联调、弯道前馈减速、车体倾角补偿算法落地,全任务流程跑通。

Day4 最终固化与文档整理

  • 全体:参数固化、多次上电稳定性拷机测试、作品打包;
  • 分块撰写设计报告:机械结构部分、视觉算法部分、控制算法与软件流程部分,20:00前完成封箱。

八、全套避坑指南(电赛血泪经验)

8.1 赛规红线绝对不能碰

  1. PPR水管内壁任何打磨、粘贴摩擦材料直接判无效测试;
  2. 刻度条只能贴在槽体外沿,禁止贴在钢球滚动路径上;
  3. 小车循迹严禁使用摄像头,只能使用红外光电传感器;
  4. 车载显示屏物理尺寸严格≤2英寸。

8.2 硬件与供电坑

  1. K230与STM32必须3.3V直连,禁止接入5V电平烧毁IO;
  2. 舵机、电机大负载单独供电,主控板LDO独立稳压,避免电压波动串口乱码;
  3. MG996R高频往复摆动极易发热降扭矩,必须预留备用舵机。

8.3 算法与控制坑

  1. 视觉反馈存在延迟,PID微分参数D切勿过大,否则高频抖动;
  2. F103单片机浮点运算吃力,闭环频率适度降低,保证系统实时性;
  3. 过弯不做减速前馈,大概率钢球直接甩出水槽导致任务失败;
  4. MPU6050上电必须静置校准,否则倾角零点漂移导致补偿反向。

8.4 图传赛场环境坑

赛场大量WiFi设备干扰2.4G信道,优先预留HDMI+采集卡录像方案作为兜底,防止图传失效扣分。


九、总结与拓展优化方向

本方案以低成本STM32F103C8T6为主控,K230承担AI视觉检测与视频推流,完美满足2026电赛H题全部考核点,机械结构简单易加工、控制逻辑成熟可靠、代码可复用性强,适合绝大多数普通本科队伍落地参赛。

可后续迭代优化点

  1. 增加卡尔曼滤波对钢球位置数据做最优估计,进一步抑制识别噪声;
  2. 引入模糊PID/增量式PID提升不同负载下自适应性;
  3. K230增加目标丢失容错逻辑,无钢球时向上位机发送标记帧避免主控PID异常。

**

需要源码可私信

**

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询