1 方案论证
本系统主要由总控制模块、寻径控制模块、图像识别模块、压力感应模块组成,下面分别论证这几个模块的选择。
1.1 总控制系统的选择
按照本次赛题要求,控制系统选用树莓派 4B(CPU:Broadcom BCM2711,1.5 GHz,64-bit,4 核心,ARM Cortex-A72 架构,1MB shared L2 cache)来采集信号以及控制小车。
1.2 小车寻径控制的论证与选择
方案一:
车前左右对称的红外传感器 MH-Sensor(?)检测地面状况,左/右侧的传感器检测到走廊中间的红色路径时,传感器将电压变化反馈给树莓派,再对电机发出相应指令,从而达到控制小车左拐/右拐微调的目的。但红外传感器对红色路径的识别程度并不理想,控制精度较低。
方案二:
使用摄像头模块实时拍摄路况传输到树莓派,再基于 OpenCV 和 Python,对图像预处理,灰度化二值化后只保留红色路径,当中心路径偏离视频中间时,树莓派发送信号给电机驱动,控制车轮变化转速实现左右拐弯。但是因为摄像头帧率、数据处理速度和控制电机转速的精度有限,寻径控制效果不理想。
方案三:
鉴于方案一的红外传感器对红色和白色的区分精度不足的问题,我们使用灰度传感器取代红外传感器,同时加上遮光罩,使得灰度传感器受环境光的影响更小,能更稳定地判断路况。但是因为所购到的灰度传感器传输的为模拟量,因此又额外加配了 AD 转换,以更稳定地识别红色路径。至此,采用方案三。
1.3 数字识别方案的论证
利用摄像头模块拍摄实时视频结合卷积神经网络训练出最优模型识别数字。
1.4 药品压力感应方案的论证与选择
方案一:
使用红外传感器,检测到放物品/没放物品都给树莓派反馈,但是这样只能检测放没放物品,和题目要求的大约 200 克还有差距。
方案二:
使用量程 1kg 的 HX711 压力传感器模块检测药品放置是否到达 200 克,再据此给与不同反馈,这样做更符合题意,故选取方案二。
1.5 电机驱动:
使用 L298N 驱动。L298N 由 ST 公司开发和制造,具有集成高达 46V 的工作电压,高达 3A 的瞬时峰值电流和高达 25W 的额定功率的能力。此外,双通道全桥电动机驱动器芯片可以连接到标准 TTL 逻辑高电平和低电平,并且可以驱动感性负载。L298N 可以直接驱动2个直流电动机或1个2相(4相)步进电动机。
2 理论分析与计算
2.1 数字识别方法
利用摄像头模块,出发前拍照识别手持数字并记录。出发后,识别到红线交叉路口,停车拍照,拍取地面上的数字照片,对图片进行灰度化、二值化、腐蚀膨胀等预处理。基于 OpenCV 和 Python 结合 cnn 经过大量训练,准确识别出手持的和地面上的数字。数字识别准确率达到 95%以上。
2.2 自动寻径方法
中轴线一左一右两个灰度传感器探测地面,红色路径出现在左传感器下方,则小车右偏,树莓派内置写好的程序发出指令调整左右轮不同转速,实现小车左拐,反之同理。以此达到不断调整,寻径前进。
3 电路与程序设计
3.1 电路的设计
3.1.1 系统总体框图设计
系统总体框图如图 1 所示
图 1
3.1.2 电源的选用
树莓派两节干电池供电,电压 5V;小车两节干电池供电,电压 7.4V。针脚均为 5V 或者 3.3V 直流供电。直流电源供电较为简单,故不作详述。
3.2 程序的设计
图像识别部分基于 OpenCV 和 Python,结合卷积神经网络,对处于图像正中央的数字进行识别,主要思想是去除噪声,分割出数字,与训练出来的模型进行比对,得到最终识别结果。
1、程序功能描述
首先启动树莓派小车系统,红 LED 亮,停车等待识别手持数字,识别到数字后存储在系统里作为目的地,LED 灯灭,启动,寻径,遇到第一个十字路口,根据存储的数字左转或右转,到达黑色虚线处识别停车,LED 亮,等待取下药品,压力传感器检测到取消药品后,LED 灯灭,车掉头寻径回去。
2、程序设计思路
先设计出每种功能中相同的程序部分方便在各个步骤中调用,再设计出各个步骤中特有的部分加上之前的公共部分进而完成整个步骤。
4 测试方案与测试结果
4.1 测试方案及测试条件
对程序进行分块调试,先公共部分后独立部分,调试均无误后针对要求的需要进行测试,分模块测试完毕后,在实验室按照比赛要求自主搭建比赛场地,进行整体测试,包括启动系统识别数字、感知 200 克药品放置,红色路径十字路口转向,“病房门口”停车,感知 200 克药品取下,掉头,原路返回等。条件为室内自主绘制的场地。
4.2 测试结果及其完整性
经过测试,灰度传感器受环境光线影响较大,无法应对复杂多变的测试环境,因此加装了遮光罩且经过反复测试调参,最终确定了能稳定寻径的参数。数字识别部分,团队从零开始学习基于 OpenCV 的图像识别编程,从最初的极低识别准确率,团队不断尝试不同的思路和算法,拍取了近千张训练集样本,反复训练、调试、修改算法,才能在有较大噪声的情况下仍能达到的 95%的识别准确率。
4.3 测试结果分析
综上所述,本设计基本达到基本要求。