基于 MaixCAM2 与 STM32F407 的三轴龙门架拼图装置

面向电子设计竞赛拼图任务的视觉示教、碎片匹配、三轴运动与旋转校正系统。

项目概述

本项目参加 2026 年北京市大学生电子设计竞赛。装置需要识别随机放置在 A4 纸上半区的 4 块蓝色拼图片,计算每块拼图片的身份、抓取位置、目标位置与旋转角度,再由三轴龙门架依次抓取和旋转拼图片,在下半区还原示教时的矩形图案。

系统由 MaixCAM2 视觉与交互端、STM32F407 运动主控、三轴丝杆龙门架、电磁抓取机构和外置旋转圆盘组成。团队最终获得北京市本科组三等奖(2026 年 8 月)。

系统方案

  • 视觉感知: MaixCAM2 自动定位橙黄色 A4 底板并进行透视校正,随后通过 HSV 颜色分割提取蓝色拼图片;当固定颜色阈值失效时,可使用边缘与 LAB 色差方法兜底
  • 示教与规划: 赛前将 4 块固定拼图片拼成正确矩形并示教一次,系统保存各块拼图片在 A4 毫米坐标系中的目标轮廓;比赛时重新识别随机布局并计算对应关系
  • 运动主控: STM32F407 接收每块拼图片的源坐标、目标坐标和旋转角,驱动 X、Y、Z 三轴步进电机、电磁抓取机构、舵机与旋转圆盘
  • 人机交互: 触摸界面提供“示教”“干跑”“开始”和“退出”等操作,并显示识别轮廓、搬运箭头、旋转角和匹配残差

视觉识别与碎片匹配

为减少相机安装姿态和纸张摆放对结果的影响,视觉程序先检测 A4 纸四角并完成俯视透视变换,同时根据拼图片所在半区消除纸张方向的 180° 歧义。程序会在最多 30 帧内累计取得 3 帧有效的四片检测结果,从而容忍短暂反光和曝光波动。

示教时,每块拼图片被近似为 3–5 个顶点的多边形。正式运行时,算法对当前轮廓与示教轮廓枚举循环顶点对应,使用只允许旋转和平移、不允许镜像的 Kabsch 刚体拟合计算角度和残差,再枚举 4 块拼图片的一一对应关系,选择总残差最小的全局匹配。最终输出每块拼图片的抓取质心、放置质心和圆盘旋转角。

完成拼装后,系统还可依据赛题要求检查对应顶点误差是否不超过 20 mm。

通信与自动取放流程

MaixCAM2 与 STM32F407 通过 115200 baud UART 通信。视觉端按照 1–4 的顺序为每块拼图片发送一条 ASCII 任务,例如:

JOB ID=1 SX=20.00 SY=30.00 ANGLE=90.00 DX=100.00 DY=80.00

STM32 主控收到任务后,自动执行以下流程:

  1. 三轴移动至源位置并下降,电磁铁吸取拼图片;
  2. 抬升并移动至外置圆盘,将拼图片放到圆盘上;
  3. 控制圆盘旋转至目标角度,再次吸取拼图片;
  4. 移动至目标位置并释放拼图片;
  5. 前三片完成后返回 READY NEXT_JOB,第四片完成后返回 DONE ALL_4_PIECES 并回到拍照位置。

上下位机统一采用以 A4 相框左上角为原点、向右为正 X、向下为正 Y 的相对坐标;STM32 在执行任务时再加入 PUZZLE_ZERO 偏移,并在运动前检查三轴软件限位和任务顺序。

工程实现与验证

  • MaixCAM2 应用将视觉、几何、示教数据、任务求解、串口、控制器和触摸界面拆分为独立模块
  • STM32F407 固件以状态机组织拍照位、拼图零点、抓取、抬升、放置、圆盘旋转和自动任务等状态
  • 视觉端提供不会驱动机械的“干跑”模式,可在联调前核对识别轮廓、坐标、角度和任务顺序
  • 当前离线测试覆盖几何拟合、四片全局匹配、最终顶点校验、坐标变换、串口协议、控制器流程、界面布局和合成视觉场景,共 26 项测试通过
  • STM32F407 的 Keil 构建日志为 0 错误、0 警告;相机阈值、手眼坐标和抓取精度仍需在真实装置上完成标定与验证

技术栈

MaixCAM2 · MaixPy · Python · OpenCV · NumPy · STM32F407 · C · STM32 HAL · UART · 步进电机 · 电磁抓取 · 舵机 · Kabsch 刚体拟合