“大一新生如何参加智能车比赛”帖子回复
在论坛水了两三年了,见到了不少大佬非常厉害的开源设计,也算是这个论坛( ZNCZZ )的忠实受益者之一。
这篇帖子是搬运我在知乎一个问题,“大一新生如何参加智能车比赛”下面的回答。因为我也是双非电气专业的本科,做车的时候几乎是什么传承资料都没有,和实验室的一帮大佬们一起打拼进了国赛,非常能够理解新手在入门阶段没指导没资料无从下手的那种苦恼,所以写了这篇粗浅的硬件入门指南,希望能给初入智能车比赛的小白们有所帮助,也非常欢迎论坛大佬们一起交流,提出里面的不足。
■ “大一新生如何参加智能车比赛”帖子回复
弃赛读研国二选手接着来填坑了。之前说了一些粗浅的入门知识,我自己做硬件稍微多一点,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绘制了。
▲ Altium Designer 13|电路设计、制版与仿真从入门到精通
不限于这本书,市面上写的较好的AD书都可以拿来学习画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的比赛和往年有些不一样,对参赛队员的考验比往年更大,但是做车不只是为了最后的一纸证书,更是为了体验不一样的经历,收获更多的知识,结识更多强大的车友,也希望所有的车友在今后的比赛中能够尽自己最大的努力,不留任何遗憾!
文章来源: zhuoqing.blog.csdn.net,作者:卓晴,版权归原作者所有,如需转载,请联系作者。
原文链接:zhuoqing.blog.csdn.net/article/details/107078505
- 点赞
- 收藏
- 关注作者
评论(0)