乐于分享
好东西不私藏

电赛软件、硬件如何准备?一文教会你电赛正确打法

电赛软件、硬件如何准备?一文教会你电赛正确打法

准备电赛控制题、获取高级电赛工程模板,学习单片机高级C编程、linux驱动和应用编程,认准不知明同学(vx:DeepCoderMing,

qq:3201935299),b站/小红薯同名;微信公众号“编码海岸”,视频账号和公众号会持续输出干货,欢迎大家关注和交流。

高级电赛工程模板在b站“不知明同学”账号小店有售,也可关注主播后私信获取,关注博主即得粉丝专享价,拿到mspm0g3507、stm32f103rct6、tm4c123三个平台的工程代码~

接下来一大波干货来袭, 字字珠玑 ,行文紧凑,准备好好吸收吧,亲爱的同学们!

前言

全国大学生电子设计竞赛是一项软件、硬件结合的比赛,这两块部分都要做好充足准备,缺一不可,才能在比赛中取得好成绩。

软件是在硬件的基础上得以实现的,脱离硬件的软件,写得再好,也难以将作品做出很好的效果;当然你硬件构型做的再好,程序写不好,作品的功能调不稳定,甚至功能实现不全的话,也难拿到满意的成绩。

要在电赛四天三夜中游刃有余,三人队伍具备的软件和硬件能力,都不能有严重短板,至少三个人要找到合作完成作品的节奏,队伍的团结、坚持、目标一致是最重要的,心往一处使,有不足很正常,不会就去学,互相鼓励,团队在赛前、赛后、包括综测,整个电赛竞赛的每一个流程中都踏踏实实,一步一个脚印,中途绝对不要放弃,坚持到最后,结果都不会太差。

主播在大学四年里,前三年都参加了电赛,大四在深圳上市公司实习了一年,大一电赛打的是高频题,大二大三打的都是控制题,同时大二大三两年参加了两次智能汽车竞赛,也属于控制类,所以对于控制题的备赛,学长有丰富的经验值得大家借鉴和学习。

团队分工

三人:队长、软件选手、硬件选手

我是队长,我的电赛和智能车队伍的分工一般都是是下面这样:

队长:能力突出,有统筹和领导能力,说话有说服力,独立做过多个项目,在软硬件上都有较丰富开发经验,在软件方案和硬件方案的决策上要有绝对的预见性,比赛过程中负责软件/硬件框架设计、软件功能开发、部分代码编写、调车、软硬件功能和技术文档的审核,相当于公司的产品经理+软硬件开发工程师

软件选手:主要负责软件功能设计和开发、部分代码编写、调车、部分文档编写,相当于软件工程师

硬件选手:主要负责硬件设计和开发,调车、大部分文档的编写,相对于硬件工程师

细节分工要根据队伍中三个人的具体技术情况按能力分配,不用强制按上面那样,可以当成参考方向。

赛前

赛前至少完整做完一道历年电赛真题,最好选择最近三年内的题目,完整把基础部分和发挥部分都做一遍。

一是,把真题做完一遍后,涉及的技术栈,需要的软件程序和硬件准备,你们的队伍都会完整的学习一遍,并且随着题目的完成,你们手里也有了现成可用的程序和自己涉及制作的pcb板。对于你们做今年的比赛,相同的或者需要实现的功能可以直接拿来用,比如:包含蜂鸣器、led、按键、编码直流电机、舵机、陀螺仪等模块驱动程序的工程模板(不知明同学高级电赛工程模板,b站同名账号有售)、按键菜单功能,灰度巡线功能;硬件模块包括自制最小系统主板,两路电机驱动板,5v、7.4v、12v直流电源板等等,这些基础的东西,只要你有意地去做题,多思考多做准备,做完一套题目下来后,都会得到可用的雏形,像你们自己做一道电赛题,两三个星期搞出来的按键菜单、程序框架,不说有多高级,至少是能用的对吧,不知明同学电赛工程模板是一坤年的积累,差不多两年半的刻意学习和总结,并在比赛、项目中实战,优化出来的代码工程,里面有有很多高级c语言,像函数指针、指针数组、结构体数组、回调函数、双向链表等高级操作,对于大学生学习单片机、打电赛、做项目、甚至是求职面试,都有很大的帮助,可以直接把你的C编程水平拉高一个层次,《电赛工程模板》的讲解视频在不知明同学抖音和b站账号都有详细的讲解,欢迎观看。

二是,做真题,就相当于模拟考试,可以帮助团队三人磨合,找到合作完成任务的节奏,基本上,你们赛前彼此配合的越默契,比赛过程中就会像你们赛前做真题一样,三个人分工明确,彼此鼓励,队友的鼓励和肯定,是你们团队做电赛最坚实的动力,激发彼此的潜力,迸发出更创新的想法,做出更优秀的作品。

不推荐大家猜题,题目肯定是猜不准的,要是题目能被猜准,那你就是电赛专家了,就像高考题不会被完全押中一样,建议大家老老实实把基本功能完善,多做几道电赛真题,把代码和硬件准备完善,可以针对器件清单做一些功能点的预测,提前实现,有目的的准备代码和硬件材料

硬件

赛前要把最小系统主板、电机驱动板、电源板都至少准备三套以上,最好是直接准备Ti平台的,比如说2024年新出的mspm0g3507,赛事方提前说了至少有一个题要指定用这款芯片,所以我们2024年主力就在准备3507平台,自设计了最小系统板、主板、电机驱动板和电源板,以及车模底板,并且用自设计的硬件系统,完成了2023年跟随小车的题目,做了两辆车,都可以用,两辆车都调了不同的参数。在2024年自动行驶小车题目中,我们的小车直接可以用,当时两天内就完赛了,所以软件、硬件准备充分,会很大程度上提高效率。

要求准备的板子一定要经过至少一道电赛题的实践使用和至少一个月的测试周期,避免板子硬件性能不稳定,或者电流电压参数有波动等隐患,在赛前没得到充分验证,导致比赛的时候出现的大问题(比如板子不能用、板子容易烧等),大家要特别关注硬件上电气参数是否稳定可靠,基本的东西稳定了,才有资格考虑作品发挥更出色、稳定的性能。

我的建议是,如果赛事方给出来会有题目指定使用某款芯片,那就趁着还有三四个月的时间all in到这款芯片工程模板的准备上,对于软件来说,其实就是换一套sdk,如果你代码写的好,应用代码都能通用,只需要底层的api更换一下就行;硬件就针对这款芯片,制作最小系统板和主板,我们一般将最小系统和主板分成两个板子,最小系统插在主板上,这样最小系统板上的某个pin脚不能使用了的话,直接拔掉最小系统板子,换个新的插上去直接用,就不用重新贴片了,又麻烦又危险。

下面跟大家说一下我们做电赛硬件准备时,每个板子上有哪些东西。

最小系统板主控芯片最小系统,pin脚引出到排针,就做成stm32f103c8t6那种直插形式的,把烧录模式的引脚和烧录接口也用排针引出来,包括最小系统上常用的rst复位按键也引出一个贴片按键,还可以引出一个gpio为贴片按键,作为预留按键。

主板:母座直插形式接收最小系统板,同样用排针引出;主板上要具备编码器接口、电机/舵机pwm接口、五向按键、串口(接摄像头、陀螺仪等)、oled显示屏接口、电源接口,我用的端子都是1.25mm类型的。

电源板:正常接收11.1v电池,稳压到5v、7.4v、12v等,给驱动板、主板和各个模块器件供电。

软件

软件,最基本的肯定要把基于单片机各个外设以及可能使用的各个模块的驱动代码准备好,把按键菜单等程序做成一个工程模板。

赛前你就把我的电赛工程模版搞透 用我的框架做两个电赛真题 熟练使用这个模版,会增删改查我的代码就行,这个模版在b站和抖音不知明同学的账号,对每个技术点都有详细的视频讲解,大家可以去看看,需要代码的同学查看链接https://b23.tv/kfUe1NG,在小破站获取。也可添加不知明同学卫星🛰:DeepCoderMing,获取电赛工程代码。

下面给大家看看高级电赛工程模板里有哪些代码吧~

(1)首先给大家看看mspm0g3507平台工程模板的目录结构:

可以看到目录结构清晰的分为了App(应用)、Duty(任务)、Hal(底层)、Mt(中间层)、OS(时间片任务调度)、ZF_IMU(逐飞imu660和无线调参助手驱动源码)六个目录层级。

(2)看到Hal底层驱动目录,我的模板里有at2404 flash、蜂鸣器、延时函数、编码器、灰度循迹模块、陀螺仪、五向按键、led灯、数学计算函数、电机驱动、pid算法、串口、vofa上位机等驱动代码。

(3)mt中间层,有标志位、电机控制、中断处理等相关代码,会调用到hal层的函数接口。

(4)app层是应用代码,主要包含双向链表按键菜单、滤波算法、逐飞无线调参助手等代码

(5)Duty目录是2024年自动行驶小车题目每一问的执行代码

(6)OS目录就是时间片任务调度逻辑的实现代码,可以移植到任意一款单片机上使用

(7)ZF_IMU目录下就是逐飞无线调参助手功能的源码,由tc264移植到了m0g3507上

赛中

比赛四天三夜,出题以后,那肯定是先仔细阅读题目。

先自己队伍每个成员都把题目一个一个字阅读理解,读懂了之后就可以开始构思解题方案了,但是先别着急动手,先稳住,这开始的第一天的白天肯定是拉不开差距的大家的硬件构型绝对不可能在第一天就搞好,我让大家先稳住的原因是,这一天你本校的对手和外校的对手都在努力解题,等这第一天白天过去以后,你所在实验室的其他队伍,还有b站这些网络平台上你可以看到他们的硬件雏形,甚至网上已经有人完赛,那这个时候你就可以借鉴大家的方案再结和自己的想法,去做较成熟的硬件设计,而电赛题的硬件设计是前期最重要的部分,我们要把自己的思路和别人的思路一起结合起来,你的硬件结构就会比较可靠稳定,且利于你写代码,硬件合适可以减轻软件的复杂程度,你解题的思路才不会跑偏。

我知道的,往往你们队伍越固步自封,不和外界交流,这样想出来的解题方案就越大概率会跑偏。根据我三年电赛的经验,很多黑马小队都是在四天三夜的最后一晚上取得重大突破的,也有很多队伍在最后一个晚上把前三天做的东西弄废了,比赛过程中已做出的成果都可能被队伍的粗心搞得前功尽弃。

所以打比赛一定要耐心,不要着急,差距不是在一开始就拉开的,而是整个比赛周期的坚持,持续发力,细水长流。

比赛过程中,队长和软件选手主要负责写代码、做题,队长和硬件手要尽快完成硬件结构设计,拿出完整稳定的硬件构型,三个人都要会调车,会调试,这样在四天三夜的时间里,大家可以轮流调参,轮流休息,不影响进度。

硬件手前期完成硬件构型后,还有任务就是在做题过程中有眼力见,及时帮忙软件选手和队长做软件的调试,并根据软件的实现效果和别人的作品,优化硬件结构,方便软件选手编程,出问题了还得会修板子、写文档,所以对于硬件手的能力要求还是比较全面的,三个人都要有足够的能力,缺一不可,互补共赢。

技术文档其实要求没那么高,影响最后成绩的肯定是赛题的完成度,技术文档拉开不了差距,写出来的文档格式工整、内容完整、脉络清晰即可,比赛期间不必花过多时间写文档,使用赛前准备好的文档模板填坑即可。

赛后

三个人休息一天,好好睡一觉,醒来继续做往年的综测题目。综测过不了,只能拿省三,前面的努力都泡汤。

主播一个人录制一个视频讲电赛准备的方向,应该是讲不完整的。大家有什么其他方面需要补充的,可以在评论区补充,或者有啥其他的问题也可以在评论区留言。我会出新的视频给大家补充这些知识。

视频制作不易,希望大家多多点赞、关注和推荐,各位同学的支持,是不知明同学下班后努力更新视频的动力!

不知明同学提供电赛工程代码/简历修改/嵌软面经/模拟面试/面试技巧等多项服务,关于嵌入式学习,我们有硬核的技术栈和海量的欢迎有需要的小伙伴私信咨询。