
智能送药小车
简介
2021年电赛F题智能送药小车参赛总结(国一),
简介:2021年电赛F题智能送药小车参赛总结(国一),开源协议
:LGPL
描述
项目简介
2021年11.4号早上8点左右在群里看到赛题发布,我们选择长期准备的控制题。F题智能送药小车
思路分析:
这一上午基本上都是在分析赛题和讨论方案,经过分析后,觉得这个题目的重点在数字识别上,那个时候我们手上只有一个K210,和N个OpenMv4。然而openmv4完全不支持神经网络,另一方面官方删除了原有的nn库,没法使用他已有的数字识别的代码,当时我们觉得想要识别的准确,肯定是要跑神经网络的。当时只有一个K210只能让那个以前玩过的队友去搞K210的识别,而我则去尝试其他方案。就这样基本上一天就过去了,最大的进展可能就是队友把车已经搭了出来。
项目功能介绍
项目的相关功能的介绍和简介:
- 小车电源部分使用两节18650电池;
- 直流减速电机(霍尔编码器),TB6612电机驱动,PWM控制电机转速;
- 灰度传感器来识别红线进行循迹;
- 前置增加两个车灯,紧急情况下闪烁车灯,模拟汽车功能;
- 预留蓝牙无线通信模块接口,便于两个车之间通信;
- 摄像头使用K210跑训练过的模型来准确识别数字病房号;
- 药物检测使用红外开关来检测是否装载药品;
项目属性
这里可填写项目的完成进度条,根据已完成的功能来选择复选框,也可以作为功能的完成度进度调显示
- 原理图设计
- PCB图设计
- PCB打样
- 焊接测试
- 功能测试
- 程序测试
电路系统设计
电路部分主要包括供电电路以及驱动电路。
1、供电电路
供电电路采用2路LM2596S-ADJ为核心组成的DC-DC可调降压电路,一路将电池输出电压稳定在8V供小车驱动,另一路将电池电压稳定在5V供各模块使用。
2、驱动电路
主控板电路
主控板采用自主设计的集成各功能的PCB电路板,包括键盘、TFT显示屏、电机接口、串口以及LED指示灯等,且板载1117芯片可将5V电压转降至3.3V以供应芯片运行。电路如下图所示。
程序设计
本系统采用STM32F407ZGT6单片机作为核心控制芯片。
外设初始化
关于外设我们主要用到了串口,PWM,编码器等,上边时相关的初始化部分。
实现功能工程中我们主要使用了路程闭环,四个数字识别的地方我们主要识别两个,实现判断病房位置。
识别函数,我们主要使用左右摆头的方式,分别识别每个数字。
自动寻径方法
七路灰度传感器利用光敏二极管,在识别到颜色变化时会改变输出信号,单片机对七路信号同时采集,实现对偏差范围的测量,再将偏差传入角度环进行运算,得出两轮应当有的偏差数值,最终将输出PWM控制信号进行改变来实现转向。可通过不同的偏差改变不同的左右轮差值。同时,七路灰度传感器在识别十字路口和丁字路口方面有多路输出电平变化,单片机采集信号后进行处理,实现转向控制。
数字识别方法
小车驶向目标病房需要摄像头对病房号码的准确识别并且对号码位置的精确判断,前者可以使用目标分类达到很好的效果,但对目标数字位置识别涉及到对图片内多个数字的处理,存在较大的难度。
Yolov3采用的one stage目标检测算法具有较高的运算速度,可以同时检测多个目标,并对相应的目标值进行标注,获取目标的各种信息。首先通过特征提取网络提取输入特征,得到特定大小的特征图输出。输入图像分成13×13的网格单元,接着如果真实框中某个对象的中心坐标落在某个网格中,那么就由该网格来预测该对象。每个对象有固定数量的边界框,Yolov3中有三个边界框,使用逻辑回归确定用来预测的回归框(如图2.1),要检测出目标数字在图像中的位置,就得需要位置信息,也就是bounding
box,如图2.1中所示需要知道中心点的坐标,框的宽和高,也就是包含4个值:x,y,w,h,(x,y)代表 box 的中心,(w,h)代表 box 的宽和高。
Yolov3网络最终需要通过回归检测得到这些信息,回归思想是指先验框(anchor box)到真实框(ground truth box)之间是一种回归关系,先验框是通过预先选定的一些框,来帮助我们最终得到真实框的,在代码中先验框信息(宽和高)是固定在代码中的,它包含了三个尺寸,有的大有的小,且横纵比有一些区别,如图通过Yolov3网络训练后会得到一种隐射关系,先验框会回归到真实框, Anchor box 到Ground truth box之间可以通过中心点的坐标的偏移,以及框的宽和高的放缩来最终得到真实框,公式如图2.2。
采用K210采集大量原始数据,进行数据集标注,通过LabelImg工具进行数据集创建与标注,再通过Tensorflow框架训练 Yolov3模型,我们将一千两百张不同角度、不同明暗对比度、不同焦距的图片传入框架进行训练,最终得到满意的Yolov3模型,由图2.3可已看出,经过9次迭代损失率可以达到较低水平,大于9次迭代后损失率下降不再明显。
浮雕滤波器是一种常用数字滤波器,可以给图像一种3D阴影的效果。只需要用中心一边的像素减去另一边的像素。此时,像素值有可能是负数,我们将负数当成阴影,将正数当成光影,然后对结果图像加上偏移。这时候,图像大部分就变成灰色了。采用浮雕效果的核运算,在减小噪点的同时显著提高了数字特征,且运算量较小,计算更加快速,对目标检测的实时性影响较小。
测试结果分析
1.对于寻径控制偏离引导线后小车摆动幅度过大,是PID参数偏大,需要进行调节,使得小车调节方向更加平滑。
2.对于灰度传感器传入电平存在不稳定情况及时进行灵敏度调节。
3.测试时偶有出现小车识别不出病房号信息的状况,经过电脑联调发现摄像头识别出来的数字准确率只有90%,所以在程序里面加入浮雕核滤波程序,提高数字识别精度达到97%,有效提升运行时识别准确率。
4.对于小车框架的搭建,出现转向会扫线的情况,及时对框架进行机械加工。对硬件连接进行加固使得硬件结构更加稳定。
EDA工程
实物展示
演示视频
在附件中查看
设计图
BOM
ID | Name | Designator | Footprint | Quantity |
---|---|---|---|---|
1 | 10k | 5K | 3296W精密可调电阻 | 1 |
2 | 100uF | C1 | CAP-SMD_BD6.3-L6.6-W6.6-LS7.6-FD | 1 |
3 | 220uF | C2 | CAP-SMD_BD8.0-H10.5-P7.00-FD | 1 |
4 | 0.1u | C3 | C0805 | 1 |
5 | SS54A | D1 | SMA_L4.2-W2.6-LS5.1-RD | 1 |

评论