
2021电赛F题国一作品
简介
2021电赛F题国一作品
简介:2021电赛F题国一作品开源协议
:Public Domain
描述
1.前言
本项目为2021年电赛F题智能送药小车。
2.团队介绍
三名成员为来自电信、测控等专业三名大四学生。
3.项目分析
任务如图
基础项要求
基础项分析:首先基础项是单个小车,小车不能使用麦轮或者履带,尺寸有要求,我们的方案是两主动轮加一万向轮支撑,尺寸尽可能紧凑;循线,这里我们使用了带MCU 的红外循迹模块(从车使用的七路红外循迹模块,也可以达到要求),加入了串口陀螺仪对转向进行闭环;数字识别,尝试了openmv,最后用的k210,帧率高;由于高度限制,在主车上装了两个k210进行识别;其他外设,LCD屏,微动开关(相当于按键,检测药品),三色LED,蓝牙模块等。
发挥项:在于两车的协同,从车使用一个k210及七路红外循迹,其他与主车相同,注意的主要在软件部分。
4.原理图电路分析
电源部分
使用xl4015作为为舵机供电
5V电压输出使用tps5430
3V3使用tps7333,两个芯片分别为外设和MCU供电
其他外设,基本的按键LED蜂鸣器拨码,引出了所有串口,引出了空余的IO,预留了4路电机驱动接口,接电机驱动板,电池使用两节18650供电。
电机驱动使用BTN7960方案。
5.PCB设计分析
电源部分比较集中,打了许多的GND过孔散热,上串口下电机接口,右侧接电机驱动板的输入。
电机驱动板
6.实物展示
7.作品装配
小车底板(电机孔少了一个,不影响)
顶板及镜头固定件,使用5mm亚克力激光切割得到。
电池使用两节18650,电池盒热熔胶固定在底部电机与万向轮之间,两块板子固定在板上面。
注意电机要使用高线速的!
8.程序设计
主车函数如上,前面为lcd刷屏以及陀螺仪初始化,后面为出发和返程的函数。
(control.c)
出发函数,任务是获得配送目标数字,区分基础或是发挥项,此处通过蓝牙串口有无接受到返回值判断,并对数组做初始化。
(control.c)
两个部分包括近中远端配送,都是边行进,行进到十字时判断是否与目标数字相匹配,并记录经过的十字以及在这个十字上前进的方向(比如前进左右转),此处记录的路径在返回时作为依据。
初始化十字记录
基础项近端配送
基础项中端和远端,具体见注释
转向的同时给从车发送信息
对k210返回信息处理,注意210可能会误判,尤其是在没有看全数字时,就要多次读取去处理。
十字判断函数,包括返回时T字 的判断。(从车使用的七路红外,检测函数不同)
左右转函数
终点检测函数
返回函数(部分)
有无加载药物检测
(isr.c)
运动的控制,串口相关的也在isr.c里
老模板了,主要函数大概在以上里面
视觉部分
数字识别的方案尝试了有以下三种:
(1) 用openmv对不同数字图像做模板匹配,这种方案最为简单,用openmv自带的例程就可以实现,缺点在于检测精度低;
(2) 用jetson nano跑yolov3网络进行识别,这种方案检测精度较高,但是有两个问题,第一是检测速度只有每秒几帧,第二是nano加上电源会加重小车的重量,不利于整车的控制;
(3) 用k210跑yolov2-tiny网络进行检测,这种方案不仅检测精度高,检测速度也高,而且有现成的解决方案;
经过三种方案的尝试,最终决定采用第三种方案,用k210做数字的识别。
1. 数据集的采集
为保证识别的准确度,先将摄像头固定在小车上,然后进行数据集的采集,由于车在实际运动过程中都是正着看数字的,可能有时候会有一定的倾斜,所以我们只要拍正对数字的图片就可以了,为方便照片的采集,参考网上教程写了一个数据采集的程序。分别在不同距离不同角度采集了差不多300张图片,后期因为6和8、4和7这几个数字容易识别错误,又基于这几个数字采集100张图片做了数据增强。
2. 数据集的标注
利用labelImg-master可视化程序进行数据集的标注。
3. 数据的划分与训练
首先是配置电脑的环境,利用Mx-yolo自带的环境配置可执行程序可以进行一键配置,安装好相应的python及其依赖库和cuda、cudnn,非常地方便,安装过程中可能会有报错,一般是网络的问题,换源之后就解决了。
配置好电脑环境之后,选择yolov2 MobileNet网络,调整Batch_size为8,Alpha为0.75,训练150次,然后用gpu训练大概20分钟,训练成功会得到yolov2.tflite的模型文件。
4. 模型部署与预测
将训练的模型yolov2.tflite文件转化为yolov2.kmodel文件,然后将其放在sd卡的根目录下,然后通过下面的k210程序调用摄像头进行数字的实时识别。再将识别的结果通过串口通信实时地传给单片机。
5. 识别效果展示
识别成功率接近100%。
9.总结
有足够的材料准备,方案要及早定下,队员多线并行提高效率。控制思路要明了,程序先写好框架再完善,多写注释。
10.附件
演示视频:【21电赛F题作品展示-哔哩哔哩】 https://b23.tv/j76tiI9
代码等见附件
设计图
BOM
ID | Name | Designator | Footprint | Quantity |
---|---|---|---|---|
1 | Device Name | BZ1 | BUZZER ACTIVE 12X9 | 1 |
2 | Device Name | C14 | 0603 | 1 |
3 | Device Name | C15 | CAP ELEC 3.5-8.0X12.0(__0.6) | 1 |
4 | NO | C38,C42,C47 | CAP TANT 2917/7343-31 | 3 |
5 | xxuF/xxV/Footprint | C40,C41,C43,C45,C46,C48 | 0603 | 6 |

评论