ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

PCB底盘智能小车设计:从层叠到Gerber的工程实战

PCB底盘智能小车设计:从层叠到Gerber的工程实战 智能小车这个方向很多人第一反应是买现成的亚克力或者铝合金底盘然后往上堆电机、驱动板、主控板、传感器。但只要你做过两三台就会发现一个很现实的问题现成底盘的孔位是固定的你想加个超声波、想换个电机、想把电池挪个位置全得靠热熔胶和扎带硬凑最后车底下一团乱麻重心还飘。我后来干脆换了个思路——直接把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. 从原理图到GerberPCB底盘的设计流程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.5mm2A的话要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底盘这个方案最考验的不是画板技术而是对机械和电气接口的统筹能力。画板谁都会但把机械尺寸、电气连接、装配顺序、调试需求全部考虑进去需要的是项目经验。多画几版多踩几个坑自然就熟了。
返回列表