大二期间参加学校智能车实验室,经过将近一年的备赛,有幸代表学校参加第十六届智能车 全向行进组 比赛,获得分赛区一等奖,国赛一等奖。
一. 开发环境
使用MounRiver Studio(MRS) 嵌入式集成开发环境,32 位通用增强型 RISC-V MCU CH32V103R8T6 核心板。
二. 设计思路
严格按照第十六届全国大学生智能汽车竞赛全向行进组中的竞赛方案进行设计,在竞赛要求允许的基础上进行自主设计。采用大赛组委会统一指定的H型车模,以沁恒微电子公司生产的 32 位单片机 CH32V103R8T6 为核心控制器,使用逐飞公司生产的核心板,对竞赛相关模块所使用的引脚进行划分后,自主设计PCB主板,以及需要使用的驱动模块。
三. 外设模块
智能车采用总钻风摄像头对赛道信息检测,根据黑色边线提取赛道中线;通过编码器检测智能车的实时速度;使用 PID 控制算法调节电机的转速,实现智能车在运动过程中速度和方向的闭环控制;为了提高模型车的速度和稳定性,使用上位机、拨码五轴 、TFT模块等调试工具,进行了大量硬件与软件测试。
3.1 摄像头
摄像头选用MT9V03x总钻风数字摄像头,使用 18PIN 0.5MM间距FPC接口,可输出752*480最大像素灰度图像。拥有全局快门,高动态性能,FPS可调,自动曝光等优势。
图像处理部分算法类型丰富,使用者需要从算法优势、算法难度、耗费的调试时间等多方面进行考虑。我们使用过二值化、灰度处理、逆透视、抗光算法等多种算法。(顺便吐槽一句,这个组别芯片容量太小了,导致有些算法根本放不下)
简单看一下二值化出图效果
车模位置
出图展示
3.2 编码器
编码器使用mini1024线增量式测速编码器,利用正交解码功能可以完成速度和转动方向的检测。使用蓝牙模块将实时转速回传至电脑,通过调节pid算法各项参数,使电机转速达到预期值。
安装展示
3.3. 调试工具
串口回传各模块数据,上位机显示车模运行状态,显示屏显示各部分参数,五轴拨码配合调整参数大小,通过不断调试参数,使车模快速稳定完成比赛。
调试页面
四. 硬件设计
硬件设计要求在可靠的基础上使其简单化,满足稳定工作的基本要求。
主要电路包括如下:电源稳压电路、最小系统板、摄像头接口、舵机接口、 运放接口、电机驱动器接口、编码器接口、OLED 接口、电源接口、电压指示灯、五轴按键调试工具、拨码开关、电源开关等。
部分模块原理图
五. 赛后总结
备赛期间基本没有娱乐时间,每天除了上课就是在实验室调车,周末更是全天呆在实验室,熬夜调车也是常态。临近比赛的几个月基本每天都是凌晨两三点,课都不怎么上,每天都在测试各种算法,不断地调试各种参数,又或者车上哪个地方突然出问题了,哪个芯片烧了,需要重装或者换模块,调过车的都知道,到了后期车上的东西是不能随意改动的,稍微一换好多参数都要重调,又是几天加班加点。各种原因吧,再加上疫情影响组委会时不时调整一下要求,每天都是忙忙碌碌。
好不容易熬到了省赛,带着担忧恐惧和无比瞌睡,当然还有自己的比赛车,和队友们到了省赛承办学校。报道、检录、交车,带着担忧睡了一晚,然后去赛场等待比赛。比赛期间,生怕车出问题,因为经过长途跋涉而且换了环境怕各个模块出问题,而且赛道材质以及赛道设计都是不知道的。反正带着各种担忧熬过了三四天,正式比赛的时候特别紧张,手都是抖的,毕竟将近一年的努力在此一举。虽然在比赛期间出了一些问题,但好在最后的结果是好的。以较好的名次进入了分赛区决赛,决赛还是以较好的成绩拿下了省一,进入国赛。
拿下国赛名额后,由于疫情影响,当时大家都在等通知,有的学校让队员们回家等消息,但是我们只能在学校一边继续调车,一边等消息。这段时间其实才是备赛期间最难受的,而且在这期间也发生了很多事,很长一段时间都是在心情沉重的调车,不过现在想想或许这一切都是一种人生的经历吧。由于疫情原因,第十六届的国赛很有意思,获得国赛奖项的制度也很有意思,这里就不细说了。最终我们一直在学校待到了国赛时间。然后比了国赛,拿了国一,离开学也就剩五六天了。
这一年的备赛竞赛经历,可以说是相当的丰富多彩。经历了酸甜苦辣,体会了喜怒哀乐,看到了人间百态,也得到了人生经历,某种意义上说也算是功德圆满吧。结束了一年的忙碌竞赛,突然闲下来感觉还有点不适应,然后写了这篇文章,一半是分享,一半是想记录一下自己的经历吧。
最后是比完赛以后的跑车视频,感兴趣的可以看一下,新人参赛有什么问题也可以互相交流。