【2023年电赛国一必备】E题报告模板--可直接使用

news2024/9/25 13:13:53

创作不易,麻烦关注CSDN【技术交流、免费报告资料】

通过百度网盘分享的文件:https://pan.baidu.com/s/1aXzYwLMLx_b59abvplUiYw?pwd=dn71 
提取码:dn71
复制这段内容打开「百度网盘APP 即可获取」

任务

b91e7642bc8e43d5b3b9e0e89db45e09.png

图1 任务内容

要求

12b68640f29542c8881bb19aae102d48.png

 图2 基本要求内容

3c966848db1640889edcff1725eafcc5.png

 图3 发挥部分内容 

说明

bf0e74ddef784c4ba1cf08a3e29af33f.png

  图4 说明内容

评分标准

e7d19a5428784efcb1dc7d14e55feaef.png

  图5 评分内容

正文 (部分)

 

        本文使用K210芯片设计了一个运动目标控制与自动追踪系统。系统包括使用深度学习进行识别激光位置,其中红色激光笔模拟运动目标、绿色激光笔指示自动追踪,并将识别到的位置信息取控制舵机移动。通过K210实现图像处理和舵机运动控制功能,实现了红色光斑的位置控制以及绿色光斑的自动追踪功能。实验结果表明,系统能够准确追踪红色光斑,在规定的时间内完成移动和复位功能。本设计可应用于各种需要目标追踪的场景,具有较高的实用性和可扩展性。

关键词:运动目标控制,自动追踪系统,光斑位置控制,K210

1. 系统方案

本设计以K210为主控,整体系统主要由主控和舵机模块组成。

1.1 主控模块的论证与选择

方案一:选用K210芯片。

优点:K210芯片搭载了双核64位RISC-V处理器和专门的AI加速器,具有高性能的计算能力;支持常见的图像处理任务,并且有多个GPIO接口、UART、I2C、SPI等常用接口,方便与其他外设进行连接和扩展,满足不同应用场景的需求。

缺点:作为较新的芯片型号,某些功能可能尚未得到广泛验证和使用,因此在使用过程中可能存在一些潜在的问题或缺陷。

    方案二:选用OpenMV芯片。

    优点:OpenMV芯片使用MicroPython作为开发语言,提供了简洁的API和丰富的示例代码;支持多种图像处理算法;采用了优质的图像传感器,可以在低光条件下工作,并能够实时采集高质量的图像数据。

缺点:OpenMV搭载的ARM Cortex-M7处理器相对于一些主流的AI芯片和处理器而言,计算能力较弱,OpenMV的硬件接口有限,仅有一些常见的扩展接口,对于一些特殊的需求可能无法满足。

方案三:选用树莓派。

优点:树莓派搭载了ARM架构的处理器,性能较强,能够处理多种复杂的算法和任务;具有多个GPIO接口、USB接口、HDMI接口等常见接口;拥有庞大的开源社区支持,有大量的资源、文档和示例代码可供参考和使用。

缺点:功耗较大,在长时间工作或需要低功耗的应用中不太适合;掌握起来比较困难。

方案四:OpenMV+STM32。

优点: OpenMV具有丰富的图像处理功能,STM32微控制器具有强大的计算能力,可以承担复杂的控制算法和决策逻辑;且STM32微控制器提供多个GPIO接口、UART、SPI、I2C等常见接口,可以方便地连接外部传感器、执行器等设备,并与OpenMV进行数据交互。

缺点:开发复杂度较高,对开发者而言具有一定的挑战性;同时使用OpenMV和STM32,增加了硬件的复杂性和成本。

方案五:选用K210 + STM32。

优点: K210芯片具有较强的计算能力和丰富的计算资源,且内置AI加速器,支持深度学习模型的高效推理计算,STM32微控制器具有强大的计算能力和丰富的接口,可以承担控制算法和系统管理任务。

缺点:使用K210 + STM32方案需要对图像处理、机器学习算法和嵌入式系统开发有一定的了解,对开发者而言具有一定的挑战性;采用这个方案需要同时使用K210和STM32,增加了硬件的复杂性和成本。

综合考虑采用方案一,因为K210芯片具备强大的图像处理和控制接口功能,可开发性强,成本低,适合该系统的需求。

2.2 舵机的计算

2.2.1舵机控制角度范围计算

舵机的角度范围为0°到180°,要根据激光笔的位置信息来计算舵机应该转动的角度,使其能够对准目标物体。由于舵机需要能够将光斑移动到屏幕的任意位置,因此机控制角度范围为2*arctan(0.6/2D),其中D为红外传感器到屏幕的距离。

2.2.2舵机转动精度计算

舵机的转动精度需要达到小于1°的误差,取决于控制信号的分辨率。舵机的控制信号是通过脉冲宽度调制(PWM)来实现的。

舵机控制信号周期为20ms,占空比为0.5ms~2.5ms,其中0.5ms对应最小角度,2.5ms对应最大角度。因此,将舵机的角度范围等分为控制信号的脉冲宽度区间,通过调整脉冲宽度来控制舵机转动到特定角度,即每个脉冲宽度所对应的角度差。

(1)比例增益(Kp)的选择

将Kp设置为一个较小的值。然后,在实验中观察系统的响应。如果响应过度震荡并且不能稳定在目标位置,说明Kp过小。反之,如果响应过度缓慢并且稳定性差,说明Kp过大。逐步调整Kp的值,直到找到一个合适的值,使系统的响应快速而稳定。

52ffce4a0ea0454db92e4d6f393c7a3b.png                                                            (1-1)

(2)积分时间(Ti)的选择

将Ti设置为一个较大的值,然后观察系统的响应。如果系统存在静态误差,并且响应缓慢,说明Ti过大。反之,如果响应过度震荡并且不稳定,说明Ti过小。逐步调整Ti的值,直到找到一个合适的值,使系统的静态误差最小化并且响应稳定。

4cc1508a4592423e81beaf6b474cb41d.png                                       (1-2)

(3)微分时间(Td)的选择

将Td设置为一个较小的值,然后观察系统的响应。如果系统的响应过度震荡并且不稳定,说明Td过小。反之,如果响应过度缓慢,并且存在较大的超调现象,说明Td过大。逐步调整Td的值,直到找到一个合适的值,使系统的响应快速而稳定。

0f9afcd5dc9244678a346ddb82c530d6.png

得到最终的控制量为:4ec963f6df704797bd31e1dbafa589bd.png

通过适当选择和调整系数(K_p)、(K_i)和(K_d),可以实现舵机转动到目标位置的精确控制。

2.2.3 舵机转速计算

舵机的转速指的是舵机在单位时间内转动的角度,也取决于控制信号的频率和脉冲宽度。通过调整控制信号的频率和脉冲宽度,可以改变舵机的转速。

4.1测试方案

4.1.1 功能测试

eae82fa0d31c46b7a820886a1bcb67fb.png

4.3测试结果及分析

4.3.1测试结果

ba73669213b6450e84d2eee590fdee05.png

该文档是根据使用K210进行实现得到的,给出的是部分内容,想要完整文档的可以关注并私信。即可获取。

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

K8s实战入门(三)

文章目录 3. 实战入门3.1 Namespace3.1.1 测试两个不同的名称空间之间的 Pod 是否连通性 3.2 Pod3.3 Label3.4 Deployment3.5 Service 3. 实战入门 本章节将介绍如何在kubernetes集群中部署一个nginx服务,并且能够对其进行访问。 3.1 Namespace Namespace是kuber…

【电源专题】充电IC与DC-DC有什么区别

充电IC和DC-DC一样使用很广泛,如手机、平板等需要电池供电的系统中,一般都会见到充电IC的身影。那么大家有没有考虑过一个问题。充电IC与DC-DC有什么区别? 首先如下所示为充电IC的两个阶段,一个阶段是恒流充电阶段,我们一般称之为CC阶段,另一个是恒压充电阶段,我们称之为…

Java课题笔记~ IoC 控制反转

二、IoC 控制反转 控制反转(IoC,Inversion of Control),是一个概念,是一种思想。指将传统上由程序代码直接操控的对象调用权交给容器,通过容器来实现对象的 装配和管理。控制反转就是对对象控制权的转移&a…

ShaderToy着色器移植到Three.js全过程记录

推荐:用 NSDT设计器 快速搭建可编程3D场景。 作为 Publicis Pixelpark Innovationlab 研究的一部分,我们研究了如何将较低底层的语言用于网络技术。 显而易见的选择似乎是 asm.js 或 WebAssembly。 但你也可以使用 WebGL 着色器来解决面向机器的问题。 …

springboot+vue网红酒店客房预定系统的设计与实现_ui9bt

随着计算机技术发展,计算机系统的应用已延伸到社会的各个领域,大量基于网络的广泛应用给生活带来了十分的便利。所以把网红酒店预定管理与现在网络相结合,利用计算机搭建网红酒店预定系统,实现网红酒店预定的信息化。则对于进一步…

【验证测试】未初始化的全局变量和局部变量的初值

验证目标&#xff1a; 未初始化的全局变量的初值为 0未初始化的局部变量的初值为随机值 测试用例&#xff1a; #include <stdio.h>char gval1; int gval2; static long gval3;int main() {unsigned char uchTmp1;unsigned int uTmp2;printf("%d\n", gval1)…

Word中如何断开表格中线段

Word中如何断开表格中线段_word表格断线怎么弄_仰望星空_LiDAR的博客-CSDN博客有时候为了美观&#xff0c;需要实现如下的效果&#xff0c;即第2条线段被断开成3段步骤如下&#xff1a;选中需要断开的格网&#xff0c;如下&#xff0c;再选择段落、针对下框标即可。_word表格断…

Verilog学习记录-自用

always语句块一定条件写完整&#xff0c;否则电平触发&#xff0c;综合生成锁存器 task不可综合&#xff0c;主要用于仿真/验证 大部分都是并行执行的&#xff0c;只有begin end块中阻塞语句是串行 if-else和case的区别 if-else面积小&#xff0c;但时延&#xff08;执…

Service not registered 异常导致手机重启分析

和你一起终身学习&#xff0c;这里是程序员Android 经典好文推荐&#xff0c;通过阅读本文&#xff0c;您将收获以下知识点: 一、Service not registered 异常导致手机重启二、Service not registered 解决方案 一、Service not registered 异常导致手机重启 1.重启 的部分Log如…

C++封装思想之二:友元机制和运算符重载(1W字详解)

目录 友元机制和运算符重载 友元机制 友元函数 友元的作用 友元类 前置声明 友元类的注意事项 友元成员函数&#xff08;类的某个成员函数 作为另一个类的友元&#xff09; 运算符重载 运算符重载的作用 运算符重载的注意事项 运算符重载的实现 成员函数重载 友…

2021-03-03 Multisim 14.0 电池充电防止反接保护

R2R3当作充电线电阻看,也可设置这2个电阻导线电阻,电阻取值依据充电电流范围确定,由于电池存在电压因此可以用光耦检测,发光二极管当作继电器看,可采用继电器自锁,当下次再次反接的话另一个继电器同样,2个继电器相互控制.本电路可验证极性变化时2路检测的变化,图中S1为模拟电池…

计算机视觉:替换万物Inpaint Anything

目录 1 Inpaint Anything介绍 1.1 为什么我们需要Inpaint Anything 1.2 Inpaint Anything工作原理 1.3 Inpaint Anything的功能是什么 1.4 Segment Anything模型&#xff08;SAM&#xff09; 1.5 Inpaint Anything 1.5.1 移除任何物体 1.5.2 填充任意内容 1.5.3 替换任…

Finalshell连接Linux超时之Connection timed out: connect

目录 &#x1f349;前言 &#x1f33c;报错 &#x1f33c;摸索 &#x1f4aa;解决措施 &#x1f349;前言 &#xff08;1&#xff09;福利&#xff1a;花了2小时才解决的BUG&#xff0c;希望本篇文章能帮你10分钟解决&#xff01; &#xff08;2&#xff09;tips&#xff1…

6.s081/6.1810(Fall 2022)Lab3: page tables

文章目录 前言其他篇章参考链接0. 前置环境1. Speed up system calls (easy)1.1 简单分析1.2 映射1.3 页分配1.4 页释放1.5 测试 2. Print a page table (easy)2.1 简单分析2.2 实现2.3 测试 3. Detect which pages have been accessed (hard)3.1 简单分析3.2 实现3.2.1 获取参…

DBSCAN聚类

一、概述 DBSCAN(Density-Based Spatial Clustering of Applications with Noise)是一种基于密度的聚类算法&#xff0c;簇集的划定完全由样本的聚集程度决定。聚集程度不足以构成簇落的那些样本视为噪声点&#xff0c;因此DBSCAN聚类的方式也可以用于异常点的检测。 二、算法…

一零六七、JVM梳理

JVM&#xff1f; Java虚拟机&#xff0c;可以理解为Java程序的运行环境&#xff0c;可以执行Java字节码&#xff08;Java bytecode&#xff09;并提供了内存管理、垃圾回收、线程管理等功能 java内存区域划分?每块内存中都对应什么? 方法区&#xff1a;类的结构信息、常量池、…

5个顶级的开源有限元分析软件

每当我参加数值分析课程的教学时&#xff0c;都会回顾有限元方法的基础知识&#xff0c;很自然地就会出现使用哪种软件的问题。 以下讨论基于三个基本考虑&#xff1a; 在实际应用中&#xff0c;很少有人从头开始编写 FEM 代码。商业 FEM 软件通常在某些预定义的情况下非常易于…

生命在于学习——Linux安全加固以及基线检查

一、账号管理 1、口令锁定策略 基线检查&#xff1a; 查看文件more /etc/pam.d/password-auth判定条件&#xff1a;是否存在以下内容 auth required pam_tally2.so deny5 onerrfail unlock_time300 even_deny_root5 root_unlock_time600安全加固&#xff1a; &#xff08;1…

MyBatis的输入映射和输出映射

文章目录 前言案例总结resultMap的使用 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; MyBatis的输入映射和输出映射是将Java对象和数据库表的列进行映射&#xff0c;实现数据的自动转换。 输入映射&#xff08;Parameter Mapping&#xff09;&#x…

从小白到大神之路之学习运维第74天-------Docker网络模型详解

第四阶段 时 间&#xff1a;2023年8月4日 参加人&#xff1a;全班人员 内 容&#xff1a; Docker网络模型详解 目录 一、环境配置 &#xff08;一&#xff09;安装docker-ce&#xff08;Linux安装Docker&#xff09; 二、Docker网络基础 &#xff08;一&#xff09;端…