智能小车这个方向,很多人第一反应是买现成的亚克力或者铝合金底盘,然后往上堆电机、驱动板、主控板、传感器。但只要你做过两三台就会发现一个很现实的问题:现成底盘的孔位是固定的,你想加个超声波、想换个电机、想把电池挪个位置,全得靠热熔胶和扎带硬凑,最后车底下一团乱麻,重心还飘。我后来干脆换了个思路——直接把PCB本身做成底盘,机械结构和电路板合二为一。这样孔位、走线、固定点全部由自己定义,迭代一次改一版Gerber就行,成本还低。这篇就聊聊我这几版PCB底盘踩过的坑和总结出来的方法,从层叠设计、机械强度、走线规则到封装库管理,尽量把工程细节讲透。
1. 为什么要把底盘和电路板合并成一块板
1.1 传统小车底盘方案的三个硬伤
先说清楚动机,不然容易变成为了炫技而炫技。常规做法是买一块底盘,再单独画一块主控PCB,两者用铜柱或者螺丝固定。这套方案在入门阶段没问题,但做到第三、第四版就会暴露问题。
第一个硬伤是空间利用率低。底盘本身占了一层高度,主控板又占一层,中间还得留铜柱的间隙,整车高度压不下去。对于要求过矮门、钻低矮通道的场景,这个高度就是硬伤。
第二个硬伤是孔位不自由。现成底盘的电机安装孔、传感器孔都是固定的,你想把红外对管往前挪5毫米避开轮子遮挡,对不起,没孔。只能自己打孔或者用转接板,越搞越复杂。
第三个硬伤是走线混乱。电机线、编码器线、传感器线在两层板之间穿梭,时间一长就是一团蜘蛛网,排查故障时想哭。而且长导线本身就是天线,电机换向时的尖峰很容易耦合到信号线上。
1.2 PCB底盘真正解决的问题
把底盘做成PCB之后,上面三个问题一次性解决。板子本身就是结构件,电机、轮子、电池、传感器全部直接固定在PCB上,高度可以压到极限。孔位完全自定义,你想在哪开孔就在哪开孔,想开槽就开槽。最关键的是,所有电气连接都在板内完成,电机驱动到主控的走线是铜箔,不是飞线,抗干扰能力和可靠性完全不是一个量级。
还有一个隐性好处:迭代成本极低。改一版Gerber打样几十块钱,一周就能拿到新板。而改一套机械底盘,要么自己重新切亚克力,要么找加工厂,周期和成本都高得多。对于学生做课程设计、参加工创赛或者蓝桥杯这类需要快速迭代的场景,PCB底盘的优势非常明显。
1.3 什么场景适合、什么场景不适合
不是所有小车都适合PCB底盘。我的经验是:中小型、轻载、对高度和集成度有要求的场景最适合,比如智能循迹车、避障车、物流搬运小车。这类车负载通常在几百克到一两公斤,PCB的机械强度完全够用。
但如果你的车要拉几公斤的货,或者要越野、要抗冲击,那PCB底盘就不合适了,机械强度扛不住,还是老老实实用金属或厚亚克力。另外,如果电机振动特别大,长期振动可能导致PCB焊点疲劳开裂,这种场景也要慎重,或者必须做减振设计。
2. PCB底盘的层叠结构与机械强度设计
2.1 层数选择:两层板够不够
很多人一上来就想用四层板甚至六层板,觉得层数多显得专业。我的建议是:第一版先用两层板。原因很简单,两层板便宜、打样快、改起来方便。智能小车的信号复杂度其实不高,主控、电机驱动、传感器、电源,两层板完全能布下。
什么时候需要上四层?当你遇到下面几种情况时再考虑:电源和地需要完整平面来降低噪声,比如电机驱动和主控共用一块板且电机电流较大;信号线密度太高,两层板布不通;对EMC有明确要求。四层板的典型层叠是信号-地-电源-信号,中间两层做完整平面,回流路径短,抗干扰能力提升明显。
我做过一版四层板的物流小车,电机驱动的大电流回路和主控的模拟信号(灰度传感器)在同一块板上,两层板怎么布都有干扰,换成四层板之后,中间地平面把两者隔开,灰度采集的稳定性肉眼可见地变好。
2.2 板厚与机械强度的关系
PCB底盘的板厚选择是个权衡。标准1.6mm板厚是最常见的,强度对于中小型小车够用,但如果你的车轴距超过20厘米,或者电机扭矩较大,1.6mm板在电机安装处会有明显形变。
我的做法是:主承力区域用1.6mm,但在电机安装位和车轴附近做局部加强。加强方式有两种,一种是在PCB上设计加强筋形状的开槽,让板子形成类似工字梁的结构;另一种是直接在电机座位置叠一块小PCB或者金属片,用螺丝一起固定,相当于增加截面惯性矩。
如果预算允许,可以直接用2.0mm板厚,强度提升明显,重量增加可接受。我实测过,同样尺寸的底盘,2.0mm比1.6mm在电机满负荷时的形变量小大约40%,这个数据是用百分表在车轴处测的,虽然不精确,但趋势很清楚。
2.3 电机安装孔的受力分析
电机安装孔是整块板上受力最恶劣的地方。电机转动时的反扭矩、皮带或齿轮的张力、轮子落地时的冲击,全部集中在这几个孔上。设计时要注意几点。
孔径要匹配电机座螺丝,通常M3螺丝配3.2mm孔,不要做成3.0mm,否则装配困难还容易把孔壁拉裂。孔周围要留足够的铜皮或者做泪滴焊盘,增加孔壁与板面的连接强度。如果电机振动大,可以在电机和PCB之间加一层薄橡胶垫,既能减振又能增加摩擦。
还有一个容易被忽略的点:电机安装孔不要放在板边缘太近的地方。我第一版把电机孔放在离板边3mm的位置,结果电机一拧紧,板边就开裂了。后来改成离边至少8mm,再没出过问题。这个距离不是绝对的,但留足余量总没错。
2.4 电池仓与配重布局
电池是整车最重的部件,它的位置直接决定重心。PCB底盘的好处是可以在板上直接设计电池仓的固定孔和走线槽。我的经验是:电池尽量放在车轴之间、靠近中心的位置,这样重心低且居中,转向和爬坡都稳。
如果电池比较重,可以在PCB上开一圈槽,让电池仓稍微下沉,进一步降低重心。但开槽会削弱板的强度,所以槽的宽度和深度要控制,一般槽宽不超过5mm,且不要开在承力路径上。
配重方面,如果发现车头太轻导致驱动轮打滑,可以在车头位置预留配重块的固定孔,用螺丝固定一小块金属。这个孔位最好在设计时就留好,不然后期只能粘,粘的东西在振动下迟早会掉。
3. 从原理图到Gerber:PCB底盘的设计流程
3.1 原理图阶段就要考虑机械接口
很多人画原理图的时候只想着电气连接,等到画PCB才发现机械接口没定义。正确的做法是:在原理图阶段就把电机、电池、传感器的接口用接插件符号画出来,并且标注好每个接口的机械位置要求。
比如电机接口,我会在原理图上放一个2Pin或者4Pin的接插件符号,然后在属性里备注“电机A,位于板左前,孔距XX”。这样画PCB的时候,布局就有依据了。传感器接口同理,超声波、红外、灰度,每个接口的位置和朝向都要在原理图阶段想清楚。
这一步看起来麻烦,但能省掉后面大量的返工。我吃过亏,原理图随便画,PCB布局时发现接口位置和机械结构冲突,只能回去改原理图重新导入网表,浪费一整天。
3.2 封装库的建立与复用
PCB底盘设计里,封装库是核心资产。电机座、轮子、电池、传感器,这些机械件的封装如果每次重新画,效率极低还容易出错。我的做法是建一个项目专用的封装库,把所有用到的机械件封装都放进去,命名规范统一。
封装库的关键是尺寸准确。电机座的孔距、轮子的轴径、电池的尺寸,这些必须用卡尺实测,不能抄网上的数据,因为不同批次的件可能有偏差。我一般会实测三次取平均,然后在封装里留0.1到0.2mm的余量,保证装配顺畅。
另外,封装里要包含丝印轮廓。丝印不只是好看,装配时能快速定位,调试时能一眼看出哪个接口对应哪个功能。丝印线宽建议0.15mm,太细了打样出来看不清,太粗了占地方。
3.3 布局:先定机械基准,再放电气模块
布局的顺序很重要。我的习惯是:先在板框内画出机械基准,比如车轴中心线、电机安装孔、电池仓轮廓,这些是固定的,不能动。然后在这些基准的约束下,放置电气模块。
主控板通常放在中心偏后位置,方便走线到各个方向。电机驱动靠近电机接口,减少大电流走线长度。传感器接口放在板边缘,朝向车头或车尾。电源模块靠近电池接口,输入滤波电容紧挨着接口放。
布局时要注意重量平衡。如果电池偏左,主控和驱动就适当偏右,让整车重心落在几何中心附近。这个可以用简单的力矩计算来估算,不需要很精确,但方向要对。
3.4 布线规则:大电流与小信号的分区隔离
布线是PCB底盘设计的重头戏。核心原则是大电流和小信号严格分区。电机驱动的走线要短而粗,线宽根据电流查表确定。比如1A电流,1oz铜厚,线宽至少0.5mm;2A的话要1mm以上。如果空间允许,大电流走线可以开窗加锡,进一步降低阻抗。
小信号线,比如灰度传感器的模拟输出、编码器的脉冲信号,要远离大电流走线,最好用地线隔开。如果实在避不开,就垂直交叉,不要平行走线。平行走线会产生容性和感性耦合,电机换向时的尖峰很容易串到信号线上。
地线处理是另一个关键。星型接地在小车上很实用,所有模块的地线单独走回电源地,不要串成一串。这样各模块的地电流不会互相干扰。如果用了四层板,中间地平面就解决了这个问题,但两层板必须手动做星型接地。
3.5 丝印与位号的可读性设计
丝印设计经常被忽视,但实际调试时非常重要。我的原则是:每个接口都要有清晰的丝印标注,包括功能名和引脚定义。比如电机接口旁边标“MOTOR_A”,下面标“+ -”,这样接线时不会接反。
位号图也要考虑。元器件多了之后,找R12、C5很费劲。我习惯把功能相关的元件位号编在一起,比如电源部分的电容从C1开始,电机驱动的从C20开始,这样一看位号就知道大概位置。丝印字体不要太小,1mm高度是底线,再小打样出来就糊了。
4. 打样、装配与调试中的实战经验
4.1 打样前的DRC检查清单
打样前一定要跑DRC,但软件自带的DRC只能查电气规则,机械相关的要自己检查。我整理了一个检查清单,每次打样前过一遍。
| 检查项 | 要求 | 常见问题 |
|---|---|---|
| 板框尺寸 | 与机械设计一致 | 板框画错导致装不进 |
| 安装孔孔径 | 匹配螺丝规格 | 孔径偏小装配困难 |
| 孔到板边距离 | 大于8mm | 太近导致板边开裂 |
| 大电流线宽 | 按电流查表 | 线宽不足发热 |
| 丝印可读性 | 字体高度大于1mm | 太小打样糊掉 |
| 封装尺寸 | 实测确认 | 抄网上数据有偏差 |
这个清单看起来简单,但每一条我都踩过坑。尤其是封装尺寸,网上找的封装十有八九和实物有出入,必须实测。
4.2 焊接顺序与热管理
PCB底盘的焊接和普通板子不太一样,因为板子大、铜皮面积大,散热快,焊接时需要更高的烙铁温度和更长的加热时间。我的经验是:先用高温焊台焊接大电流节点和接插件,这些地方需要热量足;然后再焊小信号元件,用较低温度避免损伤。
电机接口和电池接口的焊盘要大,最好做过孔阵列增加机械强度。焊接时先给焊盘上锡,再放线,再补锡,这样焊点饱满。如果焊盘太小,线一拉就掉,后期振动下必然出问题。
还有一个细节:电解电容和晶振远离电机安装孔。电机振动会导致这些元件引脚疲劳断裂。如果布局时避不开,可以用硅胶固定,但最好还是从布局上解决。
4.3 装配时的孔位对不齐怎么办
装配时孔位对不齐是常见问题,原因通常是封装尺寸偏差或者板子打样时的公差。如果偏差在0.2mm以内,可以用圆锉稍微扩孔,但要注意不要扩太多,否则螺丝固定不牢。
如果偏差较大,超过0.5mm,那就不是扩孔能解决的了,需要检查封装是不是画错了。我遇到过一次,电机座的孔距实测是20.5mm,我封装画的是20mm,结果装不上。后来重新改封装打样,浪费了一周。所以再次强调,封装尺寸必须实测。
另外,装配顺序也有讲究。先固定电机和轮子,再装电池,最后装传感器和主控。这样每一步都能调整,不会因为前面装死了后面没法动。
4.4 上电调试与常见故障排查
上电调试要分步进行,不要一上来就全接上。先只焊电源部分,测各路电压是否正常。正常后再焊主控,测能否下载程序。再焊电机驱动,测电机能否转动。最后焊传感器,逐个测试。
常见故障里,电机不转通常是驱动使能没接对或者PWM没输出。传感器读数跳变多半是地线干扰或者电源纹波大。主控复位可能是电机启动瞬间拉低了电源电压,需要在电源入口加大电容,或者电机驱动和主控分开供电。
我遇到过一个很隐蔽的问题:灰度传感器在电机静止时读数正常,电机一转就乱跳。查了半天发现是电机驱动的地线和传感器地线串在了一起,电机电流在地线上产生的压降干扰了传感器。改成星型接地后问题消失。这个坑很典型,值得记下来。
5. 迭代优化:从能跑到跑得稳
5.1 第二版通常要改什么
第一版PCB底盘的目标是“能跑起来”,第二版的目标是“跑得稳”。根据我的经验,第二版通常要改这几个地方:加大电机安装孔的铜皮面积,第一版往往铜皮太小,拧几次螺丝就掉了;调整传感器位置,第一版的位置可能被轮子或者车体遮挡;优化电源走线,第一版可能线宽不够导致压降大。
还有一个常见改动是增加调试接口。第一版往往只留了下载口,调试时想看个波形都没地方接。第二版我会预留几个测试点,用焊盘或者排针引出关键信号,方便用示波器或者逻辑分析仪抓。
5.2 减振与降噪的处理
小车跑起来振动和噪音大,除了机械原因,PCB底盘也有优化空间。在电机和PCB之间加橡胶垫是最简单的减振方法,效果立竿见影。橡胶垫的厚度1到2mm,硬度适中,太软了电机晃,太硬了没效果。
如果振动还是大,可以在PCB上设计减振槽,就是在电机安装区域周围开一圈细槽,让这部分板子有一定的弹性。但开槽会削弱强度,要权衡。我试过在电机座周围开2mm宽的槽,振动确实小了,但电机大扭矩时板子形变明显,后来还是改回加橡胶垫的方案。
噪音方面,主要是齿轮啮合和轮子与地面的摩擦。PCB底盘本身不产生噪音,但会放大振动。所以减振做好了,噪音自然就小了。
5.3 可维护性设计:让下一版更好改
PCB底盘的一个优势是迭代快,但前提是设计时要考虑可维护性。我的做法是:把机械接口和电气接口分离。机械接口一旦确定就尽量不改,电气接口可以随版本调整。这样改版时只需要动电气部分,机械封装库不用动。
另外,预留扩展孔位。即使当前版本用不到,也在板子上多留几个安装孔,说不定下一版就要加个新传感器。孔位不花钱,但需要的时候没有就很麻烦。
还有,版本号丝印在板子上。我习惯在板子角落印上版本号和日期,比如“V2.1 2024-03”。这样手里几块板子不会搞混,调试时也知道对应哪版设计。
5.4 从两层到四层的升级时机
什么时候该从两层升到四层?我的判断标准是:当两层板的干扰问题无法通过布局和接地解决时。具体表现是:传感器读数在电机工作时不稳定,且已经尝试了星型接地、加滤波电容、隔离走线,仍然无法根治。
这时候四层板的完整地平面就能解决问题。升级时要注意,四层板的层叠设计要合理,通常是顶层信号-内层地-内层电源-底层信号。地平面要完整,不要被走线割裂。电源平面可以分割成几个区域,分别给电机驱动和主控供电。
四层板成本比两层高不少,但对于要求高的项目,这个投入是值得的。我做过对比,同样布局下,四层板的灰度传感器在电机工作时的噪声幅度比两层板小一个数量级,这个差距在比赛或者课程设计里可能就是及格和优秀的区别。
6. 封装库与EDA工具的使用心得
6.1 自建封装库的命名规范
封装库用久了,命名规范比什么都重要。我的命名规则是:类型_规格_尺寸,比如“MOTOR_M3_20.5MM”表示电机座、M3螺丝、孔距20.5mm。这样一看名字就知道是什么,不用打开封装看。
对于接插件,命名里带上引脚数和间距,比如“CONN_4P_2.54MM”。对于电池,带上尺寸和电压,比如“BAT_18650_3.7V”。规范统一之后,找封装的速度快很多,也不容易拿错。
封装库还要定期备份。我吃过亏,硬盘坏了,几年的封装库全没了,只能重新画。现在我用版本管理工具管理封装库,每次改动都提交,再也不怕丢。
6.2 常用EDA工具在底盘设计中的取舍
我用过几款EDA工具画PCB底盘,各有优劣。嘉立创EDA上手快,封装库丰富,打样方便,适合快速迭代。Altium Designer功能强,布线规则灵活,适合复杂板子。KiCad免费开源,封装库管理规范,适合长期项目。
对于PCB底盘这种机械和电气混合的设计,我倾向于用Altium Designer或者KiCad,因为它们的3D预览功能好用,可以直观看到板子和机械件的配合。嘉立创EDA的3D预览相对弱一些,但胜在方便。
工具选择没有绝对的好坏,关键是用熟一个。我见过有人今天用这个明天用那个,结果每个都只懂皮毛,效率反而低。选定一个,把它的封装库、布线规则、快捷键都摸透,比换来换去强得多。
6.3 3D预览与机械干涉检查
3D预览是PCB底盘设计的利器。画完板子之后,把电机、轮子、电池的3D模型导进去,检查有没有干涉。我遇到过好几次,2D看没问题,3D一看电机和电池撞了,或者轮子和板边摩擦。
3D模型可以从厂商官网下载,也可以自己用简单几何体拼。精度不用太高,能看出大概轮廓就行。关键是检查运动部件,比如轮子转动时会不会碰到板子,转向时会不会碰到传感器。
如果3D预览发现干涉,改布局比改机械件容易得多。所以这一步要在打样前做,不要等板子回来了才发现装不上。
6.4 导出Gerber与打样注意事项
导出Gerber时要注意层设置。至少要有顶层、底层、丝印层、阻焊层、钻孔层。如果做了四层板,还要有内层。导出后最好用Gerber查看器检查一遍,看看有没有缺层、错位、丝印重叠。
打样时选择合适的工艺。PCB底盘通常尺寸较大,要确认打样厂能做的最大尺寸。板厚选1.6mm或2.0mm,铜厚选1oz或2oz,大电流场景建议2oz。表面处理选沉金或者喷锡,沉金平整度好,适合细间距元件,喷锡便宜,适合大焊盘。
打样数量上,第一版建议打5片,留够调试和损坏的余量。PCB底盘装配过程中可能因为孔位问题报废一两片,打太少不够用。
7. 几个容易被忽略的工程细节
7.1 螺丝孔与过孔的区分
新手容易把螺丝孔和过孔搞混。螺丝孔是非金属化的,孔壁没有铜,螺丝拧进去不会短路。过孔是金属化的,孔壁有铜,用于电气连接。如果螺丝孔做成了金属化,螺丝拧进去可能把不同网络短接,烧板子。
在EDA工具里,螺丝孔要用非金属化孔的符号,或者在钻孔层标注清楚。我见过有人把电机安装孔做成了金属化,结果电机外壳和板子上的地短路,电机一装就复位。这个坑很隐蔽,查起来费劲。
7.2 板边留白与拼板设计
PCB底盘通常尺寸较大,打样时可能涉及拼板。拼板时要注意板边留白,一般每边留5mm以上的工艺边,方便贴片和分板。如果板子形状不规则,拼板会更复杂,建议直接单板打样,省事。
板边留白还影响机械强度。板边太窄,受力时容易开裂。我的经验是,承力区域的板边至少留8mm,非承力区域可以窄一些,但也不要小于3mm。
7.3 电源入口的防护设计
电源入口是整车最脆弱的地方之一。电池反接、浪涌、短路,都可能烧板子。我的做法是在电源入口加防反接二极管和TVS管,再加一个自恢复保险丝。这三个元件加起来成本几毛钱,但能救回一块板子。
防反接二极管选肖特基,压降小。TVS管选双向的,钳位电压略高于电池电压。自恢复保险丝选保持电流略大于正常工作电流的规格。这些参数选对了,电源入口就稳了。
7.4 调试接口的预留
调试接口经常被省掉,但实际调试时没有它很痛苦。我习惯预留SWD下载口、串口、几个关键信号的测试点。SWD口用4Pin排针,串口用3Pin,测试点用1mm焊盘。
这些接口占不了多少地方,但调试时能省大量时间。尤其是测试点,用示波器抓波形时,直接夹测试点比找元件引脚方便得多。我甚至会在板子上留一个电源指示灯和运行指示灯,一眼就能看出板子有没有上电、程序有没有跑起来。
8. 从项目实战看PCB底盘的价值边界
8.1 课程设计与竞赛场景的适配
在课程设计和竞赛场景里,PCB底盘的优势非常明显。迭代快意味着你可以在一周内改一版,快速试错。集成度高意味着整车紧凑,在有限尺寸要求下能塞进更多功能。成本低意味着预算有限的学生也能做多版。
我指导过几个做智能物流小车的队伍,用PCB底盘之后,从方案确定到能跑起来只用了两周,其中还包括一次改版。如果用传统底盘,光机械加工就得一周,还不算装配调试。
但竞赛场景也有特殊要求,比如可靠性。比赛时车不能掉链子,所以PCB底盘的焊接质量、接插件可靠性要特别注意。我建议比赛前做振动测试,把车放在振动台上跑一段时间,或者手动模拟颠簸,看有没有焊点开裂、接插件松动。
8.2 量产场景下的成本与工艺考量
如果是小批量量产,PCB底盘的成本优势更明显。PCB打样成本低,批量生产时单价更低。装配简单,所有接口都是接插件,不需要焊接飞线,人工成本低。一致性高,每块板子都一样,不会出现机械加工的公差问题。
但量产要考虑工艺稳定性。PCB厂家的工艺能力要确认,尤其是大尺寸板子的翘曲度。板子翘曲会导致装配困难,甚至影响电机安装精度。我一般要求厂家翘曲度小于0.5%,这个指标在打样时就要和厂家确认。
另外,量产时封装库要冻结。一旦量产,封装不能再改,否则装配会出问题。所以量产前要把所有封装再实测一遍,确认无误后锁定版本。
8.3 什么情况下应该放弃PCB底盘方案
虽然我一直在讲PCB底盘的好处,但也要说清楚它的边界。重载场景不适合,PCB强度不够。高振动场景不适合,焊点容易疲劳。需要频繁拆装机械件的场景也不适合,PCB的螺丝孔反复拧容易滑丝。
还有一种情况:项目周期极短,且机械结构简单。如果只是做个简单的循迹车,用现成底盘半天就能装好,而画PCB底盘可能要两三天。这种情况下,用现成底盘更划算。PCB底盘的价值在于集成度和迭代能力,如果项目不需要这些,就没必要上。
我的判断标准是:如果这个项目要做三版以上,或者对高度、重量、集成度有明确要求,就上PCB底盘;否则用现成方案。这个标准帮我省了不少时间,也避免了很多过度设计。
8.4 后续扩展方向
PCB底盘做完之后,还有几个扩展方向。一个是把驱动电路集成到主板上,省掉独立的驱动模块,进一步降低高度和成本。另一个是加入电流检测和电压监测,实时监控电机和电池状态,为算法提供反馈。还有一个是设计模块化的传感器接口,用统一的接插件标准,换传感器不用改板子。
这些扩展不是必须的,但能让小车更完善。我的建议是先把基础版跑通,再逐步加功能。不要一上来就追求大而全,那样很容易卡在某个细节上,项目推不动。
我个人在实际操作中的体会是,PCB底盘这个方案最考验的不是画板技术,而是对机械和电气接口的统筹能力。画板谁都会,但把机械尺寸、电气连接、装配顺序、调试需求全部考虑进去,需要的是项目经验。多画几版,多踩几个坑,自然就熟了。