一些备赛的时间轴

  • 碎碎念
  • 前期准备
  • 为期20天的培训
    • 图形获取和指示系统
    • 智能小车
    • 自动行驶小车
  • 省赛
  • 写在最后

碎碎念

电赛准备主要集中在七月份,前前后后做了三道题就直接比赛了。我们的准备确实很充分,到了比赛当天早上十点我们已经解决了蓝牙通信MSP432等基本的代码问题,然后就是小车PD算法和跑圈逻辑问题。
电赛给了我整个大学以来最充实的一个暑假。老师每次都只是点到为止,大部分时间都是自己在琢磨。非常感谢CSDN,整个电赛学的大部分东西都是CSDN上的。为表示感谢,且不甘心一个月成果仅剩一张奖状,打算将这个月学到的知识写成blog,一方面记录自己的学习以免遗忘(说不准明年还来呢),一方面和大家交流交流,希望能碰撞出更多的启发。

前期准备

大约是刚开学的时候,大概三四月份,那时候跟何佬和搞智能车的浩然哥组队,这实力稳得雅痞。当时跟着b站一个阿婆主一起做,做的寻迹小车。当时买了很多模块,用的c8t6最小系统板,开始上手学习Keil。当时的学习就是一整个混沌状态,学寄存器和固件库都学不懂,看原理也不懂。后面浩然哥说直接上手hal库就行了。但是b站野火的hal库感觉讲的还是固件库,很混乱,看完还是不知道怎么写。后面搜到小蜜蜂,一种相见恨晚的感觉,讲的很清楚,很适合入门,就是外设讲的有点少。接着跟着另一个视频写了MPU6050的代码,才算真正入门。
后来课业压力比较大,大家都开始忙起来了,电赛的事情就暂时搁置了。
但是多亏了浩然哥,我们这前期看似没什么成果的准备,明里暗里为后面备赛、比赛提供了不少帮助。

为期20天的培训

说是培训,倒不如说是训练。老师给题目然后我们自己摸索着做。这里主要写一写心得吧,具体的题目思路应该会另开blog写。浩然哥因为别的任务不得不离开我们队,后面邀请了博哥一起干。我们练了三个题目:图形获取和指示系统小车循迹+视觉小车寻迹+视觉+小车会车

图形获取和指示系统

题目意思主要是通过视觉获取图形形状,正方形或者圆形,然后激光笔在设定位置可以沿着黑线或者白线绕一圈并且停下。发挥部分是识别图形形状、图形大小并且给出图形面积,识别圆形、矩形迷宫并且实现走迷宫。


我就是从这个题目入坑的openmv,openmv确实是一个非常强大而且好用的摄像头。三个练习题都用到了openmv,因此到比赛的时候openmv已经使用很熟练了。
做这个题目的时候,我和何佬基本已经会使用Keil了,博哥接触的比较晚,而且用的win11,安装驱动碰到了很多麻烦。
老师发过几个摄像头,包括pixy,还有ov5640,但是能找到的例程和教程都很少,ov5640更是要从底层开始编程。挣扎了大概三天,还是决定斥巨资买openmv。
另外,何佬发现hal库的例程实在太少,他之前学了一个月的固件库,知道固件库的好用。所以他花了两天封装了固件库,我们称之hel库(helao库)。后面小车题调用hel库写起来嘎嘎快。
这个阶段已经解决openmv和单片机通信模块超声波测距模块步进电机模块
中间遇到了很多问题,比如步进电机和电机驱动的连线,有一天突然不动了,查了一下午发现是一根线断了;再比如摄像头看不见激光笔,一气之下发现了openmv调阈值的妙招等等。
这个阶段用的是stm32f407最小核心板,32位处理器,相对f103可以更好地处理浮点数,又引出很多引脚,很适合外设多的情况。

智能小车

第二题是小车循迹,因为刚刚上手小车,没有很多花里胡哨的跑法,就是沿着黑线跑,越快越好,跑一圈停或者跑两圈停,期间需要识别地面的图形、数字,声光提示。

这个阶段还没有接触编码器,只能数大概给的PWM波判断是否完成一圈。用的是减速直流电机,整个小车看起来比较笨重,跑的也不快。
主要视觉非常痛苦,下午和晚上光线一变颜色阈值又改变了,而且摄像头的角度影响矩形、圆形、三角形的判断。后来请教了另一个组的同学,知道了一个在官网没看到的东西,叫solidity,有机会详细写这道题的话再细讲吧。数字识别没有做出来,时间不太够。
这个题目循迹用的也是openmv,视野里面分三段识别黑线,求出偏移角度,传递给单片机,再通过PD算法给PWM波,达到循迹的目的。现在想回来,小车走的不太顺滑估计是PD的参数没有调好的缘故。
验收前两天吧,烧了一块407,烧的那天晚上,何佬抱着车,反复看电池和407,愁的看起来一晚老了好几岁。后面何佬说,可能是因为串口和编译器同时插407,烧了。

自动行驶小车

做这道题的时候已经是离比赛不到一个星期了。我们换上了适合比赛大小的小车,带编码器的两辆很轻巧的车,带有编码器,自动计算车轮转动圈数,可以用作速度PD,也可以计算行驶圈数。这个题目要求小车可以顺时针逆时针寻迹,提高要求中要实现两小车在左边区域顺利会车。

这个寻迹跟循迹不同,它是两边有线,中间都是空白。看着很像飞思卡尔的赛道,我们连夜找浩然哥。使用两边黑线规划路线会有局限,最后还是用第二次练习的循迹。篇幅有限,暂时不展开了。
这个题目调车调的有点久,还是不要三个人围着车一起调,效率低低低。跑这辆小车的时候,主要是我和何佬在调,就先让博哥去把蓝牙通信封装好,然后学一学MSP,谁能想到,这无意之举居然在省赛起到了最最最关键的作用!! 尽管用MSP的小车还没有跑起来。

我开始尝试做数字识别,前前后后买了两个K210。前面用openmv做数字识别效果并不好,我们买的是openmvh7,就是openmv4,没有4plus强大的机器学习功能。坐牢坐了两天标注了两千多张数据集,最后识别效果不尽人意。买了K210,训练了五百多张,除了帧率有点低,识别正确率还是很高的。但确实K210对色彩没有openmv那么敏感。

省赛

赛题公布后的很长一段时间,我跟他们俩打趣说好像没我啥事了,我写报告吧。确实这个题目看似视觉的内容不是很多,而且他们俩一早上焦头烂额在弄MSP432和蓝牙通信,我就在旁边帮忙借借器材打打杂。这个分叉口其实挺好做的,之前循迹的基础上,视野每个部分本来是寻找一个最大色块,现在改成寻找两个最大色块,分成左边和右边分别计算偏移角,要走外圈直接取右边的偏移角,走内圈直接取左边。停止线也好做,色块面积大于一定值就认为是停止线。等待停止线我取巧了,因为会混淆停止线,我干脆不区分了,第一次停五秒,第二次直接停。

第一天早上我们就实现蓝牙通信了。多亏博哥封装好了MSP,我们俩即使不会MSP,也能直接调用博哥封装的函数写逻辑。晚上我们调车确实是太浪费时间了,在走廊这么昏暗的环境,还要小车循迹,也太难为它了。
在大部分逻辑代码还没完成的情况下,最高效的应该是一个人调车,一个人往后写代码,一个人修改代码。当然这只是我的想法,不容易维持,因为小车一旦跑好一些了又忍不住跑过去看,再聊上几句,回来就不知道写到哪了。
我们没有用光电循迹,摄像头帧率能达到60fps,已经很够了。也没有用超声波测距,用过openmv自带的3D测距AprilTag模块,但事实上要看完整AprilTag码两小车距离已经是少于20cm了。因此比较巧妙的用了之前的色块识别,同样后面再细细讲呗。

最后一天凌晨一点多已经跑出要求一和要求二了,结果到了七点多其中一辆跑不起来了,轮子一直打滑,拿起来在跑,放下去又不动了。换了轮子,换完轮子换电机,换完电机换电机驱动,主车的电机驱动应该是能驱动减速电机的,可是已经来不及买了。L298N好像是驱动不了减速直流电机。老师叫我们换15V电机又烧了一个L298N,后面老师送来飞思卡尔的电机驱动,已经是十点多了好像,来不及再折腾了。于是放弃第四问的速度要求,换回以前轻巧的小车。两辆车重新跑起来,已经是十二点多了。午饭已经没有心思吃了,马上重新调参,写第四问,大概在三点多,第一第二第四问基本搞定了,开始调第三问。第三问出了bug,看代码也没问题,咬咬牙重写一个开环的。那时通宵了一整天我脑袋已经不清晰了,坐在电脑前面,有思路但就是写不出来。找来何佬把代码交给他继续写。最后还是没有调出来。

封箱前,我们的车还是会摄像头看不见到处乱跑,验收那天非常紧张。调试的时候还会看不见停止线,在弯道跑飞。及时发现是反光问题,后面还算顺利。

写在最后

本来因为暑假留校,整个人都很难过。培训的时候,整个实验室氛围极好,每个组都很认真在学习。毫不夸张地说,一个学期学的一门课程充其量也不一定比得上这个月。小车题虽然听说很卷,但要我重来,我也会选小车。我们每一点进步都能体现在小车上,它毫不掩饰表现给我们看,那种成就感和欣慰感难以言表。

2022年电设省赛碎碎念【C题小车题省一】相关推荐

  1. 2022杭电多校赛第八场

    2022杭电多校赛第八场 文章目录 2022杭电多校赛第八场 1004.Quel'Thalas 1001.Theramore 1011.Stormwind 1008.Orgrimmar 1005.Ir ...

  2. 【电赛】电设校赛常用电路整理

    电设校赛常用电路整理 写在前面 引用与致谢 单电源供电集成运放 电压比较器 单限比较器 过零比较器 改进:限制幅度和设置偏置 滞回比较器 窗口比较器 波形发生与变换 正弦波 RC正弦振荡电路 LC正弦 ...

  3. 电设国赛获奖作品学习笔记

    逆变电桥及其驱动电路 电压检测,电流检测电路.电流检测用了Allegro的霍尔电流传感器 声音发射模块的设计: 输入信号经过电位器分压后输入LM386的第3脚,通过调节R1和C1调节放大器的增益,组成 ...

  4. 【2022团体程序设计天梯赛】赛后的一些个人碎碎念

    仅是一些个人感想的碎碎念,没有对比赛的题目分析和看法. 终于是打完了2022年的天梯赛,个人成绩一般般,没有超常的发挥,也算不上失常,说得上是中规中矩吧.对我来说,天梯赛有着特殊的意义,心里自然也是感 ...

  5. 【2022研电赛】商业计划书赛道华南区二等奖:基于机器视觉的智能驾驶辅助系统

    本文为2022年第十七届中国研究生电子设计竞赛商业计划赛道华南赛区二等奖作品分享,参加极术社区的[有奖活动]分享2022研电赛作品扩大影响力,更有丰富电子礼品等你来领! 团队介绍 参赛单位:广西科技大 ...

  6. 2022年电赛 声源定位跟踪系统(E题)

    本人之前锻炼低频小信号的题目,但是在2022年电赛的题目中没有符合练习的题目,只能选择声源定位跟踪系统,并且该题器件由于没有准备,所以在比赛期间对于我们来说非常的困难,该博文为记录我们所做和体验. 第 ...

  7. 【2022研电赛】兆易创新杯全国二等奖:自动驾驶汽车路面目标智能检测系统

    本文为2022年第十七届中国研究生电子设计竞赛兆易创新杯全国二等奖作品分享,参加极术社区的[有奖活动]分享2022研电赛作品扩大影响力,更有丰富电子礼品等你来领! 团队介绍 参赛单位:Guangxi ...

  8. 【2022研电赛】商业计划书赛道上海市一等奖:基于多目标排序预测控制的SL-qZSI光伏储能系统

    本文为2022年第十七届中国研究生电子设计竞赛商业计划赛道上海赛区一等奖作品兼全国三等奖分享,参加极术社区的[有奖活动]分享2022研电赛作品扩大影响力,更有丰富电子礼品等你来领! 团队介绍 参赛单位 ...

  9. 【2022研电赛】安谋科技企业命题三等奖:基于自主跟随的无人结账一体化购物车

    本文为2022年第十七届中国研究生电子设计竞赛安谋科技企业命题三等奖作品分享,参加极术社区的[有奖活动]分享2022研电赛作品扩大影响力,更有丰富电子礼品等你来领! 基于自主跟随的无人结账一体化购物车 ...

最新文章

  1. SAP SD基础知识之流程概览
  2. VR/AR会是微信后马化腾进军的战场吗
  3. C语言-文件操作总结
  4. SQLSERVER单表CRUD通用方法
  5. Mybatis如何打印sql语句
  6. 华为天才少年1万块自制机械臂,网友:200万给少了
  7. 【组合数学】递推方程 ( 有重根下递推方程通解结构 | 线性无关解 | 有重根下的通解 | 有重根下的递推方程求解示例 | 递推方程公式解法总结 ) ★
  8. 多媒体网络计算机室标准,10校园网、计算机教室、多媒体教室建设标准试行.docx...
  9. 【JS-05】javascript检测ie版本
  10. 13个有意思的网站,你一定要看
  11. 出国常用必备英语口语
  12. linux 充电桩计费模块,充电桩及计费方法与流程
  13. M26 SDK开发环境搭建
  14. python培训班深圳-深圳python人工智能培训班
  15. 如何使用思维导图做计划的6种模板类型
  16. 利用记忆规律促进学生有效学习(记忆规律在教学中的运用)
  17. IMAGE WARPING (IDW+RBF)
  18. CC驻点你应该知道的事
  19. 【深度学习】使用tensorflow实现AlexNet
  20. 搬运工-白嫖-docker

热门文章

  1. 单缝孔径平面内移动_傅里叶变换解夫琅禾费衍射问题的几个例子_3
  2. 艾为aw87359 PA 关机状态下会漏电
  3. mysql设置远程访问。
  4. SQL server和postgresql差异
  5. Job Scheduling简介
  6. Python Level 4 程序题:输入两个整数,倒序输出
  7. 致敬2020——打工人的成长故事
  8. mysql锁粒度是什么意思_mysql锁粒度是什么
  9. 洛谷P1562 还是N皇后(DFS+状态压缩+位运算)
  10. springIOC,IOP概念和实现原理