本文来自朋友 Jerry
分享他关于初次参加全国大学生智能汽车竞赛的同学们的建议。

  对于初入大学的电子电气类新生来说,参加一些实践竞赛是提高自己工程能力和结合实践进行理论学习的最好方式,这些竞赛包括“全国大学生电子设计竞赛”、“全国大学生智能汽车竞赛”、Robomaster机甲大师赛等等比赛。但是作为初学者,经常不知道从哪里入手开始做,知识多如牛毛而自己又啥都不会。作为当年的智能车小白,我搬运了自己在知乎和智能车论坛发的一篇文章,为小白提供一些入门的参考。
首先明确想做哪方面得工作,是软件算法,还是硬件电路的设计调试。确定好以后就建议去多逛智能车论坛。
对于大一来说,建议从软件组做起。本人也是电气工程专业,据我所知很多专业基础课诸如模电数电都在大二或大三开设,而模电数电又是对电路设计比较重要的课程,如果没学的话设计电路有可能比较吃力。而大一基本都会学习c语言。c语言学完就可以去学习比赛里用到的单片机了,像k60 KEA 之类的。新手可以直接调用库函数开发,相对来讲比硬件组设计可能更适合大一新生。
  以上是一些比较简单的参考建议,我自己做硬件稍微多一点,STM32也略懂一二,所以现在来粗浅的讲一下硬件方面的入门和学习(打怪升级)的一些知识和途径。此文章适合零基础小白参考,也欢迎各路大神友善的指点和讨论。
  硬件方面首先要明确你的车要有哪些硬件模块。举个例子,比如我是做的电磁四轮,那肯定要有单片机做控制,还要能够识别赛道信号,然后驱动电机和舵机工作。写程序肯定还是PID算法,那对PID的参数肯定要能够进行调整,不能老是代码里修改再烧进去,这样非常耗费时间。这样把需求列出来以后,大致的模块分类就非常的清晰:MCU最小系统、电磁信号采集、电机驱动、一些必要的传感器(比如IMU、编码器)、人机交互(也就是调参需要的按键、显示屏、蜂鸣器之类的外设)这几个模块就非常的清晰了。
然后再考虑一个问题,就是我板子上所有的元件都要供电才能工作,但是镍铬电池电压是7.2-8.4V,不能直接给元件使用,这种情况该怎么办呢?就需要一些芯片把电压降下来,降到5/3.3V来给板子上的器件使用,这就产生了电源模块。这样大体分析一下,该做的模块就浮出水面了,接下来就是往这个框架里的每一个部分来填充细节了。
  填充细节这个事就牵扯到具体的电路设计,对于只有电路模电理论没有实践的新手来说,多看往届的技术报告和技术检查表是最快的设计途径。大部分的技术报告都会给出一些原理图设计,znczz论坛里也有很多开源的工程和原理图。拿到这些原理图之后需要再去查找里面芯片的datasheet,明确技术细节。以电源管理为例,最常见的设计是用LDO(低压差线性稳压器),例如LM2940,TPS73xx,SPX系列的LDO。如果使用的是LM2940,就需要查看它的手册,明确输入电压、输出电压、最大输出电流、外接滤波电容等技术细节,比如固定输出5V,最大负载电流1A,输出电容要用22uF的有极性电容且电容的ESR(等效串联电阻)需要满足一定范围。直接抄别人的原理图设计或许可以正常使用,但是会有一些设计隐患存在,不知道什么时候就会爆发出来,这对硬件的稳定性非常的不利。如果不打算用LDO,想用DCDC芯片做开关电源提高转化效率,就更需要查看datasheet和原厂编写的应用指南、评估板手册、仿真实例等技术资料。以TPS63070为例,手册里明确给出了原理图设计、元件选型以及PCB layout范例,参考他们设计即可。
  其他模块的设计思想和以上所述的电源模块类似,建议对电路工作原理有了深刻理解后再着手画PCB,这样对layout会有很大帮助,后期如果出现故障,排除也会比较方便。
  设计完原理性的电路就需要画图了。主流的PCB设计软件就是Altium Designer,PADS,Cadence,Kicad,立创EDA这些软件,车赛一般是用Altium Designer(下面简称AD)。首先要学会AD的使用,这一部分看书就可以,没必要看视频,市面上的一些教学视频讲的确实非常详细,但是太过冗长,看一会就会看不下去,建议找本书跟着做一遍实际的案例,比如51最小系统,就可以入门了。答主大二的时候看的下面这本书,每天晚上去自习室抱着电脑边看边画,两个星期就可以基本入门PCB绘制了。

  画PCB的第一步是把原理图设计好,而原理图设计的准备工作就是画原理图符号,也就是symbol。我画symbol的习惯是按照芯片实际的封装进行绘制,并且把特定功能的引脚用不同颜色进行标注,方便在PCB设计的时候进行引脚分配。

  画好symbol以后要给它添加合适的封装,也就是footprint。封装可以根据datasheet里的尺寸手画,也可以通过一些别人画好的封装库直接调用。对于新手,可以选择几个元件自己画一下封装,掌握画封装的操作,毕竟不是所有元件别人都会给你画好的,但是实际画参加比赛的板子还是建议用一些成熟的封装,以免画出来以后芯片焊不上去(这就翻车了)。封装库的获取有几种途径,一是从网上下载,二是从立创EDA导出,三是从各种电子设计爱好者手里获得。如果你的焊接水平较好,建议使用贴片封装的阻容(0805或者0603);如果觉得焊接技术不过硬,可以用直插封装的电阻电容。无论是哪一种途径,添加好封装画好板子之后尽量1:1的先用纸打印出来和实际的安装位置、芯片尺寸进行对比,有问题再修改,确定没有任何问题以后再送板厂打样。具体的绘制PCB的步骤,无论是书里还是各种网络资源都讲得很详细,这里不再赘述。
如果你画的第一块板子可以打出来了,就需要进行焊接和测试。焊接之前先测量一下电源的对地阻值,防止在PCB短路的情况下进行焊接。焊接的顺序因人而异,我习惯于先把电源部分焊好,接上电池先用万用表测试一下输出电压,没有问题再焊接剩下的部分。而对于不同高度的元件,可以先焊接贴片元件和高度较低的元件,诸如电容、开关、电机接口之类的较高的直插/贴片元件可以放到最后焊接。焊接后就要上电测试,这里的测试我自己分为两种:纯硬件测试和软硬联调。纯硬件测试以电磁信号处理部分为例,上电后用示波器测试关键点信号,比如电感谐振对输出、运算放大器输入、运算放大器输出、后级处理电路输出。软硬联调就是写程序测试,比如PWM输出、编码器输入捕获、MPU6050数据获取、GPIO输入输出等等。
  如果经过测试,没有什么大问题(像什么输出电压不对、单片机烧了、电机不转、信号检测不到、OLED不亮等等),恭喜你已经迈出了非常关键的一步,对于硬件大神来说就可以喝茶歇着了,但是对于Ctrl C V的小白来说还远远不够。画完之后问一问自己,你有没有真正的理解了画出来的所有电路?电机驱动里的H桥驱动原理是什么?为什么要用栅极驱动芯片?为什么栅极输入要串个小电阻?怎么自举的?栅极驱动芯片为什么要用12V供电?为什么有人给mos管反并联一个二极管?这个二极管是不是真的需要?又比如电磁信号处理部分,如果用的普通运放,为什么要加一个直流偏置电压?后级信号处理为什么要这样设计电路?电容和二极管怎么工作的?有没有更好的改进方案?再比如PCB设计里面,地平面处理好了吗?为什么要数字地模拟地分离?磁珠和0欧电阻有什么区别?都可以在板子上这么用吗?这些问题还只是冰山一角,实际设计的时候需要考虑方方面面的问题,彻底吃透电路背后的工作原理,这样对后续可能出现的故障排除会大有裨益。设计的时候多给自己一些灵魂拷问,会进步的更快。
  那么有人会问了,我啥都不知道啊,这课本上也没怎么讲啊,这该怎么分析?主要有几个渠道,第一就是问指导老师,但是指导老师有可能也不明白;第二个是从网上查找各种各样的资料,包括但不限于芯片手册、应用笔记、评估板手册、设计论坛开源资料、PCB设计指南等等资料;第三个就是看书,看什么书呢?看《智能车制作》这本书。事先声明,我没有收钱,更不可能恰饭,我自己都买了几本来看,纯粹是因为这本书写的非常的好,作者全部都是往届参赛选手 且都非常牛逼,很多原理讲的非常透彻。放张图说明一下有多牛逼


  接下来说一说故障排查。一千个人可能出现一千零一种故障,但是其中的大多数故障有很大的可能性是前人曾经出现过的,因此查找这些前人的经验就非常重要。上面所提及的 智能车论坛 就是一个很好的地方供硬件设计者查找自己出现的故障。如果没有人有过类似的经验,那就要通过手中的仪器进行测试。电压出不来就用万用表从输入到输出逐级检测,电机不转就用示波器按照以下顺序检测信号:单片机PWM口->栅极驱动芯片输入->栅极驱动芯片输出->MOS的Vgs。上面只是引出两个小例子,事实上所有的故障都有原因可循,从设计失误、板厂做工问题、不规范操作到虚焊,一定有一种原因可以解释你的故障。答主也曾经碰到一个奇葩的故障,电机驱动的MOS下管冒烟了,钮子开关烧糊了,80mil的电机线都烧断了,后来用示波器排查了上面所说的所有信号,都没有问题,检查了PCB设计也没有问题。折磨了快一个星期,最后没有办法随机测了一下驱动芯片的GND,发现不对劲,没接到GND网络的铜皮上,再测了一下同一批的其他空板,也是如此。所以排查故障真的需要耐心和毅力,不能说这块板出问题了我就再重焊一块吧,重焊一定会好的,要有一股子劲:不把这个bug的原因找出来不算完。
以上基本包括了从构思到焊接测试的所有流程了,下面来聊一聊一些杂七杂八不知道怎么归类的东西。第一个是PCB的定型,事实上PCB一次定型是很难的事情,尤其是当你对这个组别或者是做板子需要的知识知之甚少的时候,这时候就需要螺旋式进步,先做出来一套可以稳定使用的方案来调车写代码,然后再根据整车机械结构和自己的能力水平对硬件进行迭代,推陈出新,让机械结构、算法和硬件电路磨合到最极致的状态。而机械结构这事就比较复杂,答主也只是干过软化剂涂轮胎、磨轮胎的简单苦力活,对机械方面知之甚少,所有就不多做叙述。
  第二个就算是硬件小白的自我学习修养了吧,做车很像古代学徒和师傅学艺,师傅不可能把全部本事都教给徒弟,徒弟往往都会偷学师傅的本领。套用到车赛上,就是要从各种不同的渠道全方位的获取自己需要和想要的知识。答主以前特别喜欢参加分区赛还有国赛,一方面是又有地方能玩了(实际上四天累的跟狗一样,根本不想出去玩),另外一个方面就是可以看到不同学校的作品,毕竟答主也是做不到“闭门造车,出门合辙”这种境界的。成绩好的学校的车都有各自的特点,有的设计及其简洁,有的方案拔尖,有的用料扎实,特别是强校的车,很多都像精美的工艺品。答主印象最深的是北科的各种冠军车,亲眼看到他们的风驰电掣非常震撼。再看他们的车,板子形状和机械结构匹配度非常高,用的都是非常好的固态电容,外部接线整理的非常简洁,单片机主控方案独树一帜,调参的板子设计非常巧妙。虽说智能车的重点在于算法的比拼,但是能够把硬件设计做到非常精美而又性能强劲的一种水平,着实非常不容易,答主也在朝着这个方向努力和学习。
  以上就是我想分享的一些经验,希望对刚接触智能车的硬件小白有所帮助。2020的比赛和往年有些不一样,对参赛队员的考验比往年更大,但是做车不只是为了最后的一纸证书,更是为了体验不一样的经历,收获更多的知识,结识更多强大的车友,也希望所有的车友在今后的比赛中能够尽自己最大的努力,不留任何遗憾!

来自 Jerry 的知乎回答:
大一新生如何参加智能车比赛?

给初次参加全国大学生智能汽车竞赛的同学们的一些建议(转)相关推荐

  1. 参加全国大学生智能汽车竞赛,快来申请沁恒RISC-V MCU!

    第十六届(2021年)全国大学生智能汽车竞赛规则已发布,沁恒微电子很荣幸成为大赛的赞助商之一.本次大赛推荐使用的WCH微控制器CH32V103为沁恒微电子自主研发的32位通用RISC-V架构MCU. ...

  2. 灵动MM32 MCU助力全国大学生智能汽车竞赛

    第十六届(2021年)全国大学生智能汽车竞赛规则初稿已发布,上海灵动微电子股份有限公司(简称灵动)很荣幸能成为大赛的赞助商之一. 为更好地服务参加全国大学生智能汽车竞赛的同学们,灵动将从以下几个方面为 ...

  3. 第十七届全国大学生智能汽车竞赛,我们来了

    北京科技大学天津学院 第六届智能车校内赛 总决赛完美落幕     2021年11月27日16时,北京科技大学天津学院第六届智能车校内赛总决赛在我院众创空间二楼智能车创新实践平台举办.本届校内赛总决赛分 ...

  4. 2022年全国大学生智能汽车竞赛西部赛 竞赛方案与实施流程

      全国大学生智能汽车竞赛西部赛竞赛是全国大学生智能汽车竞赛的预选赛,系国家级赛事,各参赛学校必须高度重视,诚实参赛.由于新冠疫情防控的要求,2022年全国大学生智能汽车竞赛西部赛竞赛(以下简称西部赛 ...

  5. 关于组织参加2021年全国大学生 智能汽车竞赛东北赛区比赛的报名通知

    关于组织参加2021年全国大学生 智能汽车竞赛 东北赛区比赛的报名通知 各参赛高校:   为加强大学生创新精神.协作精神和工程实践能力的培养,提高学生解决实际问题能力,推进高等教育教学改革,选拔参加第 ...

  6. 纪念下大二参加的全国大学生智能汽车竞赛

    纪念下大二参加的全国大学生智能汽车竞赛 1.初知比赛 2.比赛前期 3.进入状态4.人车之恋 5.比赛结束 1.初知比赛 2.比赛前期 3.进入状态 4.人车之恋 5.比赛结束 1.初知比赛 1.在未 ...

  7. 国赛来咯,全国大学生智能汽车竞赛百度赛道正式开启

      「第17届全国大学生智能汽车竞赛-完全模型组竞速赛」1月15日全面启航!大赛组委会秘书长卓晴教授届时将亲临百度飞桨直播间,和同学们一起聊备赛,话今年. §01 竞赛简介   「全国大学生智能汽车竞 ...

  8. 关于全国大学生智能汽车竞赛有关问题的建议

    关于全国大学生智能车竞赛 有关问题的建议 全国组委会:   为了更好地组织 全国大学生智能汽车竞赛 活动,促进赛事持续健康地向深度.广度发展,2022年全国大学生智能汽车竞赛赛前研讨会(每年一次)于2 ...

  9. 第十六届全国大学生智能汽车竞赛航天智慧物流总决赛暨第二届“航天杯”移动机器人AI创新技术挑战赛圆满举办

    2021年8月20日至21日,第十六届全国大学生智能汽车竞赛航天智慧物流总决赛暨第二届"航天杯"移动机器人AI创新技术挑战赛圆满线上举办.本次比赛由全国大学生智能汽车竞赛组委会.中 ...

  10. 2021年全国大学生智能汽车竞赛山东赛区比赛顺利进行

      全国大学生智能汽车竞赛由中国自动化学会主办,是教育部倡导的全国大学生课外学术科技A类竞赛,2017年列入中国高校创新人才培养暨学科竞赛评估排行榜,深受广大理工科学生欢迎.竞赛旨在培养学生的综合知识 ...

最新文章

  1. LeetCode: 38. Count and Say
  2. python数据分析的主要流程-将Python和R整合进一个数据分析流程
  3. hybris backoffice搜索时遇到could not execute full-text query的解决方案
  4. jqGrid 常用方法
  5. 软考考前冲刺第十三章UML建模
  6. .jsp页面提交form表单,后台却无法获取input文本框value值
  7. 使用VS2010+OpenCV2.4.9简单图像水印代码
  8. Tips--开源心音数据库整理(我愿称之为史上最全)
  9. MATLAB语音识别
  10. InfoWorld 2020 年公布最佳开源软件
  11. 导出函数__declspec(dllexport)
  12. 微信小程序文本溢出的处理方法
  13. 无恶意的协议才有效力
  14. python编程符号大全-python符号表
  15. 脉歌蓝牙耳机线评测_感受震撼,更贴耳的蓝牙耳机,脉歌MT70让你感受超值音效...
  16. 解读2021年智源 AI 前沿报告:医疗领域最新进展
  17. idea git Untracked Files Prevent Pull
  18. Pycharm编译代码时出现“SyntaxError: Non-UTF-8 code starting with ‘\xca‘ in file ...“
  19. Android——单元测试
  20. SQLmap 扫描工具的使用

热门文章

  1. 员工考勤管理系统html,网页考勤系统人员排班操作说明
  2. python做计量经济学的书籍_《计量经济学》教材书单
  3. 计算机组成原理第三版第四章,计算机组成原理第四章答案
  4. linux php adodb,【原创】Linux下php使用adodb对sql Server访问配置
  5. 架构之美第三章-美丽架构之道
  6. 证件照尺寸修改、图片背景换色、照片大小压缩…几个在线图片编辑、处理网站推荐
  7. 使用HttpClient下载网络图片
  8. 【Multisim】导入spice器件详细教程以及库资源分享
  9. 杨中科:我的大学生活
  10. 毕业设计 - 题目:基于深度学习的人脸表情识别 - 卷积神经网络 毕设 代码