2023年电子设计大赛E题——省一设计报告

2023-11-12

2023 年全国大学生电子设计竞赛

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

【本科组】

设计报告

目录

一、系统方案 4

(一)主控模块的论证与选择 4

1.方案一 4

2.方案二 5

3.总结 5

(二)巡线模块的论证与选择 5

1.方案一 5

2.方案二 5

3.总结 5

(三)电机模块的论证与选择 5

1.方案一 5

2.方案二 6

3.总结 6

二、理论分析与计算 6

(一)运动目标状态分析 6

(二)控制算法分析 7

三、电路与程序设计 7

(一)电路设计图 7

(二)程序设计 8

四、测试方案与测试结果 9

(一)测试方案 9

1.基本要求测试: 9

2.发挥部分测试: 10

(二)测试结果及分析 10

1、测试结果 10

五、结论与心得 10

附录 11

 

摘要:本设计基于双系统架构,以OpenMV为控制核心,通过42步进电机、二维平台、激光模块、电源模块和自制PCB等组件构建而成。OpenMV负责图像采集、识别和处理,并且作为主控利用PID算法来精确控制步进电机,从而控制二维云台的旋转。其中一个云台配备红色激光模块,用于运动目标控制系统,使红色光斑在30秒内绕屏幕边线和A4靶纸边线移动一周。另一个云台配备绿色激光模块,用于自动追踪系统,实现绿色光斑在2秒内对红色光斑进行精确追踪,并通过声光模块实时反馈追踪状态。系统功能通过按键控制,实现复位和暂停功能。经过多次测试,该系统表现出功能完善、高精度和稳定的运动性能。

 

关键词:OpenMV;PID控制;步进电机;运动控制;自动追踪;

一、系统方案

根据题目任务要求,为了实现模拟目标运动的红色光斑位置控制系统和指示自动追踪的绿色光斑位置控制系统,我们设计了两个控制系统。

第一个系统以OpenMV H7内置的STM32H743VI ARM Cortex M7 处理器作为主控模块,通过其带处理器的摄像头在屏幕上识别边线及A4靶矩形边框,并进行路径识别与规划,通过计算路径的偏差,采取控制算法,控制42步进电机的转向,步数及转数,实现云台控制红色激光光斑在屏幕上的运动。

第二个系统与第一个系统采用相同的主控模块,通过其摄像头对屏幕中运动红色光斑进行识别,并对红色光斑的位置进行追踪,实时反馈红色光斑的位置给主控板并进行路径规划,控制步进电机转动云台从而使控制绿色光斑在极短时间内向红色光斑运动。每一次确认追踪完成时系统2的蜂鸣器会发出声光提示。

(一)主控模块的论证与选择

1.方案一

采用OpenMV4 H7作为主控。OpenMV4 H7具有:STM32H743VI ARM Cortex M7 处理器,480 MHz ,1MB RAM,2 MB flash. 所有的 I/O 引脚输出 3.3V 并且 5V 耐受。并且还多用途的IO接口,有3个 I/O 引脚用于舵机控制,所有的IO口都可以用于中断和PWM(板子上有10个I/O引脚)。并且其上有可拆卸的摄像头模块系统,允许OpenMV Cam H7与不同的感光元件模组连接。使用OpenMV4 H7作为主控可以节省主控板资源,并且减少模块之间通信的时间损耗,提升系统运行速度。

2.方案二

采用32位的STM32—F103ZET6单片机,STM32基于先进的cortex-M3内核,片内外设资源丰富,时钟频率高达72MHZ,拥有114个独立可配置的I/O口,能够方便的外接挂载多个传感器,所有中断均可作为外部中断的输入,拥有13个定时器可以灵活准确的输出PWM控制电机的转速与所走的路程,价格合理技术文档齐全开发难度小。

3.总结

在多任务、多情况的条件下,我们根据开发难度以及任务需求,本系统选择方案一。

(二)巡线模块的论证与选择

1.方案一

当识别到屏幕中矩形的时候,关闭摄像头图像传输,记录四个角点坐标,并对实际距离进行解算,控制电机向四个角点沿直线移动。

2.方案二

当识别到屏幕中矩形的时候,逐帧对矩形的角点坐标进行记录,计算图像中心坐标与当前目标角点的距离,以减少该距离大小为目标进行云台的运动控制。

3.总结

综合比较以上两个方案,本系统选择方案二。

(三)电机模块的论证与选择

1.方案一

使用带步进电机驱动器的步进电机作为解决方案。步进电机的步距值不受各种干扰因素的影响,如电压、电流波形、温度变化等,在不同环境下可以稳定地工作。这意味着步进电机能够提供精确的位置控制和稳定的运动;在本赛题中,对误差有严格的规定,使用步进电机可以有效控制误差的范围,因为步进电机的误差不会长期积累,它们提供准确的步进角度和定位,从而满足对误差控制的需求;

步进电机具有良好的控制性能,快速启停和响应速度能够满足本赛题对反应时间的要求。这使得步进电机在实时应用和需要快速响应的场景中非常适用。此外,步进电机还具有高性价比,也是选择该方案的原因之一。它们在成本上相对较低,并且易于使用和编程。与其他类型的电机相比,步进电机的驱动和控制电路相对简单,减少了系统设计和调试的复杂性。

2.方案二

采用舵机,舵机也是经常被使用的一种电机模块,舵机是一种位置(角度)伺服的驱动器,适用于那些需要角度不断变化并可以保持的控制系统。舵机结构紧凑、使用方便、价格便宜,但位置精度、负载能力及维持位置的能力有限,这是不利于本赛题的完成的。

3.总结

根据本赛题任务要求,最终我们小组在电机模块的论证与选择中选择步进电机来作为运动的执行模块,以两个步进电机组成云台,分别控制上下和水平方向上的转动。本系统选择方案一。

二、理论分析与计算

(一)运动目标状态分析

在任务要求中,运动目标控制系统需要具有复位功能,接收到复位指令后需要能够从屏幕上的任意位置回到原点。控制部分主要任务是完成两个运动轨迹:

① 控制云台使红色光斑能在30秒内沿屏幕四周边线顺时针移动一周;

② 控制云台使红色光斑能在30秒内沿边界贴黑色电工胶带的A4靶纸顺时针

动一周,并且当A4靶以任意角度贴在屏幕的任意位置时,也需要满足上述要求。

自动追踪系统主要由二维云台、绿色激光笔OpenMV组成,主要工作为识别运动目标(红色光斑)并且进行追踪。

对整体的状态大致分析如下:对于运动目标控制系统,红色光斑初始位置设置为原点,先执行顺时针绕屏幕边线四周一周运动,再沿贴了黑色电工胶带的A4靶纸顺时针移动一周。对于自动追踪系统,启动后立即识别追踪红色光斑,并实时测量红色光斑以及绿色光斑之间的距离,小于等于3cm即为追踪成功,追踪成功时发出声光信号。在任何状态下,运动目标控制系统若收到复位指令则立即进行复位,运动目标控制系统和自动追踪系统均需设置暂停键,收到暂停指令立即制动。

(二)控制算法分析

对于运动目标控制系统,当摄像头识别到A4靶纸的边线时,能够逐帧识别到靶纸四个角点,控制光斑按顺时针逐一走向四个角点。在光斑移动过程中,通过对当前要走的直线拆分为多份坐标点并逐个计算红色光斑坐标与直线上的坐标之间在图像上的距离作为PID算法偏差的输入,输出量控制云台转动到每个目标点,则运动轨迹能够近似为一条直线对于自动追踪系统,当摄像头识别到红色激光点的时候,计算绿色光斑与红色光斑之间的距离,并通过PID算法控制绿色光斑精准追踪到红色光斑

图1 PID算法流程图

三、电路与程序设计

(一)电路设计图

系统1,2由OpenMV4 H7作为主控板,OpenMV Cam H7作为摄像头,42步进电机控制二维云台转动,按键控制功能以及声光信号反应状态。

 

图2 电路设计原理图

(二)程序设计

基本要求一:让运动目标控制系统具有复位功能,设定初始位置为原点,接收到复位指令后即执行复位语句,使步进电机的状态回到初始值。

基本要求二:让红色光斑在30秒内顺时针绕屏幕边线一周。为了实现此要求,本小组设计一款精准定位的卡板,将屏幕以及云台的距离严格控制在1米,满足题目的摆放位置要求并且利于OpenMV的识别以及追踪。因为具有了精准的定位,选择采取开环控制的方法控制步进电机转动,使红色光斑精准的绕屏幕边线一周,速度也能够满足题目要求。

基本要求三、四:软件设计思路如下,系统1在执行完绕屏幕边线一周运动的任务后,通过矩形识别查找视野中边界贴黑色电工胶带的A4靶纸。识别到A4靶纸之后,程序实时返回靶纸四个角点的在图像上的坐标。逐帧计算图像中心与目标点的距离,并控制步进电机转动云台直至距离减小到极小的数值,即达到追踪到目标点的目的。
发挥部分:运动目标复位,绿色光斑实现对红色光斑的追踪。通过OpenMV的识别色块功能识别红色光斑,计算红色光斑与图像中心的距离,将距离作为PID算法的偏差输入,以PID输出量实时调整控制步进电机带动云台转动,当绿色光斑与红色光斑的距离减小到极小的数值时,则判断为追踪到红色光斑,发出声光信号。

四、测试方案与测试结果
(一)测试方案
利用OpenMV IDE和USB数据线连接主控板,同时对电机驱动板上电进行调试。对系统1多次调整运动逻辑代码中需要的参数,对系统2则调整电机控制算法的PID参数。
1.基本要求测试:
①    复位运动目标控制系统,使红色光斑能从屏幕任意位置回到原点,测量原点与光斑中心距离,测量结果如附录中表2所示,满足题目要求;
②    启动运动目标控制系统,使红色光斑沿屏幕四周边线顺时针移动一周,对运动过程进行计时,测量结果如附录中表3所示,满足题目要求;
③    用约 1.8cm 宽的黑色电工胶带沿 A4 纸四边贴一个长方形,构成 A4靶纸。由于要求3和4仅有A4靶纸放置角度的区别,故将此 A4 靶纸贴在屏幕任意的位置,启动运动目标控制系统,使红色光斑沿胶带顺时针移动一周,对运动过程进行计时,测量结果如附录中表4所示,满足题目要求。
2.发挥部分测试:
①    启动自动追踪系统,使绿色光斑追踪红色光斑,对追踪过程进行计时,测试结果如附录中表5所示,满足题目要求;
②    暂停运动目标控制系统及追踪系统,测量红色光斑和绿色光斑之间的距离,测试结果如附录中表6所示,满足题目要求。


(二)测试结果及分析
1、测试结果
对要求进行了一系列测试,详细测试数据见附录

-----------------------------------------

以上就是我们小组本次电赛的设计报告的主要内容啦,希望能够对大家有些帮助,其实也是参考唐老师讲的课还有一些优秀的设计报告整合出来哒!想要了解更多关于代码,方案等可以直接点赞关注私信呀!我肯定言无不尽知无不言!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

2023年电子设计大赛E题——省一设计报告 的相关文章

随机推荐

  • day21网络编程(下)

    day21 网络编程 下 课程目标 学会网络编程开发的必备知识点 今日概要 OSI7 层模型 TCP和UDP 粘包 阻塞和非阻塞 IO多路复用 1 OSI 7层模型 OSI的7层模型对于大家来说可能不太好理解 所以我们通过一个案例来讲解 假
  • 安装【sonar】【sonarQube】免费社区版9.9

    文章目录 sonarQube 镜像容器 Linux 安装镜像 出现 Permission denied的异常 安装sonarQube 中文包 重启服务 代码上传到sonarQube扫描 java语言配置 配置 JS TS Php Go Py
  • gitee项目克隆到本地并运行

    首先电脑上要先安装node js和git 配置一下 在gitee上找到需要克隆到本地的项目 点击克隆 下载 在点击HTTPS下面的复制 github上也是类似的方式 把项目地址复制下来 在本机电脑 新建一个文件夹 命名任意 打开新建的文件夹
  • 神经元模型介绍

    一 深度学习的背景 目前 深度学习 Deep Learning 简称DL 在算法领域可谓是大红大紫 深度学习是机器学习领域中的一个新的研究方向 模仿生人类神经网络 学习样本数据的内在规律的一种方法 神经网络属于监督学习的过程 可以处理 回归
  • SQL 语句学习总结:

    1 四范式 范式好处 数据库范式是数据表设计的规范 在范式规范下 数据库里每个表存储的重复数据降到最少 这有助于数据的一致性维护 同时在数据库范式下 表和表之间不再有很强的数据耦合 可以独立的增长 ie 比如汽车引擎的增长和汽车的增长是完全
  • 接口响应时间长,前端返回请求超时解决

    在前端代码设置axios响应时间 1 全局设置 axios defaults timeout 时间 单位为毫秒 或 2 封装的http请求 const service axios create 公共接口 这里注意后面会讲 baseURL p
  • 解决Flutter输入框限制最大输入长度时,从中间输入会自动截取掉后面的内容

    一 问题原由 当限制输入框最大输入长度时 将光标移动到中间输入 当输入的内容长度加上已经输入内容的长度大于限制的输入长度时 Flutter会将光标后面的内容进行截取掉 而当我在原生Android上验证时却是自动截取输入的内容原有的内容不动
  • 输出数组中最大、小值和下标

    详细看代码 package exp 4 public class Array01 public static void main String args int arrs 1 2 2 12 7 5 声明数组并赋值 int max arrs
  • Python实现目录文件扫描功能

    日常程序编写中常常遇到需要获取目录下文件的功能 对该功能做个简单整理 供大家参考 实现遍历目录文件最常用的方法是os listdir 还有一种os walk方法 一 os listdir方法 源码中对该方法的描述 Return a list
  • 史上最详细黑盒测试用例方法总结(等价类、边界值、因果图等)

    黑盒测试用例设计方法 一 等价类 等价类划分法原理 1 把程序的输入域划分成若干部分 然后从每个部分中选取少数代表性数据作为测试用例 2 每一类的代表性数据在测试中的作用等价于这一类中的其他值 如果某一类中的一个例子发现了错误 这一等价类中
  • Flutter FutureBuilder

    FutureBuilder 是 Flutter 中的一个小部件 用于根据 Future 的结果构建用户界面 它接受一个 Future 对象和一个构建函数作为参数 FutureBuilder 将监听 Future 对象的变化 并相应地更新用户
  • useCallback 作用,useMemo ,memo作用 浅显理解

    项目中看到别人代码基本上每个函数都写了useCallback 于是去查了查到底有什么作用 快看睡着了还是没太明白 直接同事请教了一下 大概浅显的理解一点 useCallback 简单来说就是返回一个函数 只有在依赖项发生变化的时候才会更新
  • Vue 点击导航栏滑动到指定位置

    效果图 assignBlock gif 方法1
  • 前后端分离接口

    前后端分离接口的意义 目前现有前后端开发模式 后端为主的MVC时代 如下图所示 代码可维护性得到明显好转 MVC 是个非常好的协作模式 从架构层面让开发者懂得什么代码应该写在什么地方 为了让 View 层更简单干脆 还可以选择 Veloci
  • 现代密码学期末总结

    文章目录 写在前面 1 引言 知识点 习题 2 流密码 知识点 习题 3 分组密码 知识点 习题 4 公钥密码 知识点 习题 5 数字签名 知识点 习题 6 哈希函数 知识点 7 认证技术 知识点 8 密钥分配与密钥管理 知识点 习题 9
  • 大数据:对大数据的理解

    学了这么久大数据 学了好多主流大数据框架 从来没有主观意义上去深度地思考过大数据 现在对于大数据我讲讲自己的想法 1 大数据的产生 为什么会有大数据 随着互联网的发展 现在大部分日常生活都通过网络变得十分便捷 吃穿住行等等的日常生活都离不开
  • 【三十九、MySql】进阶篇--存储过程--循环(while、repeat、loop)

    1 while循环 语法 先判定循环是有条件的循环控制语句 满足条件后 再执行循环体中的sql语句 while 条件 do sql语句 end while 练习 传入一个参数n 计算1 2 3 n的值 create procedure p5
  • 卸载centos自带jdk&安装指定版本jdk

    提示 文章写完后 目录可以自动生成 如何生成可参考右边的帮助文档 删除jdk 1 查看java安装情况 2 查看 3 卸载 4 rpm总结 5 安装 1 查看java安装情况 java version 2 查看 rpm qa grep jd
  • js实现贪吃蛇小游戏

  • 2023年电子设计大赛E题——省一设计报告

    2023 年全国大学生电子设计竞赛 运动目标控制与自动追踪系统 E 题 本科组 设计报告 目录 一 系统方案 4 一 主控模块的论证与选择 4 1 方案一 4 2 方案二 5 3 总结 5 二 巡线模块的论证与选择 5 1 方案一 5 2