2023年电赛E题报告模板(K210版)--可直接使用

news2024/11/15 19:33:55

任务

图1 任务内容

要求

 图2 基本要求内容

 图3 发挥部分内容 

说明

  图4 说明内容

评分标准

  图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的值,直到找到一个合适的值,使系统的响应快速而稳定。

                                                            (1-1)

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

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

                                       (1-2)

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

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

得到最终的控制量为:

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

2.2.3 舵机转速计算

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

4.1测试方案

4.1.1 功能测试

4.3测试结果及分析

4.3.1测试结果

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

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

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

相关文章

Vue2:基础入门

Vue2:基础入门1 Date: April 10, 2023 Sum: vue简介、vue的基本使用、vue的指令、修饰符、过滤器(废)、小黑的书架、记事本 Tags: * 目标: 能够知道 vue 的基本使用步骤 掌握插值表达式和 v-bind 指令的用法 能够掌握如何使用…

以太网接口指示灯状态分析和电路设计

一、RJ45以太网连接器介绍 以带网络隔离变压器的RJ45接头为例,如HR911105A,其技术参数如下 原理框图 指示灯部分 二、PHY芯片 phy芯片以DP83848CVV/NOPB为例,查看数据手册。引脚26,引脚27和引脚28和LED灯相关,如下截…

DataGrip实时模板的配置

DataGrip实时模板的配置 File→Setting→Editor→Live Templates→点击“”→Live Template 即可新写入一条模板语句 写入新模板 缩写:seld select $END$ from dual; 注意:一开始都是默认无应用的,需要手动配置应用于所有SQL 点击difine(…

从零开始 Spring Cloud 9:RabbitMQ

从零开始 Spring Cloud 9:RabbitMQ 图源:laiketui.com RabbitMQ 是一款消息队列中间件,可以用于异步通信。 基础 安装 通过 Docker 安装镜像: docker pull rabbitmq:3-management运行 docker run \-e RABBITMQ_DEFAULT_USER…

微信小程序:点击按钮实现数据加载(带模糊查询)

效果图 代码 wxml: <!-- 搜索框--> <form action"" bindsubmit"search_all_productiond"><view class"search_position"><view class"search"><view class"search_left">工单号:</view…

力扣 416. 分割等和子集

题目来源&#xff1a;https://leetcode.cn/problems/partition-equal-subset-sum/description/ C题解&#xff08;思路来源代码随想录&#xff09; &#xff1a; 背包问题有多种背包方式&#xff0c;常见的有&#xff1a;01背包、完全背包、多重背包、分组背包和混合背包等等。…

实验笔记之——Android项目的适配

android有一个很烦人的点就是版本之间差距较大&#xff0c;且不兼容&#xff0c;导致不同版本之间代码兼容很容易出问题&#xff0c;一个常见的例子就是几年前自己开发的app&#xff0c;几年后再用竟然配置不了。。。为此&#xff0c;写下本博客记录一下配置旧项目的过程。 …

IDA+Frida分析CTF样本和Frid源码和objection模块

文章目录 一些资料IDA调试命令IDA调试安卓的10个技巧objection基本使用 Wallbreaker1frida源码阅读之frida-java 第一个实例EasyJNI第二个实例objection资料 art_trace2.pyart_trace2.js IDAFrida分析CTF样本和Frid源码和objection模块 一些资料 IDA调试命令 adb devices adb…

Redis 如何解决缓存雪崩、缓存击穿、缓存穿透难题

前言 Redis 作为一门热门的缓存技术&#xff0c;引入了缓存层&#xff0c;就会有缓存异常的三个问题&#xff0c;分别是缓存击穿、缓存穿透、缓存雪崩。我们用本篇文章来讲解下如何解决&#xff01; 缓存击穿 缓存击穿: 指的是缓存中的某个热点数据过期了&#xff0c;但是此…

我们一起聊聊Docker And Dockerfile

目录 一、前言 二、了解Dockerfile 三、Dockerfile 指令 四、多阶段构建 五、Dockerfile 高级用法 六、小结 一、前言 对于开发人员来说&#xff0c;会Docker而不知道Dockerfile等于不会Docker&#xff0c;上一篇文章带大家学习了Docker的基本使用方法&#xff1a;《一文…

Mybatis where 1=1 会导致索引失效?

背景 这几天在网上百度看到有说法 where 11 会导致索引失效 实践 1.直接where 条件 这是我自己本地建立的表&#xff0c;索引也看到了&#xff0c;是这个index_shopname 2.where 11 and 条件 这个是加了11的&#xff0c;可以看到也是走了索引的 3.直接select * from whe…

测试平台——用户模块开发

这里写目录标题 一、创建子应用二、用户注册设计1、用户注册模型类设计a、Django认证系统提供了用户模型类User&#xff0c;为什么还要定义User模型类?b、AbstractUserc、自定义用户模型类的字段有d、User模型类编写好了就可以了吗? 2、用户注册序列化器类设计a、注意b、单字…

基于分级安全的OpenHarmony架构设计

本文转载自 OpenHarmony TSC 官方微信公众号《峰会回顾第1期 | 基于分级安全的OpenHarmony架构设计》 演讲嘉宾 | 付天福 回顾整理 | 廖 涛 排版校对 | 李萍萍 嘉宾简介 付天福&#xff0c;OpenHarmony技术指导委员会安全及机密计算TSG负责人&#xff0c;华为公司科学家委员会…

机器人“瓦力”近在咫尺?谷歌最新的RT-2 AI模型简介

“首创”的机器人 AI 模型能够识别垃圾并执行复杂的动作。 上周五&#xff0c;谷歌 DeepMind 宣布了机器人变形器 2&#xff08;RT-2&#xff09;&#xff0c;这是一种“首次推出”的视觉-语言-行动&#xff08;VLA&#xff09;模型&#xff0c;利用从互联网上抓取的数据&…

理解 CSS 中的 Containing Block

前言 在开始本文之前先来看一个例子&#xff0c;下面一段简单的 html 代码&#xff0c;布局很简单&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta name"viewport" content"w…

clickhouse调研报告2

由Distributed表发送分片数据 clickhouse分区目录合并 clickhouse副本协同流程 clickhouse索引查询逻辑 clickhouse一级索引生成逻辑(两主键) clickhouse的data目录下包含如下目录: [root@brfs-stress-01 201403_10_10_0]# ll /data01/clickhouse/data total 4 drwxr-x---…

【Linux操作系统】网络配置详解:从原理到实践(详细通俗讲明DNS)

导语&#xff1a;网络配置是Linux系统中的一项重要任务&#xff0c;合理的网络配置可以保证计算机与其他设备的正常通信。本文将详细介绍Linux网络配置的原理和实践&#xff0c;包括网络配置原理、查看网络IP和网关、测试网络连通性、网络环境配置、设置主机名和hosts映射以及主…

获取全部的地区并生成表格

思路 写文章的时间2023-8-4&#xff0c;大部分网页设置的区域都是先是省&#xff0c;然后通过省获取对应的市&#xff0c;再通过市获取对应的区&#xff0c;以此类推。所以模拟的请求也是按照这个逻辑&#xff0c;先获取所有的省&#xff0c;再获取所有的市&#xff0c;最后获取…

【2023华数杯全国大学生数学建模竞赛】C题 母亲身心健康对婴儿成长的影响第一、二问

第一问部分截图 第二问部分截图 参考文献 理论和可直接运行代码获取参见&#xff1a;理论和可直接运行代码获取参见&#xff1a;理论和可直接运行代码获取参见&#xff1a;理论和可直接运行代码获取参见&#xff1a; 有人看的话更新后续问题思路。

【项目经验】产研流程(超级详细的步骤)

一、产研流程简述 项目立项-——定需求——Sprint需求宣讲会——技术方案——技术方案评审会——开发及单元测试——测试用例评审会——提测——测试——Sprint评审会——发版——Sprint复盘会 二、产研流程详情 以下部分根据Sprint里程碑节点进行循环&#xff08;sprint周期…