发作品签到
标准版

2021电赛F题国一作品

工程标签

1.9w
0
0
4

简介

2021电赛F题国一作品

简介:2021电赛F题国一作品

开源协议

Public Domain

创建时间:2021-12-12 14:12:06更新时间:2021-12-18 04:37:54

描述

1.前言

本项目为2021年电赛F题智能送药小车。

2.团队介绍

三名成员为来自电信、测控等专业三名大四学生。

3.项目分析

任务如图

9SNxLsFFqxBEyrpf0oZUFV08mU1S5Sgu5maN1NZb.png

基础项要求

Dw2vTfGYC4NELbkaT5EqcKhfVwQgbBcA1dUota88.png

4JdLInyfGqfzBlU7aCb6aOsM4WzKCgp3UNlMx6jl.png

基础项分析:首先基础项是单个小车,小车不能使用麦轮或者履带,尺寸有要求,我们的方案是两主动轮加一万向轮支撑,尺寸尽可能紧凑;循线,这里我们使用了带MCU 的红外循迹模块(从车使用的七路红外循迹模块,也可以达到要求),加入了串口陀螺仪对转向进行闭环;数字识别,尝试了openmv,最后用的k210,帧率高;由于高度限制,在主车上装了两个k210进行识别;其他外设,LCD屏,微动开关(相当于按键,检测药品),三色LED,蓝牙模块等。

HSRyNUbV4G22TPBuCYN4zjtmTRU3EkdTKMOoK3eR.png

D8AdkBmBc0A4nadTDO4qdzEerG8htKlpChVWgy5R.png

发挥项:在于两车的协同,从车使用一个k210及七路红外循迹,其他与主车相同,注意的主要在软件部分。

 

4.原理图电路分析

电源部分 

3zYzCZq5HkabPaeQwrAxfOSrMTNzcILGilksGv3J.png

使用xl4015作为为舵机供电

7d5kaa9oG88gIJtqtq0svdwJwEc1r2IuXeA6uSxS.png

5V电压输出使用tps5430

OnKBgpbbwjxgvoiwwvnaE4cGRwmdYae2r1CEzPIA.png

3V3使用tps7333,两个芯片分别为外设和MCU供电

其他外设,基本的按键LED蜂鸣器拨码,引出了所有串口,引出了空余的IO,预留了4路电机驱动接口,接电机驱动板,电池使用两节18650供电。

I9qUsHJx2IchgcEV5vJQYJI2q6AdNjwvbwpsbmn7.png

电机驱动使用BTN7960方案。

 

5.PCB设计分析

I7U9SsUzVaKh3mf4jIu5oodjgNd8NBZW9GK4Bq4B.png

电源部分比较集中,打了许多的GND过孔散热,上串口下电机接口,右侧接电机驱动板的输入。

odyW00dy52baEg3UvhfZoOts1cuID4W5xjNFUic0.png

电机驱动板

6.实物展示

BRqTwOx6Gk0WsNLAcnOzFHSG4oOtmiHnafUFH6Lh.jpeggWIoRzFX1XKYl1sPoImsRJAVAvpGn5GGwLefmFc5.jpeg

7.作品装配

IsliuZpOttbhh3ryhbAY48U2x88RfFGowL7uegl2.png

小车底板(电机孔少了一个,不影响)

T1WggunYGVVXIHMfEEQXUOdVOty5gGJRAMeaf1su.png

顶板及镜头固定件,使用5mm亚克力激光切割得到。

电池使用两节18650,电池盒热熔胶固定在底部电机与万向轮之间,两块板子固定在板上面。

注意电机要使用高线速的!

8.程序设计

VWhT3wgIstTSze59tM1tQ6jpYykX8jyl5P8eCWfp.png

主车函数如上,前面为lcd刷屏以及陀螺仪初始化,后面为出发和返程的函数。

sjPMvvRPlsVjQdPJJar9cQi2P4B7PEikwCT7uVP4.png

(control.c)

出发函数,任务是获得配送目标数字,区分基础或是发挥项,此处通过蓝牙串口有无接受到返回值判断,并对数组做初始化。

f7Km4Z7RdRBjNaByGIqtZXCs5DO31pYHsfMRyODY.png

(control.c)

两个部分包括近中远端配送,都是边行进,行进到十字时判断是否与目标数字相匹配,并记录经过的十字以及在这个十字上前进的方向(比如前进左右转),此处记录的路径在返回时作为依据。

SncStkKQmk5CJ3EIaplebu1JTBLf6nNP48fdjwHn.png

初始化十字记录

NuOqS9mg8MJEEDTBPWG6d4cLBITG5Cubx8cmGURK.png

基础项近端配送

FLHffvSdoeHZtBS5DGjpt7jpr2k9j5Bd20K9oHsr.png

基础项中端和远端,具体见注释

TDNMk3fC18lUvg8xET5ZYKgGEwKGZfI5PK9olHfB.png

转向的同时给从车发送信息

xOedhAcvBvS9phmQgMwtkWCsifabjt40lW5MgP7z.png

对k210返回信息处理,注意210可能会误判,尤其是在没有看全数字时,就要多次读取去处理。

LXiIyd2VXzrlCEMDVKJgbiwSjldafAaRanXgVHPR.png

十字判断函数,包括返回时T字 的判断。(从车使用的七路红外,检测函数不同)

aruykmz8flqBfJK9L39ydBw7D3e9BcSGvMUje4FR.png

BoDsnqhg9HSW3VqhL4Ah9j36ZKo53httX1UEacsj.png

左右转函数

iOYLxKjuuf6FIQUX8KjZcotEnxcBmos3eV23iLpp.png

终点检测函数

cgkEb8eOk2oELIR90K6eRLMV7cCuMoFdKAQHYiWK.png

返回函数(部分)

4C32BJNLfV8Z4Tk6cGbGaPSZ0IKxswzVcBLOE574.png

有无加载药物检测

iwI9ukN6wx9TOMn4KLnvklfucfxnkJ4weYA2go9z.png

(isr.c)

运动的控制,串口相关的也在isr.c里

B1dFbyqDcLMN7VaRSKkqGGp3hI9TTIqdQpmalTUz.png

老模板了,主要函数大概在以上里面

视觉部分

数字识别的方案尝试了有以下三种:

(1) openmv对不同数字图像做模板匹配,这种方案最为简单,用openmv自带的例程就可以实现,缺点在于检测精度低;

(2) jetson nano跑yolov3网络进行识别,这种方案检测精度较高,但是有两个问题,第一是检测速度只有每秒几帧,第二是nano加上电源会加重小车的重量,不利于整车的控制;

(3) k210yolov2-tiny网络进行检测,这种方案不仅检测精度高,检测速度也高,而且有现成的解决方案;

经过三种方案的尝试,最终决定采用第三种方案,用k210做数字的识别。

1. 数据集的采集

为保证识别的准确度,先将摄像头固定在小车上,然后进行数据集的采集,由于车在实际运动过程中都是正着看数字的,可能有时候会有一定的倾斜,所以我们只要拍正对数字的图片就可以了,为方便照片的采集,参考网上教程写了一个数据采集的程序。分别在不同距离不同角度采集了差不多300张图片,后期因为68、4和7这几个数字容易识别错误,又基于这几个数字采集100张图片做了数据增强。

RuU7Zv9XrMGg1roa9EcGMj3uxGpGWfC3GAhE2gZg.png

2. 数据集的标注

利用labelImg-master可视化程序进行数据集的标注。

V7A4IDg80ExnrAL4gyKyELmSWnS1eZpSeLPND5bP.png

3. 数据的划分与训练

首先是配置电脑的环境,利用Mx-yolo自带的环境配置可执行程序可以进行一键配置,安装好相应的python及其依赖库和cuda、cudnn,非常地方便,安装过程中可能会有报错,一般是网络的问题,换源之后就解决了。

6AptwHHwQEl6anl2bCjUyyhPD87yrEhs7vv8CLrS.png

配置好电脑环境之后,选择yolov2 MobileNet网络,调整Batch_size8,Alpha为0.75,训练150次,然后用gpu训练大概20分钟,训练成功会得到yolov2.tflite的模型文件。

ndIVlfuxAww6NqAlwGEyj6pitxVqvcCKHM5mNXQp.png

4. 模型部署与预测

将训练的模型yolov2.tflite文件转化为yolov2.kmodel文件,然后将其放在sd卡的根目录下,然后通过下面的k210程序调用摄像头进行数字的实时识别。再将识别的结果通过串口通信实时地传给单片机。

OCh1XO7QwsFl2LSQtOSTPEMcAJAquLvsQPmjuNrY.png

5. 识别效果展示

识别成功率接近100%

jL9N1t2MGlyrcAcEfmABA0nVjYHER6EU3xaeWNm8.png

9.总结

有足够的材料准备,方案要及早定下,队员多线并行提高效率。控制思路要明了,程序先写好框架再完善,多写注释。

10.附件

演示视频:【21电赛F题作品展示-哔哩哔哩】 https://b23.tv/j76tiI9

代码等见附件

设计图

原理图(1 / 2)
PCB

BOM

IDNameDesignatorFootprintQuantity
1Device NameBZ1BUZZER ACTIVE 12X91
2Device NameC1406031
3Device NameC15CAP ELEC 3.5-8.0X12.0(__0.6)1
4NOC38,C42,C47CAP TANT 2917/7343-313
5xxuF/xxV/FootprintC40,C41,C43,C45,C46,C4806036

附件

序号文件名称下载次数
1
识别数字模型加k210程序.zip
553
2
2021电赛3.dxf
285
3
2021电赛4.dxf
178
4
KV58-F题1车全.rar
2412
5
KV58-小车2.rar
444
克隆工程
添加到专辑
0
0
分享
侵权投诉

工程成员

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航