【写在前面的话】
电赛是一个很奇妙的过程,可能有些人觉得电赛的门槛太高,那便意味着,当你决定要参加电赛的那一刻起,这一段路、这些日子就注定不会太轻松;
我现在回头看真的很感谢电赛,从前期备赛面对自己未曾涉猎的技术不知如何下手的迷茫与怀疑,再到后来四天三夜紧张到不忍睡觉的未知与紧迫,和那挑战着自己脑力与体力的极限的执着,到比赛结束封箱那一刻全部都释然了;
你会学到很多很多,你会看见自己的进步,从一个小白,到打开了一扇大门,慢慢的成长;随之而来的不仅是能力,是一份底气,带来更多的是对自己的相信,那种已经不惧怕一切挑战的信心与勇气。
它就像一个跳板,让你跳到更高。
文章目录
- 2021全国大学生电子设计竞赛论文(智能送药小车(F题))
- `【写在前面的话】`
- ·【电赛宝藏链接】参加电赛的宝们必看
- `【电赛宝藏链接】`
- ·【电赛源码合集】19电磁炮、17板球、15风力摆、13倒立摆
- `【电赛源码合集】`
- 智能送药小车(F题)
- 摘 要
- 1引言
- 2系统方案
- 2.1 循迹模块的论证与选择
- 2.2 数字识别模块的论证与选择
- 2.3 药品检测模块的论证与选择
- 3系统结构与电路设计
- 3.1智能送药小车结构设计
- 3.2电路设计
- 3.2.1 系统总体框图与实物图
- 3.2.2 电机控制电路原理图
- 3.3程序的设计
- 4测试方案与测试结果
- 4.1测试方案
- 4.1.1 软件调试
- 4.1.2 硬件软件联调
- 4.2 测试条件
- 4.3 测试结果及分析
- 4.3.1测试结果
- 4.3.2结论
- 4.3.3视觉识别结果
- 附录1:电路原理图
- 附录2:源程序
【电赛宝藏链接】
四天三夜,那布满着未知与紧迫感的气息让荷尔蒙无比兴奋,挑战着脑力与体力的极限!
2021全国大学生电子设计竞赛F题参赛简记
2021年小车题完整代码及教程!
2021电赛F题视觉教程+代码免费开源
参加电赛必看的经验贴!
全国电子设计竞赛指导 (老学长挥泪经验之谈)
【电赛最全备赛资源】电赛历年赛题源码+老学长挥泪经验之谈(文章较长全网最全)+电赛论文写作模板及评分标准
电赛最全备赛资源
【电赛源码合集】
链接:百度网盘——19电磁炮.zip
提取码:wz1n
–来自百度网盘超级会员V3的分享
链接:百度网盘——17板球.zip
提取码:czjt
–来自百度网盘超级会员V3的分享
链接:百度网盘——15风力摆.zip
提取码:h30l
–来自百度网盘超级会员V3的分享
链接:百度网盘——13倒立摆.zip
提取码:y7fx
–来自百度网盘超级会员V3的分享
链接:百度网盘——(1994-2021)全国大学生电子设计竞赛历年真题
提取码:rv3l
–来自百度网盘超级会员V3的分享
智能送药小车(F题)
本设计以STM32单片机为主控模块,设计了主要包含k210机器视觉模块、Openmv机器视觉模块、蓝牙通信模块、压力检测模块、电机驱动和电源模块的智能送药小车控制系统。通过k210机器视觉模块将采集到的图片集进行本地训练,获得自己的数字检测模型。检测模型的精准度会随着训练图片集数目和训练时间不断提高。两轮的小车结构更有利于小车的转向,减小了小车所占空间。经测试,单个小车可以在20s内运送药品到指定的近端病房、中部病房、远端病房并返回到药房。60s内两个小车可以协同运送药品到同一指定的中部病房,到不同的远端病房送、取药品。两个小车性能分尺可靠,技术指标达到了设计要求。
关键词:STM32单片机;本地训练;蓝牙通讯;串级PID
该系统为了将200g药品送到指定病房,在视觉模块识别到病房号后,小车自动开始运送,根据走廊上的标识信息自动循迹,在到达指定药房并且卸载药品之后,小车自动返回。
为实现以上功能,我们将系统分为几个模块,分别有巡线模块,数字检测模块,药品检测模块,电机控制模块,蓝牙模块和供电模块。其中使用k210进行数字识别,在识别到数字之后,传输给STM32来控制电机旋转,在小车运行时k210持续检测,在路口处检测目标病房的数字,判断左右转。在到达目标病房并且已经卸载完药品之后,依然通过识别数字返回原位。两个小车之间通过蓝牙模块实现通信。
本系统主要由循迹模块、数字识别模块、药品检测模块、电机控制模块组成,下面分别论证这几个模块的选择。
方案一:使用openmv机器视觉模块。将摄像头拍摄到的图片转化为灰度图并划分为6部分,在不同区域分别确定色块位置,根据位置判定十字路口,丁字路口和直线。在直线运动阶段,通过直线色块中心点坐标与图像中心点坐标之差确定误差值,传输给下位机调节PID。
方案二:使用红外传感器。通过接收器接收红色电工胶带发出的红外线,根据接收器信号确定小车与路径相对位置,通过PID调节位置偏移量。红外传感器对于红色路径识别度较低,故舍弃改方案。
方案三:使用灰度传感器。使用高亮LED灯,通过接收管对不同强度反射光的强弱处理对比区分出路径,将接收器接收到的信号传入STM32中,通过PID调节位置偏移量。灰度传感器一手环境影响,所以舍弃该方案。
为保证识别精度,确保巡线的稳定性,所以选择方案一。
方案一:使用k210机器视觉模块。通过配置环境以及制作数据集进行本地训练,随着数据集中数据量的增大,识别精度也随之升高。且k210环境配置简单,训练方便。
方案二:使用树莓派模块。通过配置环境,编写树莓派代码以及制作数据集进行训练,相较于k210数字识别,树莓派环境配置更繁琐,且安装繁琐。
组内成员系统学习过k210识别,所以选择方案一。
方案一:使用光电传感器。通过光电传感器检测到药品已经放置在固定位置,将电平信号传递给STM32引脚实现相应动作。光电传感器仅能识别出是否放置,无法确定药品重量,精度较低,故舍弃该方案。
方案二:使用压力传感器。将药品放置在电阻式薄膜上,当检测出有200g物体,将电平信号传递给STM32引脚,控制小车的启动。相较于方案一,该方案识别精度更高。
为保证在准确识别到200g药品,所以选择方案二。
2.4 电机控制模块的论证与选择
方案一:使用直流电机控制。STM32输出PWM波,根据占空比控制电机转速。在调节角度时需要外接编码器,硬件连接更加繁琐。
方案二:使用编码电机控制。STM32通过L298N控制电机转动,带编码器的电机可以精准控制小车转动一定角度,相较于直流电机性能更加稳定,硬件连接更简洁,角度控制更精准。
为了让电机运行更准确,接线更简单,所以选择方案二。
小车结构图如图1所示,小车尺寸为20cm20cm20cm,符合设计要求。小车采用两轮结构,在旋转90°时两轮可以有效降低控制难度,通过给两轮极性相反的PWM来减小旋转半径。
图1(a) 小车主视图
图1(b) 小车俯视图
系统总体框图如图2所示,实物图如图3所示。系统主要由STM32F103单片机、K210视觉识别、灰度传感器、蓝牙模块、压力传感器、电机驱动等组成。
电机控制系统电路
如图4所示,将L298N的输入引脚IN1,IN2连接单片机,输出引脚OUT1,OUT2连接电机的端子。通过改变PWM占空比来调节电机转速。
图4 电机控制系统电路
程序流程图系统控制程序流程图,如图5所示。包含主程序流程和中断程序流程。
基于题目要求需要控制小车巡线和数字识别转向,小车巡线可以通过openmv采集当前位置和直线中心点的偏差,通过串口将偏差值输入单片机进行PID调节,单片机输出相应指令实现小车巡线运动。数字识别转向可以通过k210机器视觉模块识别图片中的数字种类和图片所在的坐标,并将识别信息传递给单片机。
图5 主程序流程图和中断程序流程图
Openmv和k210的视觉识别代码采用软件调试的方法,通过串口发送识别到的数字,在串口调试软件上直接打印出接收到的数字,确保代码的正确性。
在搭建好小车的硬件结构之后,安装Openmv,k210,STM32之后,上位机和下位机通信,上位机传输识别的数字和位置坐标,下位机进行相应动作。
测试条件:黑色和红色电工胶带用于测试巡线和停止。数字图片用于测试数字识别。
单个小车运送药品到指定的近端病房并返回到药房测试结果如表1,表2,表3,表4,表5所示。
根据上述测试数据可以得出以下结论:
1、本次设计采用模块化思想,先后完成了数字检测、电机驱动、蓝牙通讯、巡线识别和电源电路等模块的设计,较好地完成了题目的基本要求,实现了单个小车运送药品到指定的病房。在此基础上,进一步完成了题目的发挥部分,即限定时间内两个小车协同运送药品到指定病房
2、影响电机驱动的稳定性和控制精度的主要因素是两电机电流分配不均匀,为有效减少电机转速不同影响,采用双电机驱动模块分别给两个电机供电,从而有效地提高了控制精度。
3、为保证识别精度,k210在训练时要保证数据集中图片包含多个角度,每个数据包含多张图片。随着数据集增大,识别精度提高。在训练过程中,从最初50张只有50%的精度到最后500张有80%的精度,数据识别更准确,系统更加稳定。