全国一等奖,F题:智能送药小车。
大家好,我是张巧龙,今天给大家继续带来电赛F题的分享:智能送药小车。
今天这个车也获得了全国一等奖,这次获奖队伍和上次获奖队伍,都是我赛前指导的学生做的。
上次的文章链接:做个全国一等奖的小车,其实不难(F题:智能送药小车方案分享)
赛前我带了比较多学生专门做控制题,我带的学生还有2组获得了全国二等奖,由于获奖规则的名额限制,每个学校最多2个国一,2个国二。
我们学校今年在F题取得了满额指标,其实我觉得2个国二获奖队伍也可以拿国一,奈何规则限制。
当然,组委会定的规则非常合理,必须让更多学校参与并获奖。
闲话不多说,先看展示视频:
01
方案设计
通过分析赛题可知,单个智能送药小车首先在药房处识别病房号,等待装载药品后,开始自动运送。
在运送过程中,通过识别地面上的红实线和病房号,实现自动寻径,将药品送到指定病房,并能够自动返回到药房。两车协同送药需要两车相互配合完成运送。
经过上述分析,将系统分为4个基本部分,包括单片机、摄像头处理模块、载物检测模块和无线通信模块,系统总体设计框图如图所示。
STM32F103RCT6单片来做控制,OpenMV来做巡线,K210用来识别数字,选择ZigBee模块做双车通信。
图1 整体设计结构图
02
理论分析与计算
2.1 数字识别算法
数字识别算法通过K210的模型训练来实现,模型训练过程如图3-1所示。准备好需要训练的数据集后,只需上传到Maixhub即可快速训练出模型。
本作品采用目标检测方法和Mx-yolov3模型训练,首先使用K210采集数字照片,按照数字“1”到“8”进行数据集标注和打包后,上传数据集并创建训练任务。
训练结束后,将训练结果文件拷贝至SD卡,插入开发板后上电即可运行。
K210识别数字卡片的结果通过串口发送给单片机,单片机接收并执行相应操作。
图2 模型训练过程
2.2 自动寻径算法
自动寻径算法通过OpenMV的像素颜色统计来实现,寻径示意图如图2所示。
首先从OpenMV的视野中划分出七个相连的矩形区域,然后在这七个区域内依次进行颜色统计,如果某个区域内的颜色阈值在红色阈值范围内,则认为该区域内包含红实线。
将包含红实线的区域标记为“1”,其余标记为“0”,以二进制数的方式记录数值并通过串口发送给单片机。
单片机通过标记信息判断小车相对于红实线的偏移程度,并利用PID算法精确控制小车的转向角,及时调整小车的前进方向,即可完成自动寻径。
图2 寻径示意图(OpenMV视野)
单片机通过红实线的标记信息对小车的转向进行调整的具体操作如下:
(1)若第一个区域标记了“1”,则控制小车左转0.5度;
(2)若第二个区域标记了“1”,则控制小车左转0.4度;
(3)若第三个区域标记了“1”,则控制小车左转0.3度;
(4)若第五个区域标记了“1”,则控制小车右转0.3度;
(5)若第六个区域标记了“1”,则控制小车右转0.4度;
(6)若第七个区域标记了“1”,则控制小车右转0.5度。
(7)若第二、第五两个区域,或第二、第六两个区域,或第三、第五两个区域,或第三、第六两个区域同时标记了“1”,则认为小车到达十字路口,控制小车左转或右转90度。
2.3 PID算法
小车的速度和转向控制采用PID算法。PID算法是按照系统偏差的比例(P)、积分(I)和微分(D)进行控制的一种闭环控制算法,它具有原理简单,易于实现和适用面广等优点。PID算法原理如图3所示。
图3 PID算法框图
在实际的软件控制中,使用的是离散化的PID算法表达式:
在不同的运用场景中,只需对式(1)选择相应的组合并对、和三个系数进行调节即可实现相应的PID控制。
在智能送药小车系统的PID控制中:
(1)小车的速度控制使用PI控制,其入口参数为电机编码器脉冲数测量值和电机编码器脉冲数理论值;
(2)小车的转向角控制使用PD控制,其入口参数为小车转向角测量值和小车转向角理论值。
03
电路与程序设计
3.1 电路方案设计
根据题目要求,设计了系统控制板,主要包括STM32F103RCT6单片机、电源、降压模块、ZigBee、OLED、MPU6050模块、红外传感器、电机驱动、编码器、舵机、OpenMV、K210等模块的接线端口。
实现了用STM32F103RCT6单片机控制各个模块运行的功能,电路方案设计框图如图4所示。
图4 电路结构图
3.2 程序设计
小车1需完成单个小车运送药品和两车协同运送药品的任务,程序设计流程图见:
图5 小车1程序设计流程图
4.2 小车2的程序设计
小车2需完成两车协同运送药品中送药到同一中部病房和去不同远端病房取药的任务,程序设计流程图见:
图6 小车2程序设计流程图
05
最后
由于篇幅有限,过多的细节在此不放了,本篇F题的设计报告以及代码,都已经放到知识星球了,星球的朋友们可以直接获取下载链接。
未加入星球的同学也可以获取部分代码和设计报告,可以添加微信:
还没加入星球的同学可以加入,第一期开放100人,现在已经有50人加入。
顺带着推荐下知识星球,之前发了朋友圈想做个付费平台,至于为什么要做?
1. 答疑。
很多朋友都在微信上给我留言咨询一些问题,一般我都会回复,但看到一些朋友提问表达的方式:
我想学单片机该从哪里下手?
我想参加比赛,该如何学习?
我想转行硬件,但软件也不想丢,该咋办?
这些问题太大了,真的无法回答。
其次,很多都是重复性的问题,反复回答,真的累死人。
大家可能不知道我微信总共加了多少人,三个微信号,共1.7w人。可想而知,光回答问题我每天的工作量都很大了。
这也就导致为什么很多消息回复不及时,我也有自己的工作,不可能时时刻刻守着微信给大家回消息。
也正因为回复消息不及时,许多朋友会觉得我不礼貌,直接就删除好友,我也哭笑不得。
这就可以引出第二点:沉淀知识。
2. 知识星球是什么?
知识星球是一个付费加入的社群,可以直接用小程序查看,也可以下载APP,有问答、打卡、作业、文件、图片等功能。容易用来做知识沉淀,
3. 为什么不做微信群,QQ群?
微信群的缺点大家都知道,信息容易遗漏、分享的文件容易失效,无法积累。知识星球则弥补了这些缺点。而且微信群、QQ群加入的人形形色色,发广告的,闲聊的,乱七八糟的一大堆。
知识星球对比微信社群的好处是,它更像一个社区,每天更新的内容更容易沉淀且搜索,且价值度更高。
。。。。。。
4. 搭建一个圈子。
想做一个电子相关的圈子,付费加入的朋友,肯定都是想来提升自己,付费之后肯定会更珍惜,并且更注重知识方便的学习。
希望能在圈子里让更多的球友建立联系,内推、招聘、工作经验分享,对于学生,学校保研、比赛、等等。
同时也会邀请一些大厂的工程师、高校老师、优秀的学长学姐加入星球。
。。。
星球刚上线,现在价格199元/年,未毕业的学生,提供学信网截图,99元/年,因为精力有限,可以维护的人数也是有限的,所以不会开放太多人。
价格贵?也就一两毛一天。
不贵?也需要199块钱。
第一期开放100人,现在已经有50人加入。
就看大家如何去看待。
5. 知识星球介绍
想要加入的同学,可以加微信:great_xiaolong,私聊,备注【知识星球】
全国一等奖,F题:智能送药小车。相关推荐
- 2021电赛F题智能送药小车方案分析(openMV数字识别,红线循迹,STM32HAL库freeRTOS,串级PID快速学习,小车自动返回)
2021全国大学生电子设计竞赛F题智能送药小车 前提:本篇文章重在分享自己的心得与感悟,我们把最重要的部分,摄像头循迹,摄像头数字识别问题都解决了,有两种方案一种是openARTmini摄像头进行数字 ...
- 2021电赛F题-智能送药小车-国一
2021电赛F题-智能送药小车-国一 B站视频链接:https://www.bilibili.com/video/BV1u44y1e7qk/ (这大概是b站第一个双车视频吧,嘿嘿
- 2021年全国大学生电子设计大赛F题——智能送药小车,全方位解决方案+程序代码(详细注释)山东赛区国奖
目录 1.赛题及硬件方案分析: 2.用到的主要器件清单: 3.各部分思路及代码实现 (1).小车舵机.马达驱动 (2).蓝牙通信 (3).单片机与OpenMV的串口通信 (4).单片机与OpenMV的 ...
- (不眠者①队)国电-F题:智能送药小车,广东赛区一等奖,推国赛,开源(代码+设计方案)
国电 -- F题: 智能送药小车,所有源码暂时开源 目录 国电 -- F题: 智能送药小车,所有源码暂时开源 前言 一.题目 二.硬件部分 材料清单: 材料实物图: 设计方案: 三.代码部分 数字识别 ...
- 做个全国一等奖的小车,其实不难(F题:智能送药小车方案分享)
01 前 言 大家好,我是张巧龙,今天给大家带来关于21年F题的分享:智能送药小车,出了这个题目之后,咋一看,好像比较简单. 不过大家慢慢做,越往后做越发现,坑越来越多. 第一个问题:数字识别率不高 ...
- 2021电赛国一智能送药小车(F题)设计报告
2021电赛国一智能送药小车(F题)设计报告 [写在前面的话] 电赛是一个很奇妙的过程,可能有些人觉得电赛的门槛太高,那便意味着,当你决定要参加电赛的那一刻起,这一段路.这些日子就注定不会太轻松: 我 ...
- 2021电赛F题(智能送药小车)参赛总结【视觉部分】
2021电赛F题(智能送药小车)参赛总结[视觉部分] 前言 在2021年全国大学生电子设计竞赛中,我们小组做的是F题(智能送药小车).我在小组中主要负责小车视觉功能的实现,所以在本篇参赛总结中只会涉及 ...
- 智能送药小车(一)——K210巡线
智能送药小车 K210 颜色识别 K210 找出最大色块 K210 颜色识别 这部分基本就是例程上的内容,添加了一点注释.关于相关的运用到的函数解释,可以参考K210颜色识别. import sens ...
- 智能送药小车解说(国二)
最近很多同学找我要代码 所以我在这写一下,我用的数字识别部分是用的Sipeed的摄像头,我个人觉得烧写代码确实很麻烦,但是他的像素确实很好,我也开源了代码,这个链接(https://download. ...
最新文章
- 成为你向往的那只独角兽——《独角兽项目》出版在即
- atitit. java jsoup html table的读取解析 总结
- requests下载大文件_11种方法教你用Python高效下载资源!
- VirtualBox Ubuntu个人配置
- 懂技术对产品有哪些帮助?
- 商汤春招特别策划-春招百晓生系列空宣第2期,助你收获心动的offer
- Java 算法 特殊的数字四十
- 【OpenCV】透视变换 Perspective Transformation
- php中sisson用法,session用法
- 开发工具Charles for Mac(信息抓取) v4.6.3b1
- ASA防火墙配置清除
- SLAM综述阅读笔记一:Past, Present, and Future of Simultaneous Localization And Mapping(2016)
- 江南大学物联网工程学院数据库课程实验一作业1实验报告
- Unity 鼠标拖动UI
- Java:pdf转word
- 关于 Facebook的 SWE_NG_GCR-SEAsia
- Microsoft Excel 单元格行高和列宽
- “贫民窟”下的农民工
- 《摩根写给儿子的32封信》 05 读书的经济价值
- CobaltStrike上线微信提醒
热门文章
- SAP云平台上两个ABAP系统实例之间的互连
- SAP CRM IBASE对应的搜索实现,动态SQL语句的拼装
- 有了Debug权限就能干坏事?小心了,你的一举一动尽在系统监控中
- Change code to ensure that OPA5 work also in WebIDE
- UI Blue crystall class sap_bluecrystal is added here to html node
- SAP CRM BP contact detail - workAddress
- WebIDE discovery when destination is selected from dropdown list
- 使用nodejs对Marketing Cloud的contact主数据进行修改操作
- How is SAP CRM One Order item object type determined
- 现在的编译器还需要手动展开循环吗_DSP(知识点+思考题)