
工创大赛的智能物流小车每年都能在省赛现场看到不少队伍翻车——车是现场拼起来的线是拿胶带临时缠的传感器一上电就乱跳。比赛比到后期根本不是在比算法而是在比谁家的硬件更稳、谁能扛住一整天的连续调试。我连续带了几届这个赛项硬件的坑踩了不少这次干脆把硬件选型里最容易被忽视的几个环节一次性讲清楚。标题写了“一”是因为这套东西真的一次写不完今天这篇先聊方案定调、主控芯片、动力系统再带上电源和感知的部分要点后面再慢慢展开。1. 方案定调先读比赛规则再谈买什么1.1 从任务节点反推硬件清单拿到赛题后先别急着逛购物网站。把规则文档打印出来一支笔一张纸把所有任务节点列出来。以智能物流小车常见的场景为例完整的任务链路大概率是小车从车库启动沿指定路径循迹到达取货区通过识别方式判断物料执行抓取或装载再沿路径运输到指定卸货区最后回到初始位置。听起来很顺但每个环节背后都对应着一套硬件需求。每拆一个节点就在旁边写下对应的硬件需求。循迹节点需要路径检测传感器取货节点如果物料有颜色差异就需要颜色识别模块避障节点要测距传感器抓取或装载节点要舵机或机械臂。这样拆完一轮你会发现整个硬件清单是“自然生长”出来的而不是随手抄来的。这个习惯特别重要因为工创赛每年的规则都有变动比如有的年份要求车体经过限高杆有的年份要求物料按指定姿态摆放不按规则反推买回来的硬件就是一堆高级废品。1.2 四个硬约束尺寸、限重、电压、指定模块我见过最容易犯的错就是只盯着功能选型完全不看比赛给出的硬性限制。常见的硬约束有这么几类每一个都要提前确认。尺寸与场地限制。赛道宽度、车库尺寸、限高杆高度直接限制底盘宽度和车架造型。如果车库入口就90毫米宽你的底盘却在布线时装到100毫米到现场才发现过不去这就很尴尬。整车限重。有的赛区对整车重量有硬性上限重量限制直接决定电池容量上限、底盘材料以及要不要用轻量化3D打印件。供电电压限制。赛题或场地规则往往会限制电压等级比如“电压不得高于24V”或者指定充电接口类型。这会直接影响电池串数和稳压模块的选型。指定模块或指定主控平台。部分赛区会明确主控的范围甚至只允许用某几类开发板。这类消息一定要从主办方发布的最终规则里确认别听二手消息。把这些约束写下来贴到调试台旁边后面每一个选型决策都拿它卡一下不合规的直接淘汰能省下大量返工时间。很多队伍赛前一个月才发现方案违规那才是真正的灾难。1.3 性能冗余够用和过度设计之间怎么拿捏硬件选型里最经典的矛盾是“怕不够又怕浪费”。我的经验是给关键资源留出20%到30%的冗余给非核心功能只要“够用”就行。怎么理解主控的IO数量、PWM通道、Flash和RAM这些决定后续可扩展性的资源如果预算允许尽量选比当前需求多一轮的型号。因为你调试过程中一定会临时加功能比如加一路蜂鸣器、加一个LED状态指示、再塞一个调试用的蓝牙模块这些东西看着不起眼但会把IO和中断资源悄悄吃光。反过来传感器精度、电机功率这类“性能参数”只要满足任务就能用不要盲目上高配。如果任务就是平面场地内的循迹搬运常规红外灰度传感器就够了没必要上激光雷达建图后者在开源方案里看着很酷但在场地小、特征少的环境里调试复杂度会成倍增加。2. 主控芯片算力、接口与开发效率的平衡2.1 三种主流方案先分清自己做的是“控制”还是“处理”主控选型是最让人纠结的一环因为网上说法太杂。按我的经验与其在具体型号间反复横跳不如先想清楚你的系统是“以控制为主”还是“以处理为主”。纯单片机方案例如STM32F103系列、STM32F4系列、ESP32。适合以逻辑控制和运动控制为核心的小车比如多路循迹、编码器闭环、舵机动作、超声波避障。优势是实时性好、外设丰富、稳定性好缺点是跑不了复杂视觉识别需要外接视觉模块。单片机加独立视觉模块的组合方案。比如STM32F103做主控配合OpenMV、K210、树莓派Zero或树莓派4B做识别。主控负责运动和逻辑视觉模块负责颜色识别、二维码识别等两边通过串口或IO通信。这是工创赛智能物流小车我最推荐的架构因为视觉任务和运动控制的任务性质完全不同强行塞在一颗芯片里只会让两边都做不好。Linux板卡主导方案比如树莓派4B或更高性能平台。如果任务里必须做图像分类、路径规划这类重计算任务并且不需要特别硬实时的运动控制可以用这一类。但代价是启动时间长、受干扰容易卡顿、调试环境复杂对现场比赛场景来说风险偏大。如果队伍里的同学主流方向是嵌入式或控制优先选“单片机视觉模块”的组合把运动控制和感知分开两边都能专心调自己的部分。2.2 算力需求评估三个问题先问自己很多人选主控凭感觉觉得“性能越强越保险”实际上应该从任务倒推。我用三个问题来帮队伍做判断。第一系统里有几路需要实时闭环的控制量比如两个编码器电机算两路闭环再加上两个舵机就是四个实时控制通道。这类需求对主控的定时器和中断响应有要求但STM32F103这类入门单片机已经绰绰有余。第二有没有视觉识别任务有的话别指望主控自己跑哪怕是一颗主频240MHz的ESP32跑起通用模型的帧率和稳定性也远不如一个几十块的OpenMV更别说树莓派。视觉模块单独选不要把视觉算力需求算进主控里。第三通信和调试接口有多少比赛现场经常需要无线改参数、看状态如果希望调参方便可以给主控配一个蓝牙串口模块或者选带WiFi的ESP32。但注意ESP32的ADC精度和定时器资源在某些场景下不如STM32不能只盯着WiFi。这三个问题问完主控的算力档位基本就定了。我给大多数参赛队伍的建议是无视觉需求STM32F103C8T6起步有视觉需求STM32F407或ESP32负责运动逻辑OpenMV或树莓派Zero负责视觉两级之间用串口通信。2.3 接口资源别等画完板子才发现IO不够算力之外最容易被低估的是接口资源。我见过一个队伍方案敲定后画了底板PCB结果发现一路特殊定时器的PWM通道被占用了一半被迫重新改板。为了避免这种问题选型时应该列一张接口需求表把每个外设需要什么类型的引脚标清楚。外设需要的IO类型占用数量直流电机PWM 方向TIM PWM GPIO每电机2路霍尔编码器外部中断或定时器输入每电机2路灰度传感器GPIO输入或ADC每路1路超声波传感器GPIO触发 输入捕获2路舵机/机械臂PWM2-6路蜂鸣器、状态灯GPIO2-4路视觉模块通信UART或I2C2-3路把需求加起来再看主控型号的资源。STM32F103C8T6虽然有大量GPIO但PWM定时器资源有限如果接了4个舵机加2个有刷电机可能就得用软件PWM或加多路复用。这时候要么换F407这种定时器更多的高配型号要么加一个PCA9685舵机驱动板把PWM通道扩展出去。提前算好选型就一目了然。2.4 生态和调试体验小众板卡慎选有一个很现实的问题比赛周期就那么几个月调试时间永远不够用。主控的生态好不好直接决定你卡在Bug上的时间。STM32成为主流选择不只是因为便宜而是网上教程、例程、开源项目多到数不清遇到问题搜一下就有答案。ESP32的生态也足够好。反过来如果你选择了一款很小众的开发板性能参数看起来不错但社区资料少连引脚定义都要翻手册这种隐性成本在比赛高压期会非常痛苦。除非队伍里有人对那块板子非常熟悉否则不要为了“差异化”去选冷门平台。比赛不是秀硬件而是比谁能在有限时间里把功能做得更稳。3. 动力系统电机、驱动模块与底盘选型3.1 为什么更推荐直流减速电机智能物流小车九成以上的方案用的都是直流减速电机这个选择不是没有原因的。对比一下主流电机方案步进电机虽然定位精度高、控制简单但低速大扭矩区间的效率不高而且重量大、需要驱动器在需要快速启停和连续跑动的小车上不是最优解无刷电机效率高、寿命长但需要额外电调和FOC控制成本和控制复杂度都上了一个台阶一般用在高速、大功率需求的场景。直流减速电机结构简单一个直流电机加一组减速齿轮得到的是低速大扭矩输出直接适配小车车轮控制上只要给PWM就能调速方向通过H桥换向非常符合比赛的开发节奏。具体型号上常见的N20、GA12-N20、370、540这些都很成熟区别主要在扭矩和功率档位。大多数轻量级小车用N20或类似级别的电机就够如果整车比较重、需要爬坡再考虑370乃至540级别的电机。3.2 减速比与最高车速一段简单的换算选电机的减速比最怕凭感觉。这里有一个简单换算流程能快速判断该选多大减速比的电机全程不需要复杂计算。先确定整车需要的最高速度。比如比赛场地要求小车在直道上达到每秒2米你要用的车轮直径如果是65毫米那车轮的转速就可以算出来速度除以轮子周长也就是2除以π乘以0.065约等于每秒9.8转换算成每分钟就是588转左右。这是理论转速考虑负载、摩擦和弯道减速实际选型时我会把转速目标抬高20%到30%也就是挑700到900转每分钟左右的空载转速电机这样直道速度有余量弯道也不至于跑不动。反过来如果买了一个减速比比较大的电机比如减速比1:50额定转速换算下来只有每分钟300多转那小车最高速度就只有1米每秒左右跑起来明显偏慢。选型前做一次这样的换算很多冲动消费就能避免。3.3 驱动模块L298N为什么总被老手嫌弃电机驱动模块的选型很多人搜索“小车电机驱动”就买了L298N。L298N确实经典但它在比赛场景里有一个很大的缺点内部压降大满负荷工作时发热明显。如果电池电压本身不高经过驱动模块后实际到电机的电压会掉一截电机力道直接减弱跑起来软绵绵的。更推荐TB6612FNG这类MOS管驱动的模块导通压降小发热低体积也小很多。TB6612的单通道最大持续电流在1.2安培左右搭配N20这类小电机完全够用。如果你用的是540级别的大电机那就要考虑更大电流的驱动方案比如BTN7971或者直接上独立MOS管H桥。选驱动模块时除了看最大电流还要注意PWM频率的支持范围这个参数决定了你能不能把电机调得细腻平滑。3.4 编码器和底盘两个容易被低估的细节很多队伍选电机时会忽略一个问题电机是否带编码器。编码器是做速度闭环的关键如果小车对直道走直线、定点停车的精度有要求光靠开环PWM是不够的轮胎打滑、电压波动都会导致左右轮速度不一致。所以尽量直接购买带霍尔编码器版本的电机省去后期改装。编码器的线数也要留意。常见的13线或20线霍尔编码器配合电机输出轴端的减速比最后反映到轮子上的分辨率其实不高但对比赛小车的速度闭环已经够用。如果追求更高定位精度可以考虑更高线数的编码器不过价格和接线复杂度会上升。底盘方面重点关注三点重心低、轮距够宽、安装孔位通用。重心低能让小车在加速、刹车和过弯时更稳轮距宽一点能减少高速转向时的侧翻风险安装孔位最好适应多种电机座和传感器支架方便后期调整。材料上3D打印件足够应对多数情况成本低、改型快。4. 感知系统传感器选型与布局4.1 循迹方案灰度传感器仍是性价比之王赛道循迹是智能物流小车的核心任务目前主流方案有两种多路灰度传感器和摄像头识别。灰度传感器通过红外反射原理检测地面颜色差异黑线吸光、白底反光输出电平或模拟电压稳定、便宜、调起来直观是我最推荐的基础方案。选灰度传感器时要注意探测距离和灵敏度的问题。安装高度太高或者地面反光不均匀传感器数值就会飘。多数红外灰度模块上会有一个可调电位器用来调阈值选型时优先挑带模拟输出和比较器数字输出两种模式的模块这样可以灵活适配不同场地。传感器路数上8路起步比较稳既能满足直线循迹也能应对十字路口、T字路口和急弯。4.2 避障传感器超声波、红外和激光雷达的定位避障模块的选择和比赛任务强相关。如果只是防止碰撞红外避障模块最便宜但探测距离短、受环境光影响大超声波模块常见探测距离从十几厘米到几米都有适合做中距离避障但要注意声波的锥形角度不能把狭窄通道两侧的物体也误判进去。如果比赛任务里出现了需要精确测距甚至建图的环节一般的超声波方案可能不够需要上激光雷达配合相应算法。但从智能物流小车赛项的普遍情况来看超声波和红外组合基本能覆盖绝大多数避障场景激光雷达多见于更高阶的“智能车挑战”类赛事。硬件选型的逻辑还是那条以规则为准不要为了炫技拉高整套系统的难度。4.3 识别物料颜色传感器还是视觉模块物流小车一般会遇到颜色识别或二维码识别这也是硬件选型的一个分水岭。如果任务只是区分几种颜色的物料用TCS3200这类颜色传感器就够了它把光强分成RGB通道主控读回来做阈值判断简单快速。如果规则里要求读取二维码、识别物料形状或者需要判断物料姿态就要上视觉方案了。工创赛最常见的视觉模块是OpenMV它内置摄像头和处理器用MicroPython编程开箱就能做颜色跟踪、二维码识别、Blob检测等功能和主控通过串口通信。选视觉模块时有一个很多人忽略的点镜头视场角和安装位置。视场角太窄物料稍微偏一点就出画面安装位置太高识别精度又下降。最好在选型时就定好安装支架的方案别等模块到手再一边粘一边调。4.4 传感器布局接口方向、重心和干扰处理传感器不是买回来随便一摆就能稳定工作的布局的影响往往在正式跑车时才爆发。举例来说灰度传感器支架如果做得太靠前小车急停时容易点头传感器的离地高度一变化阈值就跟着飘最后表现就是时好时坏。同理超声波模块如果安装位置不对称左右探测范围就会偏差。另外要注意传感器和电机之间的干扰。电机运转时会产生电磁干扰如果传感器信号线和电机线走在一起灰度或者超声波的读数就可能随机跳动。合理的做法是电源线、信号线分开走能加磁环就加磁环主控板上的I/O口最好也做滤波处理。布局的另一个原则是方便调试传感器模块的接口方向尽量朝向同一侧比赛现场换线、插拔模块的效率会大幅提升。5. 电源与接线翻车重灾区不重视必吃亏5.1 电池怎么选容量、放电倍率和接头电源问题看起来最没有技术含量但现场翻车概率最高的就是它。选电池时主要看三个参数电压、容量和放电倍率。电压要和电机驱动及主控供电匹配常见2S锂电池7.4伏或3S锂电池11.1伏容量决定续航一般2000毫安时以上的电池跑完一轮比赛绰绰有余放电倍率决定了能不能瞬间输出大电流电机启动瞬间的电流可是正常运转的好几倍。还有一个细节是电池接口。XT60接头是航模锂电池的标准接口接触面积大、接触电阻小比杜邦线和小香蕉头可靠得多。我见过不少队伍用普通跳线接电池大电流下一发热线就软了这是完全能避免的悲剧。如果条件允许备份一块充满电的电池比赛间隙直接换电比现场充电实用太多。5.2 稳压与地线为什么电机一转单片机就重启很多队伍第一次联调时会遇到一个诡异问题电机一转单片机就重启传感器数据乱跳。这多半是电源回路设计不合理导致的。电机启动瞬间电流很大如果电池电压被拉低到主控最低工作电压以下系统就会复位。解决办法是把电源做成分级结构。电池电压先到电机驱动模块再从电池端单独接一个降压模块降压到5V给主控板和传感器供电如果主控是3.3V逻辑再通过LDO降到3.3V。要注意的是降压模块的地和电机驱动的地在电池端统一汇合但负贵线尽量分开走不要主干线混在一起否则大电流波动还是会耦合到信号侧。这个细节很多教程不会细讲但实际调试时百试百灵。5.3 接线工艺和防呆设计从根上降低现场故障率做智能物流小车接线工艺是硬伤重灾区。一个松动的杜邦线可以让整个系统莫名其妙地掉线而比赛现场又没那么多时间一根一根排查。建议所有涉及大电流的连接都用焊接或压接端子处理信号线可以用杜邦线但插接处要用力插到位必要时用热熔胶固定。防呆设计同样重要。电源接反是初学者的经典失误可以在电源入口加防反接二极管或者在电池接线端直接用防反插接口所有线束最好贴标签注明是电源、信号还是地线这样排查问题时会快好几倍。我还会在关键供电回路上加一个自恢复保险丝短路时自动断开排除故障后又能恢复省下不少更换保险丝的麻烦。6. 常见硬件问题与排查心得6.1 上电之前的全套自检流程分享一个我自己总结的自检流程每次去比赛现场前都按这个顺序过一遍能砍掉绝大多数低级故障。先是静态检查看所有接插件是否插紧螺丝是否松动轮子是否装得正传感器支架有没有晃动。然后做电源检查先用万用表量电池电压再量降压模块输出确认5V、3.3V各路电压正常。之后是上电检查先开发板后电机先不开电机先跑一个LED点亮程序确认主控正常再用串口工具看传感器数据是否正常跳变。最后才是动力测试把小车架空低速给PWM确认左右轮方向和转速一致。这个流程看起来很基础但能挡住的坑占比非常大。我印象最深的一次省赛旁边队伍小车一上电就冒烟检查了半天是5V降压模块输出接反了。如果在赛前按这个流程过一遍根本不会发生。6.2 硬件问题速查表把这些年遇到的典型硬件问题整理成了一张速查表现场排查时照着检查就好。现象可能原因排查方法小车跑偏左右电机转速不一致、轮胎直径差异、重心偏置先交换左右电机驱动信号确认是电机还是底盘问题电机不转但有电流声驱动模块使能脚没拉高、PWM占空比太小用逻辑分析仪或示波器查PWM输出超声波读数乱跳电源波动、接线接触不良、存在同频干扰先单独供电测试再排查信号线路灰度传感器白天和晚上阈值不同环境光干扰确认传感器带遮光罩调阈值时选均匀光线环境程序下载失败下载器接线过长、目标板未上电、Boot引脚状态不对检查SWD接口接线缩短杜邦线长度开机后反复重启电池电压跌落、5V稳压带载能力不足测量电机启动瞬间的电池电压是否被拉低这张表不完全但大概率能覆盖比赛初期碰到的大多数痛点。遇到问题时先不要急着改程序稳定复现现象再逐个模块排查效率会高得多。6.3 备件与工具清单最后再说说备件。比赛现场最怕的不是模块坏了而是坏了自己修不了或没得换。我的备件原则是“关键模块至少备份一份消耗类小件多备”。一个比较实用的清单是备用电机一到两个、驱动模块一块、灰度传感器两三个、超声波模块一个、常用螺丝螺柱若干、垫片一包、杜邦线公母头若干、热缩管和电工胶带、万用表、焊台和吸锡器。如果比赛用到视觉模块再备份一根串口线和一张TF卡。很多队伍只带“现成配件”不带耗材结果现场需要改线、换端子、加支架时只能干瞪眼。工具上万用表和焊台是必须的好的剥线钳和压线钳也很加分。这些装备看着基础比赛现场的价值不亚于任何一套高端传感器。这套硬件选型打底的过程我连续带了三届队伍每一次都发现真正决定现场成绩的反而不是那些看起来很酷的高端模块而是一套稳定、够用、方便调试的基础平台。硬件选型永远不要追求一步到位我的习惯是先搭一套最小系统跑通流程再根据实际表现逐步升级这样既能控制预算也能把每一个换上去的模块都调透。后面这个系列我会接着写感知系统的实战调参、电源EMI处理还有完整的联调流程里面有不少是这次硬要说清楚的东西。