作品

2023年08月02日 至 2023年08月05日
硬件
嵌入式系统
计算机视觉
OpenMV
PID控制
目标追踪

基于 OpenMV 开发板 编写目标追踪和双电机控制程序。设计并调校 PID 控制算法,实现了激光笔对目标的精准追踪与稳定复位。根据题目要求实现了随时复位、胶带循迹、追踪另一个激光点,以满分表现斩获福建省一等奖。

2023年电子大赛 激光笔平台控制的图片

VISION PID CONTROL

把光斑位置误差变成双轴云台动作

OpenMV 检测屏幕边界与目标光斑,PID 根据二维误差持续修正两台步进电机。

≤2 cm复位误差
≤3 cm追踪距离
<2 s目标追踪
01 CAPTURE OpenMV 图像
02 DETECT 红色光斑
03 ERROR 二维偏差
04 PID 控制输出
05 MOTOR 双轴云台
OpenMV
Blob Detect
Stepper X
Stepper Y
COREPID

DESIGN DECISION

两套系统,视觉闭环

红色目标控制与绿色追踪系统物理独立。追踪端只能通过摄像头观察目标,再根据画面误差调整云台,满足禁止通信的约束。

OpenMVMicroPythonPIDStepper Motor

CAPABILITIES

满分任务

01一键复位
02边框循迹
03旋转靶纸
04自动追踪

项目背景

2023年大学生电子设计大赛是国赛,先省内选拔,优胜者可被推荐参加国赛。

比赛要求公布题目后在5天内根据题目要求开发出相应的电子系统并进行演示。

控制题赛道题目 | 运动目标控制与自动追踪系统(E题)

一、任务

设计制作一个运动目标控制与自动追踪系统。系统包括模拟目标运动的红色 光斑位置控制系统和指示自动追踪的绿色光斑位置控制系统。系统结构示意及摆放位置见图1(a)。图中两个激光笔固定在各自独立的二维电控云台上。

图1运动目标控制与自动追踪系统结构示意及摆放位置图

红色激光笔发射的光斑用来模拟运动目标,光斑落在正前方距离1m 处的白色屏幕上,光斑直径≤1cm。红色光斑位置控制系统控制光斑能在屏幕范围内任意移动。

绿色激光笔发射的光斑由绿色光斑位置系统控制,用于自动追踪屏幕上的红色光斑,指示目标的自动追踪效果,光斑直径≤1cm。绿色激光笔放置线段如图1(b)所示,该线段与屏幕平行,位于红色激光笔两侧,距红色激光笔距离大于0.4m、小于 1m。绿色激光笔在两个放置线段上任意放置。

屏幕为白色,有效面积大于 0.6x0.6平方米。用铅笔在屏幕中心画出一个边长0.5m 的正方形,标识屏幕的边线;所画的正方形的中心为原点,用铅笔画出原点位置,所用铅笔痕迹宽≤1mm。

二、要求

1. 基本要求

  1. 设置运动目标位置复位功能。执行此功能,红色光斑能从屏幕任意位置回到原点。光斑中心距原点误差≤2cm。

  2. 启动运动目标控制系统。红色光斑能在30秒内沿屏幕四周边线顺时针移动一周,移动时光斑中心距边线距离≤2cm。

  3. 用约 1.8cm 宽的黑色电工胶带沿 A4 纸四边贴一个长方形,构成A4靶纸。将此 A4靶纸贴在屏幕自定的位置。启动运动目标控制系统,红色光斑能在30 秒内沿胶带顺时针移动一周。超时不得分,光斑完全脱离胶带一次扣2分,连续脱离胶带移动 5cm 以上记为0分。

  4. 将上述 A4 靶纸以任意旋转角度贴在屏幕任意位置。启动运动目标控制系统,要求同(3)。

2. 发挥部分

  1. 运动目标位置复位,一键启动自动追踪系统,控制绿色光斑能在2秒内追踪红色光斑,追踪成功发出连续声光提示。此时两个光斑中心距离应≤3cm。

  2. 运动目标重复基本要求(3)~(4)的动作。绿色激光笔发射端可以放置在其放置线段的任意位置,同时启动运动目标及自动追踪系统,绿色光斑能自动追踪红色光斑。启动系统2秒后,应追踪成功,发出连续声光提示。此后,追踪过程中两个光斑中心距离大于 3cm 时,定义为追踪失败,一次扣2分。连续追踪失败3秒以上记为0分。运动目标控制系统和自动追踪系统均需设置暂停键。同时按下暂停键,红色和绿色光斑应立即制动,以便测量两个光斑中心距离。

  3. 其他。

三、说明

  1. 红色、绿色光斑位置控制系统必须相互独立,之间不得有任何方式通信;光斑直径小于 1cm;屏幕上无任何电子元件;控制系统不能采用台式计算机或笔记本电脑。不符合要求不进行测试。

  2. 基本要求(3)、(4)未得分不进行发挥部分(2)的测试。

评分标准

项目介绍

硬件设计

我们的思路是用两台步进电机分别控制激光笔的水平和垂直转动,通过调节电机的转动角度来控制激光笔发射光斑的位置。

电机

通过制作一个按钮板,用于控制信号的输入,包括启动、复位和暂停等功能按钮。

键盘

控制系统设计

设备选用了集成了视觉算法的OpenMV作为控制核心

为了实现目标追踪功能,我们使用了OpenMV摄像头来捕捉屏幕上的红色光斑位置,并通过图像处理算法计算出光斑的坐标,从而调整绿色激光笔的位置以实现追踪。

程序设计

OpenMV开发是基于Python语言的,我们编写了两个独立的程序,分别运行在红色光斑控制系统和绿色光斑追踪系统上。

# 红色光斑控制系统程序片段
# 获取矩形的四个点
def get_our_rect_final_pro(a, b, c, d):

    corner = [a, b, c, d]

    img.draw_circle(a[0], a[1], 5, color = (0, 255, 255),   thickness = 2, fill = False)
    img.draw_circle(b[0], b[1], 5, color = (255, 0, 255),   thickness = 2, fill = False)
    img.draw_circle(c[0], c[1], 5, color = (0, 0, 0),       thickness = 2, fill = False)
    img.draw_circle(d[0], d[1], 5, color = (255, 255, 255), thickness = 2, fill = False)

    heighest_y = min(a[1], b[1], c[1], d[1])

    ... # 还有一大堆