作为2022年的第一篇博客,思索了很久,就以此为题吧。

11月7号随着电赛比赛的结束,我的大学竞赛生涯也差不多告一段落了。那天的心情也是无法用语言形容。第二天就又回归了正常的上课生活。

2021年的电赛,既让人期盼,又存在许多变数。这一切都要从2021年的8月4号说起…
2021年7月份末,一队人拖着疲惫的身躯回到实验室,没错。我们出去比赛了,是在天津举行的全国大学生智能车竞赛华北赛区赛。

经历了无数个日夜,赛前准备,连夜调车,连夜修改代码。直到赛前检录那会儿,我们团队的内心才真正平静下来。但是比赛总会出现意想不到的事情发生,赛场上10分钟时间,出现了问题,赛后我们也发现了问题。可能是由于N多个日夜以来的疲惫,程序里的一个参数出现了问题,我们没及时修改,导致无缘决赛。
原本如果一切顺利的话,我们至少应该是个国二,但是没有但是。

内心抱着无数个不甘回到了学校,会到了实验室,面对从前调试的赛道,内心五味杂陈。

然后的几天就是调整心态,准备8月份的电赛,实际上准备的时间确实不多了。直到官网通知电赛延期的前一个小时,我还在准备串口屏的程序,现学的,预想会用到。

电赛延期后,收拾好行囊回了家。但是回家后智能车赛的点点滴滴在脑海中依然挥之不去。智能车大赛准备的周期相当的长,足有大半年的时间,整体团队从元器件到真正将比赛作品完成,经历了无数的艰辛,无数的汗水,无数个日夜,但比赛的结果并不让人满意。

开学后的生活就是在上课和准备电赛中度过的。其实对于我来说,或者实验室的团队来说,大学的学习生活不应该只是无脑筋地学习,为了多一分而去学习。

为了准备电赛,我们团队做了往年的电赛的控制题,像风力摆,电磁跑等等,准备了各种元器件,和各模块的程序,还有其他好多。其实更重要的是锻炼了团队的合作和配合能力。

我们团队都是一起参加和经历过大大小小的七八次各类竞赛的人,经验还是很丰富的。

未完,待续…

2022年1月15日更

对于2021年的全国大学生电子设计竞赛我们的选题为F题智能送药小车。对于我们的设计作品,以下视频来自队友UP主的B站视频链接。
【2021电赛F题(送走小车)-哔哩哔哩】 https://b23.tv/2QBlx3V

未完,待续…

2022年3月26日更

F题 智能送药小车

摘要

针对本次赛题所提的各项要求,本小组采用软硬件结合的方法设计了智能送药小车。本系统设计基于高速稳定的STM3F103ZET6单片机与MM32F3277G9P单片机为主控,以运动控制与路径规划为基础,附加摄像头(自带处理器)模块、普通摄像头模块、显示屏模块等组成闭环控制系统。自带处理器的K210摄像头模块采集图像信息并进行数字识别,MT9V034总钻风摄像头用于循迹以及路径规划。单片机处理路径信息后通过PID控制精确调节智能送药小车行进方向。本智能送药小车实现了精准的数字识别,通过模型训练可进行基于数字的自学习。最终,小车实现了单车药品的精准配送以及双车协同配合配送药品的功能。

关键词

STM32F103ZET6单片机、人机交互系统、摄像头(自带处理器)、数字识别、运动控制

Abstract

According to the requirements of this competition, the team designed an intelligent drug delivery car by combining software and hardware. The system design is based on the high-speed and stable STM32F103ZET6 single chip microcomputer and MM32F3277G9P single chip microcomputer. Based on motion control and path planning, the closed-loop control system is composed of additional camera (with processor) module, ordinary camera module and display module. The OPENMV and K210 camera modules with their own processors collect image information and carry out digital recognition. The MT9V04general drilling camera is used for tracking and path planning. After the single chip microcomputer processes the path information, the travel direction of the intelligent drug delivery car is accurately adjusted through PID control. The intelligent drug delivery car realizes accurate digital recognition, and can carry out digital based self-learning through model training. Finally, the trolley realizes the accurate distribution of single vehicle drugs and the coordinated distribution of drugs with two vehicles.

Keywords

STM32F103ZET6 single chip microcomputer、human-computer interaction system、 camera (with processor)、Digital recognition、Motion control.

一、系统方案

根据题目任务要求,为了实现单车运送药品并返回药房以及双车协同配送药品并返回药房,我们设计了两辆智能送药小车。
第一辆小车以M32F2377G9P单片机作为主控模块,通过带处理器的K210模块进行病房号的数字识别,借助MT9V034总钻风进行路径识别与规划,MM32F2377G9P单片机通过计算路径的偏差,采取PID闭环控制算法,控制带有霍尔编码器的直流无刷电机的转向与转速。此外,对于药品重量的检测采用漫反射式光电传感器模块,可有效检测小车装载的药品。
第二辆小车以STM32F103ZET6单片机作为主控模块,同样通过带处理器的K210模块进行数字识别,对于路劲的规划,使用的是MT9V034总钻风摄像头,但路径信息的处理由CH32F103R8T6单片机模块进行,然后将数据传回主控模块。运动控制部分与第一辆小车相同,仍将PID控制算法用于直流无刷电机转向与转速的控制;药品的监测采用漫反射式光电传感器模块。
对于双车之间的协同运动,在两车之间采用无线通信的方式。通过无线串口模块的运用,完成双车协同配合送药的过程。下面分别论证这几个模块的选择。

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

1.方案一

采用51系列型号单片机。51单片机芯片架构简单,片内外设资源有限多数功能需要外部扩展,I/O口较少,时钟精度低,运算速度缓慢,存储容量小。

2.方案二

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

3.总结

在多任务、多情况的条件下,我们根据开发难度以及任务需求,最终我们小组选择方案二。

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

1.方案一
采用四路红外循迹模块,四路红外循迹模块通过传感器的红外发射管不断发射红外线,当发射的红外没有被反射回来或者被反射回来但强度不够大时。红外接收管处于关断状态,模块发TTL输出端为高电平,当有强度合适的红外被反射回来,则输出端为低电平。但基于这种循迹模块进行的循迹测试速度慢、效果差,并且红线检测失误率高。

2.方案二

采用MT9V04数字摄像头进行循迹。这种摄像头循迹方式通过将图像二值化并自动过滤中间红线干扰,再运用Sobel边缘检测算法进行图像边线的提取,进而加以计算,可得到不错的循迹效果。摄像头循迹方式循迹效果较好,在保证移动运动速度的同时,去除红线以及其他实物的干扰。

3.总结

我们对MT9V034数字摄像头循迹方式较为了解,使用方便,并且由于MT9V034数字摄像头的人机交互能力更好,我们更够从中能直观看出循迹效果并且利于调试。本次赛题图像处理部分要求精准快速的定位待识别物体,并且允许摄像头自带处理器模块,运用python使机器视觉算法变得简便,在短暂的三天设计周期中能够大幅减少设计时间,并且可以很好的实现所需的要求,最终我们小组选择方案二。

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

1.方案一

采用带步进电机驱动器的步进电机,步进电机具其特殊的优缺点,步进电机在低转速运行的时候容易发生异常抖动,高转速运行时转矩损失大,这对步进电机的使用产生了很大的影响。其次步进电机以及步进电机驱动器的体积较大,不利于智能送药小车的机械设计。此外,步进电机抖动对小车行进过程之中的图像采集以及处理造成不必要的误差。

2.方案二

采用带霍尔编码器的直流减速电机,直流减速电机的转向与转速容易控制,并且可控制速度范围较大,能够缩短智能送药小车的运行时间。此外,霍尔编码器可以用于速度的检测,进而利用PID算法对速度实现闭环控制。

3.总结

根据本赛题任务要求,最终我们小组在电机模块的论证与选择中选择直流减速电机来作为运动的执行模块,以车后两个直流减速电机提供动力以及转向,车头装有万向轮配合电机进行转向,最终我们小组选择方案二。

(四)摄像头模块的论证与选择

1.方案一

采用OPENMV摄像头,在OPENMV文件系统中存储多个模板,使用NCC多模板匹配算法,对每个模板遍历进行模板匹配,得到模板名称,分析得到模板对应的数字标号。但模板匹配较为局限且对移动中的物体识别效果较差。

2.方案二

采用K210,采样并标注大量数据生成数据集,使用tensorflow训练YOLO实时快速目标检测模型,将训练得到的模型剪枝优化,并存储到K210的文件系统中,系统加载时将模型调入到内存,其内置的KPU(通用的神经网络处理器)可在40ms内完成一帧图像的目标检测任务。做到准确实时快速的数字标号识别。

3.总结

本次赛题图像处理部分要求精准快速的定位待识别物体,并且允许摄像头自带处理器模块,使用带有神经网络加速器K210对数字标号的识别更加准确快速。运用MicroPython使机器视觉算法变得简便,在短暂的三天设计周期中能够大幅减少设计时间,并且可以很好的实现所需的要求,最终我们小组选择方案二。

(五)控制算法的论证与选择

1.方案一

采用模糊控制算法,模糊控制算法有许多良好的特性,它不需要事先知道对象的数学模型,具有系统响应快、超调小、过渡时间短等优点,但编程复杂,数据处理量大

2.方案二

PID控制算法按比例、积分、微分的函数关系进行运算,最后将其运算结果用以输出控制,PID控制算法是控制系统非常普遍的运算方法。

3.总结

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

二、理论分析与计算

(一)智能送药小车行进状态分析

在任务要求中,智能送药小车需要停止在药房处,小车需要识别手持的数字标号纸张,待将约200g药品一次性装载到运送小车上,小车检测到药品装载完成后,自动开始驶向病房,根据走廊上的标识信息自动识别行进,将药品送到指定药房,点亮红色指示灯,等待卸载药品;病房处人工卸载药品后,小车自动熄灭红色指示灯,开始返回;小车自动返回药房后,点亮绿色指示灯。对小车行进状态进行大致分析如下。
小车需要进行手持数字标号识别并稳定行进至指定病房,然后通过识别地面黏贴的数字标号,通过前后两次数字标号对比,判断指定病房的左右端,然后行进至病房;然后在药品被拿取后,小车需要执行一系列电机运动状态的设定,完成从指定病房返回药房的过程。
对行进状态的分析,智能送药小车的行进状态具有多重性、多状态切换的特点。病房有近端、中端、远端病房之分,中远端的病房号是随机的,病房号的取值范围在3-8之间。按照完成基本要求的顺序,首先是行进至近端两病房的其中之一并返回药房。然后需要行进至中端两侧的病房并返回药房,其一侧病房号取值在3-8之间,后面的每一次病房号的设定需要去除已有病房号。然后需要行进至远端病房并返回药房,对于远端病房号的设定,存在24种设定选择。此外,小车在基本任务要求下,需要执行前进、后退以及转弯三种动作。

(二)智能送药小车控制算法分析

总的来说,当得到系统的输出后,将输出经过比例,积分,微分3种运算方式,叠加到输入中,从而控制系统的行为,这个流程如图2-1。
在这里插入图片描述

图2-1 PID控制流程图

三、电路与程序设计

系统由两辆小车组成,小车1与小车2的电路结构基本相似,循迹采用MT9V034摄像头,数字识别采用K210,均有编码器、直流电机、陀螺仪、光电开关等核心部件,来记录路径、角度以及送药取药状态。两辆小车使用无线转串口进行通信。系统总体模块组成如图3-1。
在这里插入图片描述

图3-1 系统总体模块组成框图
软件设计思路如下,系统启动后,K210首先识别数字标号,并记录当前所需执行的任务,将识别到的数字标号和当前任务发送给主控。主控运行状态机,根据K210返回的任务号,执行相应的任务,每次任务完成后,任务号加一,并将当前任务设置为空闲状态,从而实现整个运行过程中不用按键设置即可完成所有任务的功能,软件总体设计框架如图3-2。
在这里插入图片描述

图3-2 软件总体设计框架图

四、测试方案与测试结果

(一)测试方案

1.硬件测试

运用数字万用表测量中智能送药小车各个主要元器件的状态等详细参数以及运用电路知识进行分析.此外,还需要用直流稳压电源对系统各个部分的供电电压是否稳定并且能够达到理论计算中所需的预期电压。同时,小车的机械结构进行测试。

2.程序测试

利用串口和keil5进行编程,并下载烧录到单片机中进行多次运行测试。此外通过显示屏将各种参数信息实时显示与查看便于分析。

3.硬件软件联调

多次检查机械结构部分,保证结构的稳定性。软硬件两部分联调联试,考虑各种试验环境的影响,检测系统的运行情况,分析小车的运行的实际效果。

(二)测试结果及分析

1、测试结果

(1)基本要求的测试。
① 单个小车运送药品到指定的近端病房并返回到药房。要求运送和返回时间均小于 20s。测试结果如表4-1。
② 单个小车运送药品到指定的中部病房并返回到药房。要求运送和返回时间均小于 20s。测试结果如表4-2。
③ 单个小车运送药品到指定的远端病房并返回到药房。要求运送和返回时间均小于 20s。测试结果如表4-3。
次数/次 1 2 3 4 5
去病房时间/s 7.2 6.5 7.9 6.3 8.1
回药房时间/s 7.7 7.0 7.4 6.7 7.6
表4-1 基础部分1测试结果表
次数/次 1 2 3 4 5
去病房时间/s 11.1 11.5 11.9 11.6 11.7
回药房时间/s 11.2 11.7 12.1 11.2 11.5

表4-2 基础部分2测试结果表
次数/次 1 2 3 4 5
去病房时间/s 15.2 15.9 16.1 15.8 15.9
回药房时间/s 15.6 16.2 15.7 16.0 15.6

表4-3 基础部分3测试结果表

在这里插入图片描述

(2)发挥部分的测试。

① 两个小车协同运送药品到同一指定的中部病房。小车1识别病房号装载药品后开始运送,到达病房后等待卸载药品;然后,小车2识别病房号装载药 品后启动运送,到达自选暂停点后暂停,点亮黄色指示灯,等待小车1卸载;小车 1 卸载药品,开始返回,同时控制小车2熄灭黄色指示灯并继续运送。要求从小车2启动运送开始,到小车1返回到药房且小车2到达病房的总时间(不包括小车2黃灯亮时的暂停时间)越短越好。测试结果如表4-4。
② 两个小车协同到不同的远端病房送、取药品,小车1送药,小车2取药。小车1识别病房号装载药品后开始运送,小车2于药房处识别病房号等待小车1的取药开始指令;小车1到达病房后卸载药品,开始返回,同时向小车2发送启动取药指令;小车2收到取药指令后开始启动,到达病房后停止,亮红色指示灯。要求从小车1返回开始,到小车1返回到药房且小车2到达取药病房的总时间越短越好。测试结果如表4-5。
次数/次 1 2 3 4 5
总时间/s 20.2 20.6 20.2 21.3 20.5

表4-4 发挥部分1的测试结果表
次数/次 1 2 3 4 5
总时间/s 23.9 22.5 24.2 23.5 22.9

表4-5 发挥部分2的测试结果表
在这里插入图片描述

(3)自由发挥。

在完成题目规定要求后,对系统做了进一步加强,利用七段数码管进行数字标号即目标的显示。

(三)测试分析和结论

根据上述测试数据,可以得出以下结论:智能送药小车能够完全完成赛题所要求的各项任务且实现的精准、高效。

五、结论与心得

全国大学生电子设计大赛对每一位参赛者来说既是机遇,又是挑战。电赛对我们来说是一次重要的机遇,平时的不断学习,赛前的不断训练,从知识、技术的未知,到知识、技术的浅识,再到对知识、技术的理解,每一步都见证了我们对于电子设计大赛孜孜不倦地向往。与此同时,电赛对我们来说又是挑战。面对全新的赛题,对于问题的解决,我们团队合理分工,发挥各自优势,加快赛题的解答进度。而对于我们来说,全新的题目会出现形式多样的问题,产生复杂的数据,理清严密的逻辑结构,这就极大地考验了我们团队的团队合作能力。此外,对于电子设计大赛的题目解答,我们不仅需要合理利用平时所学到的知识,并且灵活运用平时掌握的技术,还需要较强的动手实践能力。通过电赛,我们的机械结构搭建,电路设计调试,软件编写,算法设计,软件仿真测试等各项技术能力得到了显著的提高。只有不断的坚持与努力,我们才能获取最后的成功。感谢全国大学生电子设计大赛组委会向我们提供了这样一个平台和机会,让我们在未来的路上铿锵行进。

六、参考文献

[1] 罗时美.《一种智能配药送药装置》,成都瑞奇石油化工工程有限公司,2015
[2] 王小强.《智能外卖送货移动机器人系统研究》,中国计量大学,2019
[3] 李栋,张学强,王路遥.《基于PLC控制的智能药房送药系统设计》,山东理工大学电气与电子工程学院,山重建机有限公司,2016
[4] 张华美,张皎洁.《基于人工智能的脱机手写数字识别研究综述》,南京邮电大学电子与光学工程学院微电子学院,2021
[5] 徐毓凯,杨国平.《基于Sobel算子的银行卡号识别的研究》,上海工程技术大学机械与汽车工程学院,2021

获奖

终于等到了国一的证书,很激动,很怀念!
在这里插入图片描述在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐