电赛论文模板

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

E 题)

本科组】

 2023年8月5日

运动目标控制与自动追踪系统

摘  要

本设计以基于意法半导体与ARM公司生产的STM32F103RCT6单片机为控制核心,配合LM2596S降压模块OPENMV,OLED显示屏,舵机等模块共同控制激光笔移动和跟随等功能通过按键控制不同的模式,完成相应的任务。实际测试表明,红色光斑回到原点的误差在1cm以内且能在10秒内顺时针旋转一周,

关键词:MPU6050;OPENMV蓝牙PWM编码电机

目录

1系统方案

1.1 控制系统的选择

1.2 循迹模块的论证与选择

1.3 电机模块的论证与选择

1.4视觉的论证与选择

1.5药品检测方案的论证与选择

2系统理论分析与计算

2.1 本设计的结构搭建和分析

2.2 视觉处理

2.3 循迹处理

2.4 电机处理

2.5 药物检测处理

3电路与程序设计

3.1电路的设计

3.1.1系统总体框图设计

3.1.2 逻辑系统框图

3.1.3 电源的选用及供电方式

3.2程序的设计

3.2.1程序功能描述与设计思路

3.2.2程序流程图

4测试方案与测试结果

4.1测试方案

4.2 测试结果及改进

附录1:电路原理图

附录2:源程序

1系统方案

本系统主要由控制模块、视觉处理模块、OLED显示模块、舵机降压模块,下面分别论证这几个模块的选择。

1.1 控制系统的选择 

按照本次赛题要求,控制系统芯片选用STM32系列单片机,该系列单片机中常见的型号有C8T6,RCT6。

方案一:选用STM32F103C8T6单片机,该单片机体积较小,内置72MHz的主频,可以实现高速运算和响应,包括多个定时器,ADC、DAC、USART、I2C,可以满足多种需求,更加具有结构化。但复用引脚较多且复杂,只有64KB的Flash和20KB的RAM,对于一些大型应用可能不够处理速度太慢。

方案二:选用STM32F103RCT6单片机,包括多个通用定时器、高级控制定时器、通用串行总线接口、SPI接口、I2C接口、USART接口、USB接口等,可以满足各种应用的外设需求256KB的Flash和48KB的RAM丰富的外设和高性能的处理能力,处理速度更快,能够较快完成题目要求的任务。

因此,选择方案二,采用STM32F103RCT6单片机作为本设计的主控模块。

1.2 舵机模块的论证与选择

方案一:选用较小的SG90,优点是简单及上手且小巧轻便,可以方便的实现转动任意的角度,实现控制角度的变化他的扭矩太小,精确度太低,且受环境影响较大,不足以做到控制大物件的效果不能很好地完成题目要求。

方案二:选用总线舵机,其不是使用的PWM波控制,而是采用的串口控制,支持角度回读可以实时检测到舵机当前角度位置精确度高,可以通过一个串口控制多个舵机,但需要调试的时间较长且占用资源较多。

方案三:选用数字舵机,数字舵机是由主要由马达、减速齿轮、控制电路等组成,只需要发送一次PWM信号就能保持在规定的某个位置数字舵机具有一个微控制器,可以获取更快的响应频率,抗干扰度较强,占用资源较少且易于操作。

综合以上三种方案,选择方案三。

1.3 降压模块模块的论证与选择

方案一:采用较为传统的降压芯片AMS117,其结构简单且相对较为便宜,噪声抑制度较高。但其为线性稳压,效率太低,无法承受较大的电压和输出太大的电流,无法驱动本题的舵机。

方案二:采用DC-DC降压模块LM2596,LM2596是非同步降压型电源管理单片集成电路的开关电压调节器,输入电压范围宽,最高可达40V输出电流大,能够输出3A的驱动电流,同时具有很好的线性和负载调节特性转换效率可达95%以上,效率大,功率高,耗散小,能够驱动大功率的模块。

综合以上两种方案,选择方案二。

1.4 视觉模块的论证与选择

方案一:使用k210机器视觉模块。K210支持深度学习推理任务,可以在边缘设备上进行实时图像识别、物体检测等计算密集型任务。通过配置环境以及制作数据集进行本地训练,随着数据集中数据量的增大,识别精度也随之升高。且k210环境配置简单,训练方便。

案二:使用树莓派模块。通过配置环境,编写树莓派代码以及制作数据集进行训练,相较于k210数字识别,树莓派环境配置更繁琐,且安装繁琐。

方案三:使用OPENMV视觉模块,OPENMV支持python语言开发,易于编程和调试,同时拥有丰富的库和应用例程,能非常容易地安装和配置。

由于组内成员系统学习过OPENMV,所以选择方案三

2系统的具体设计

2.1 本设计的结构搭建

本设计选择更加简便地将电池模块、总控制模块、LM2596S降压模块、按键模块、舵机模块、OPENMV视觉模块分开安装,能够直观地观察到各个模块工作时的情况,便于调节各个模块的功能。

2.2 系统方案

本系统通过LM2596S降压模块给STM32F103RCT6核心板和舵机以及OPENMV等模块供电,当系统上电后OPENMV会时刻检测光斑的位置并将其位置信息传输给RCT6,RCT6控制OLED显示模块显示光斑的位置并输出PWM信号控制舵机移动光斑的位置,当完成一个任务后,可通过按键模块切换模式,完成下一个任务,绿色光斑跟随成功之后,RCT6会控制声光模块发出声光提示。系统框图如图(1)所示。

图(1)系统框图

3总体方案的实现

3.1 OPENMV识别光斑

OPENMV相机可以通过色块识别功能来检测和跟踪指定颜色的物体。其原原理如下:

首先,相机会将捕获的图像从RGB颜色空间转换为 HSV(色相、饱和度、明度)颜色空间,HSV颜色空间更适合处理和分析颜色信息。在HSV颜色空间中,我们可以通过设定一定的阈值来将图像中的像素分为目标颜色和非目标颜色。通常,我们可以通过试验和调整阈值来选择最适合的阈值。在进行阈值分割后,OPENMV相机会利用图像处理算法检测具有颜色的目标区域,即色斑。一旦检测到了色斑,相机会提取出色斑的特征,例如位置、大小、形状等等,这些特征信息有助于进一步的处理和分析。

3.1.3电源的选用以及供电方案

电源由变压部分、滤波部分、稳压部分组成。为整个系统提供

5V或者

12V电压,确保电路的正常稳定工作。这部分电路比较简单,都采用三端稳压管实现,故不作详述。

3.2程序的设计

3.2.1程序功能描述与设计思路

  1. 程序功能描述

程序开始运行时,先检测是不是有药品放入,如果检测到药品放入,红外传感器将信号发给主控,小车开始运动并且通过视觉模块识别到数字后存储,然后在运动过程中实时检测,如果检测到和储存的数字一样的情况时,小车利用差速进行转弯,到达指定位置时停下,等红外传感器再次发生变化时,小车原路返回。

  1. 程序设计思路

       先设计出每种功能中相同的程序部分方便在各个步骤中调用,再设计出各个步骤中特有的部分加上之前的公共部分进而完成整个步骤。

3.2.2程序流程图

4测试方案与测试结果

4.2 测试结果及改进

综上所述,本设计达到哪些哪些要求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/298528.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2023年小型计算机视觉总结

在过去的十年中,出现了许多涉及计算机视觉(CV)的项目,无论是小型的概念验证项目还是更大规模的生产应用。应用计算机视觉的方法是相当标准化的: 1、定义问题(分类、检测、跟踪、分割)、输入数据(图片的大小和类型、视野)和类别(正是我们想要的) 2、注释…

Isaac Sim urdf文件导入

本教程展示如何在 Omniverse Isaac Sim 中导入 urdf 一. 使用内置插件导入urdf 安装urdf 插件 方法是转到“window”->“Extensions” 搜索框中输入urdf, 并启用 通过转至Isaac Utils -> Workflows -> URDF Importer菜单来访问 urdf 扩展。 表格中的 1,2,3 对应着…

IntelliJ IDEA快捷键和重要设置、vscode快捷键和使用

文章目录 IntelliJ IDEAIDEA快捷键:重要设置:linux远程连接:SSH连接:浏览远程主机: VS codevs code快捷键:vs code插键vue3 必安插件注意 IntelliJ IDEA 感觉百度百科就给了这个软件很好的定义&#xff0c…

云计算与大数据之间的羁绊(期末不挂科版):云计算 | 大数据 | Hadoop | HDFS | MapReduce | Hive | Spark

文章目录 前言:一、云计算1.1 云计算的基本思想1.2 云计算概述——什么是云计算?1.3 云计算的基本特征1.4 云计算的部署模式1.5 云服务1.6 云计算的关键技术——虚拟化技术1.6.1 虚拟化的好处1.6.2 虚拟化技术的应用——12306使用阿里云避免了高峰期的崩…

公众号推荐流量玩法的3个秘密

从微信生态的流量触点来看,公众号链接着私聊、朋友圈、微信群、小程序、视频号、搜一搜、看一看等一切与目标用户能接触到的中转站 流量的尽头是私域。而对于大部分普通人来说,公众号可以作为私域的第一站。且相比个人微信号,其有着深度价值…

C/C++学习笔记十三 C++中的重载运算符

1、什么是运算符重载? 运算符重载是 C 中的一项功能,使运算符(例如 、- 等)能够处理用户定义的数据类型。这种机制称为编译时多态性,并提供了为不同数据类型定制运算符行为的优点。 例如,我们可以重载“”运…

MySQL中如何快速定位占用CPU过高的SQL

作为DBA工作中都会遇到过数据库服务器CPU飙升的场景,我们该如何快速定位问题?又该如何快速找到具体是哪个SQL引发的CPU异常呢?下面我们说两个方法。聊聊MySQL中如何快速定位占用CPU过高的SQL。 技术人人都可以磨炼,但处理问题的思…

三级安全教育二维码怎么生成

三级安全教育是工人进场上岗前必备的过程,也是施工项目中非常重要的一项工作,我们要合理规范地进行安全教育培训工作,提升真实性和可靠性,保障工人的安全到位。 1、将三级安全教育制作成二维码,放在施工现场等位置,工人可以随时随…

【Linux系统基础】(6)在Linux上大数据NoSQL数据库HBase集群部署、分布式内存计算Spark环境及Flink环境部署详细教程

大数据NoSQL数据库HBase集群部署 简介 HBase 是一种分布式、可扩展、支持海量数据存储的 NoSQL 数据库。 和Redis一样,HBase是一款KeyValue型存储的数据库。 不过和Redis设计方向不同 Redis设计为少量数据,超快检索HBase设计为海量数据,…

二叉树中的深搜

目录 👉🏻计算布尔二叉树的值👉🏻求根节点到叶节点数字之和 👉🏻计算布尔二叉树的值 原题链接:计算布尔二叉树的值 mycode: class Solution { public:bool evaluateTree(TreeNode* root) {if…

为什么要出现并发?并发的三要素

大家好,我是"java继父"伯约,假如这篇对大家有帮助的话求一个赞,另外文章末尾放了我从小白到架构师多年的学习资料。 1.为什么需要多线程 众所周知,CPU、内存、I/O 设备的速度是有极大差异的,为了合理利用 C…

Mendelson AS2 介绍下载和配置

最近与一家国外公司做EDI对接,并且EDI通讯工具是基于AS2协议的。目前开源的as2的开源项目有openas2,Mendelson AS2,和国人写的freeas2但是,现在freeas2已经被从开源中国不能下载了,变为收费的版本了。 如果你需要使用基于AS2协议…