ARTICLE DETAIL

建站实战干货

来自一线的建站与推广经验沉淀,每一条都经过真实交付验证。

硬件基础 - 平衡小车PCB设计全流程实战(STM32F103)

2026/8/29 4:34:55 拓冰建站 浏览量
硬件基础 - 平衡小车PCB设计全流程实战(STM32F103) 硬件基础 - 平衡小车PCB设计全流程实战STM32F103从原理图到平衡小车成品板的完整记录原理图设计 → PCB布局 → PCB布线 → DRC检查 → 铺铜 → 导出Gerber → 下单打样。本文以两轮自平衡小车项目为例采用模块化插拔设计详解每一环节的实操要点与避坑经验。1 平衡小车设计概述1.1 设计目标基于STM32F103C8T6核心板可插拔设计一块用于两轮自平衡小车的项目用开发板包含以下功能模块功能模块用途供电模块7.4V~12V锂电池供电经稳压输出5V/3.3V给各模块STM32F103C8T6核心板小车控制大脑运行平衡算法PIDMPU6050传感器六轴陀螺仪加速度计实时检测车身倾角电机驱动TB6612双路直流电机驱动提供大电流驱动编码电机编码电机轮子带霍尔编码器的直流减速电机实现速度闭环超声波模块避障/测距用于辅助功能如自动跟随或防撞蓝牙模块HC-05无线调试与遥控手机APP或PC端控制OLED 0.96寸I2C接口显示屏实时显示倾角、速度、PID参数1.2 设计理念模块化与可更换核心板与模块全部采用排针/排母插拔方式核心板不焊接MCU是板上最脆弱、最容易损坏的部件过压、静电、软件锁死等采用插拔式封装损坏后可直接更换无需重焊整板。传感器模块同样插拔MPU6050、蓝牙、超声波等均使用排母座接入方便调试阶段更换不同型号或单独验证模块好坏。PCB板本身几乎不会损坏电阻、电容、插座均为无源器件这种设计极大降低了项目迭代成本。1.3 开发工具工具说明嘉立创EDA(推荐)国产免费封装库完善10×10cm内双层板免费打样Altium Designer企业级专业工具门槛高KiCad开源免费功能齐全无需纠结元器件厂家在立创商城搜索型号时同规格器件有多家生产商如LM1117有TI、UMW、AMS等实际电气参数差异极小。只需要关注封装尺寸是否与实际购买的模块一致——排针/排母数量对、间距对就能正常安装使用。2 供电模块设计2.1 供电链路架构平衡小车采用7.4V~12V锂电池组供电或DC电池盒同时满足电机高电压需求和控制电路稳压需求。锂电池 (7.4~12V)│├──[VBAT_IN] ──→ 电机驱动TB6612 (VM) ← 直接供电电压越高扭力越大│└──[H1外接稳压模块接口] ──→ 5V稳压│├──→ 5V给超声波、电机逻辑电平、OLED│└──→ 3.3V LDO (板载或模块自带) ──→ STM32核心板、MPU6050、蓝牙为什么要给电机直接供电而不经过稳压电机是靠电流产生转矩电压越高转速越快、力气越大。稳压芯片如LM2596输出电流有限最大3A如果电机堵转瞬间电流可达数安培经过稳压会严重压降甚至烧毁芯片。直接电池供电是电机驱动的标准做法而控制电路MCU、传感器则必须通过稳压供电以获得稳定工作电压。2.2 稳压模块接口设计H1本方案不在主板上集成开关稳压芯片避免PCB面积过大和发热问题而是通过排母H1外接一个独立的DC-DC稳压模块如LM2596降压模块或Mini-360将电池电压降至5V。序号元件型号/规格封装数量说明12P排母2.54mm 1×2P 母座插件1H1外接稳压模块输入电池正负极22P排母2.54mm 1×2P 母座插件1H2稳压模块输出5V及GND32P排针2.54mm 1×2P 直针插件1用于跳线帽选择VBAT_IN直接输出给电机为什么不用板上集成稳压开关稳压芯片需要外围电感、电容、续流二极管占用空间大小车空间紧凑外接模块可灵活放置在电池附近减少布线干扰稳压模块损坏可直接更换降低维修成本。3 核心板与OLED显示电路3.1 STM32F103C8T6核心板采用市面上通用的STM32F103C8T6最小系统板带USB口、晶振、复位按键通过两排2.54mm排母插在主板上。序号元件型号/规格封装数量说明1STM32F103C8T6核心板最小系统板含MCU、晶振、复位成品模块1可插拔损坏即换2双排排母2.54mm 2×10P / 2×15P视核心板引脚数插件2核心板插座核心板与底板的关系核心板负责运行你的平衡算法C语言代码通过IO口与底板上的各类模块通信。软件层面你需要提前规划好哪些引脚用于PWM输出电机、哪些用于I2CMPU6050/OLED、哪些用于UART蓝牙、哪些用于编码器捕获。硬件层面原理图必须与软件引脚分配完全对应核心板内和核心板外关系大致如下3.2 OLED显示屏I2C接口使用0.96寸OLED屏幕作为本地显示界面实时查看倾角、PID输出、电池电压等调试信息。序号元件型号/规格封装数量说明1OLED模块0.96寸I2C接口4针成品模块1VCC/GND/SCL/SDA2单排排母2.54mm 1×4P 母座插件1OLED插座功能3单排排母2.54mm 1×4P 母座插件1冗余支撑座防松动冗余排母设计OLED模块自带的排针长度有限仅靠单排母座插入可能不稳小车振动易脱落。在旁边再增加一个空排母座不接线路作为物理支撑插入模块后两端受力均匀极大提升抗振性。此技巧同样适用于蓝牙、超声波等模块。4 MPU6050倾角传感器4.1 电路连接MPU6050集成三轴陀螺仪三轴加速度计通过I2C总线与MCU通信。它输出的倾角数据是PID平衡算法的核心输入。序号元件型号/规格封装数量说明1MPU6050模块六轴陀螺仪加速度计成品模块1通常带LDO稳压可直接接3.3V或5V2单排排母2.54mm 1×4P 母座插件1VCC/GND/SCL/SDAI2C总线注意MPU6050和OLED通常都使用I2CSCL/SDA。它们可以挂载在同一条I2C总线上因为器件地址不同MPU6050默认0x68OLED默认0x3C/0x78。在原理图中将它们并联即可软件通过地址区分设备。若担心总线冲突也可为MPU6050单独分配一对IO软件模拟I2C本设计推荐硬件I2C共享总线以节约引脚。5 电机驱动电路TB66125.1 TB6612模块接口TB6612是一款双路直流电机驱动芯片最大输出电流3A持续1.2A非常适合小车电机驱动。它需要两路PWM分别控制左右电机速度和四路方向信号AIN1/AIN2、BIN1/BIN2。序号元件型号/规格封装数量说明1TB6612模块双路电机驱动带散热片成品模块1可插拔模块2双排排母2.54mm 2×?P按模块引脚数插件1模块插座3接线端子2P螺钉式端子5.08mm插件2左右电机接线口引脚分配参考TB6612引脚连接MCU引脚功能PWMAPA8TIM1_CH1左电机PWM速度AIN1PB12左电机方向1AIN2PB13左电机方向2PWMBPA9TIM1_CH2右电机PWM速度BIN1PB14右电机方向1BIN2PB15右电机方向2STBYPB8待机控制高电平使能VMVBAT_IN电机电源直接电池正极VCC5V逻辑供电电机电源与控制电源必须隔离TB6612的**VM电机电源直接接VBAT_IN电池正极而VCC逻辑电源**接5V稳压输出。两者虽是同一电池来源但VM走大电流大纹波路径VCC走稳定小电流路径。绝不能用稳压后的5V给VM供电——电流不够且会烧毁稳压芯片。6 编码电机与编码器接口6.1 编码电机原理编码电机在普通直流电机尾部增加了霍尔编码器或光电编码器输出两路正交脉冲A相/B相。MCU通过捕获脉冲数计算实际转速和方向用于速度闭环PID平衡车在倾角环之外必须加速度环才能稳定站立。序号元件型号/规格封装数量说明1编码电机带霍尔编码器6V/12V直流减速电机成品2左右轮各一个2单排排母2.54mm 1×4P 母座插件2左/右电机编码器信号插座A/B/VCC/GND32P接线端子螺钉式或XH2.54插件2电机电源线M、M-MCU引脚分配建议编码器信号MCU引脚定时器左电机编码器APA0TIM2_CH1编码器模式左电机编码器BPA1TIM2_CH2编码器模式右电机编码器APA2TIM3_CH1编码器模式右电机编码器BPA3TIM3_CH2编码器模式编码器模式必须使用定时器_CH1/CH2通道STM32的定时器编码器接口模式只支持通道1和通道2CH1/CH2CH3/CH4不支持。分配引脚时务必避开这个限制否则无法使用硬件编码器计数只能手动捕获中断CPU占用极高。7 超声波测距模块HC-SR047.1 电路连接超声波模块用于避障或自动跟随通过TRIG触发和ECHO回响引脚与MCU通信。序号元件型号/规格封装数量说明1超声波模块HC-SR04或US-100成品模块15V供电2单排排母2.54mm 1×4P 母座插件1VCC/TRIG/ECHO/GND引脚分配TRIG → 任意GPIO输出如PB9ECHO → 任意GPIO输入支持中断捕获或普通输入计时建议使用支持输入捕获的定时器通道以精确测量脉冲宽度如PB6/TIM4_CH1。8 蓝牙模块HC-058.1 无线调试与遥控蓝牙模块通过UART与MCU通信用于无线串口调试通过手机APP如SPP发送PID参数调节指令免去每次改代码重烧的麻烦遥控模式手机发送前进/后退/转向指令切换平衡车为遥控车模式序号元件型号/规格封装数量说明1蓝牙模块HC-05主从一体带底板成品模块13.3V或5V供电视底板2单排排母2.54mm 1×4P 母座插件1VCC/GND/TX/RX交叉连接原则蓝牙的TXD接MCU的RXD蓝牙的RXD接MCU的MCU的TXD。UART通信永远是TX→RX。引脚分配使用USART3PB10/TXPB11/RX不占用USART1预留做ISP下载或其它用途。9 完整原理图汇总与关键检查点9.1 电源网络命名规范网络名电压说明VBAT_IN7.4~12V电池直出供电机驱动VM5V5V稳压模块输出供超声波、OLED、TB6612逻辑、核心板经LDO3.3V3.3V核心板内置LDO输出或板载LDO供MPU6050、蓝牙模块视模块GND0V公共地必须单点汇聚9.2 检查清单1.所有模块的VCC和GND是否正确连接 2.I2C总线SCL/SDA是否连接了上拉电阻一般模块自带若没有需外接4.7K编码器引脚是否分配到了定时器CH1/CH2PWM引脚是否分配到了支持硬件PWM的定时器通道电机VM电源是否独立走线不经过稳压所有模块的插座方向是否便于插拔排母朝上不与其他模块干涉★10 PCB布局全流程10.1 从原理图到PCB设计(D) → 更新/转换原理图到PCB → 元件导入10.2 放置板框使用嘉立创EDA矩形板框工具单位切换为mm板框尺寸100mm × 100mm免费打样上限起点X: 0mm 起点Y: 0mm 宽度: 100mm 高度: 100mm10.3 安装孔设置四个角放置安装孔用于固定到小车底盘孔编号中心坐标说明0(3mm, -3mm)左上角1(97mm, -3mm)右上角2(97mm, -97mm)右下角3(3mm, -97mm)左下角焊盘直径4mm钻孔直径3.5mm网络GND通过金属螺丝接地增强抗干扰圆心离板边3mm★10.4 布局顺序关键核心板居中 → 大电流模块靠边 → 传感器远离干扰源平衡小车PCB布局直接影响电磁兼容性和传感器精度必须遵循以下顺序。步骤电路模块放置位置理由1STM32核心板板子中央偏上控制中心走线到各模块距离均衡2供电接口H1/H2 电池接线左下角边缘电源入口远离敏感模拟信号3电机驱动TB6612模块右侧边缘或右下角大电流模块靠近电机接线端子减少输出线长度4左右电机接线端子右侧板边电机线直接引出避免横穿板面5MPU6050传感器板子几何中心附近必须放在重心位置才能准确测量车身倾角远离电机驱动和电源以减少震动和电磁干扰6蓝牙模块左上角板边无线信号远离金属和干扰源靠边便于蓝牙天线外露7超声波模块接口上边缘中间测距需要朝向前方小车前进方向板边引出8OLED接口上边缘或左边缘屏幕需露出板外便于观察靠边放置9编码器接口左/右电机右侧靠边缘靠近电机走线短10去耦电容与指示灯各模块旁边插空每个模块电源附近放100nF电容减少电源纹波10.5 布局实用技巧交叉选择选中原理图中的网络或元件点击“交叉选择”自动定位到PCB对应位置。对齐与分布布局(O) → 对齐 / 分布将同类排母整齐排列。文档层测距在文档层画出电源分区框、电机区、传感器区避免布线时越界。预留调试排针在核心板附近引出一组GND/SWDIO/SWCLK/3.3V排针或排母方便烧录调试。10.6 元件排列黄金规则所有排母/模块放在顶层便于插拔底层只放去耦电容或跳线帽大电流走线VBAT_IN、电机输出尽量短且粗信号线I2C、UART远离电机驱动线至少5mm间距MPU6050下方禁止走大电流线传感器精度极其敏感边缘元件离板边 ≥ 2mm兼顾机械强度与插拔空间模块排母方向统一便于插拔不干涉★11 PCB布线11.1 自动布线设置初学者建议先自动布线再手动调整。电源线加粗设置布线 → 自动布线 → 设计规则物理 → 导线 → 新增 power wire单位用mil最小20mil、默认25mil、最大45mil网络规则 → 导线将VBAT_IN、5V、VCC、GND设置为 power wire11.2 布线要求线宽类型最小推荐说明信号线I2C/UART/PWM8mil10mil普通信号电源线5V/3.3V20mil25mil提供稳定电流电机电源线VBAT_IN/电机输出30mil40~50mil大电流堵转时数安培越粗越好地线主干GND25mil30mil单点接地回流路径要粗网络布通率必须100%如果自动布线失败 → 清除全部网络 → 调整元件位置可能是排母间距冲突→ 重新自动布线。若多次失败检查原理图是否有孤立网络未连接的引脚。11.3 手动优化要点电机驱动输出线从TB6612模块到接线端子要直连、加粗不要绕弯。I2C总线SCL/SDA走线尽量平行且长度接近等长不是必须但别差太远避免跨分割区。MPU6050信号线尽量短且远离电机驱动线必要时在MPU6050电源附近加一个10μF钽电容滤波。地线处理在电池接入点H1负极进行单点接地——所有GND最终都汇到这一点避免地环路。12 DRC检查与铺铜12.1 DRC检查原理图阶段和PCB阶段都需要DRC检查原理图DRC检查未连接网络、重复编号、单端网络Single NetPCB DRC检查短路、间距不足安全间距≥6mil、未连接网络、未布线网络结果必须 0错误器件标准化警告如封装名称不规范可忽略。12.2 铺铜顶层和底层都需要大面积铺铜GND网络作用减少地阻抗提高大电流回流能力屏蔽EMI干扰保护MPU6050等敏感器件辅助散热电机驱动发热放置P → 铺铜区域 → 矩形 → 覆盖整个板子 → 网络选GND铺铜完成后必须再次DRC检查铺铜可能因规则设置不当产生死铜或间距违规。12.3 放置丝印丝印层标注以下信息方便焊接与调试元件编号如U1核心板、J1电机接口、H1电源输入接口功能标注 “VBAT_IN”、“5V”、“GND”、“MOTOR_L”、“MOTOR_R”引脚功能在排针旁标注 “SCL”、“SDA”、“TX”、“RX”、“TRIG”、“ECHO”版本号和日期如 “Balance Car V1.0 2026-08”Logo或标识可放置校徽或项目图标13 PCB下单与免费打样13.1 导出Gerber文件在嘉立创EDA中导出 → PCB制版文件(Gerber)→ 下载zip压缩包。13.2 领免费券用户中心 → 优惠券中心 → PCBSMT喷锡免费券两次开盲盒概率获PCBSMT免费券“PCB 1-4层喷锡专用券”注意同一块板子需要修改一些地方随便打两个孔就能免费了13.3 下单配置选项选择原因板材类别FR-4标准玻纤板免费板厚1.6mm默认强度和成本均衡阻焊颜色绿色绿色可免费加急其他颜色需额外收费且不能加急表面处理有铅喷锡免费焊接兼容性好优惠券选择PCB免费券确认总价为0元后再提交关于SMT贴片SMT表面贴装技术指将元器件直接贴装在PCB表面。本设计大部分为插拔模块和插件排母无需SMT自己焊接即可。若后续改版用到大量贴片阻容可考虑使用嘉立创的SMT免费券。14 完整开发流程总结原理图设计 → PCB布局 → PCB布线 → DRC检查 → 铺铜 → 丝印 → 导出Gerber → 下单打样 → 焊接 → 调试阶段工作内容工具/方法1. 原理图绘制各模块连接定义网络名分配引脚嘉立创EDA2. PCB布局核心板居中→电源靠边→电机靠右→传感器居中靠上嘉立创EDA3. PCB布线自动布线→手动优化加粗电源/电机线嘉立创EDA4. DRC0错误通过嘉立创EDA5. 铺铜顶层底层GND铺铜嘉立创EDA6. 丝印标注接口功能、版本号嘉立创EDA7. 导出Gerber文件zip嘉立创EDA8. 下单领券→上传Gerber→确认0元嘉立创下单助手9. 焊接焊接排母/排针/接线端子插上所有模块电烙铁10. 调试上电测电压→烧录程序→观察OLED→调PID万用表/示波器/串口助手引导思考为什么MPU6050必须放在PCB的几何中心偏离中心会怎样影响平衡效果电机驱动TB6612的VM电机电源为什么不经过稳压模块而直接接电池正极如果编码器引脚误用了定时器的CH3/CH4通道会出现什么问题软件上能补救吗为什么蓝牙模块的TXD要接MCU的RXD而不是同名相连布局时为什么要让电机驱动模块靠近板边而MPU6050靠近中心参考答案倾角传感器应安装在小车物理重心处否则车体摆动时会产生额外的离心加速度分量导致角度融合算法输出偏差平衡站立不稳定甚至无法直立。电机启动/堵转时电流可达数安培远超过稳压芯片的额定输出通常1~3A。若经过稳压会导致严重压降使MCU掉电复位或直接烧毁稳压管。电机靠大电流产生力矩直接电池供电是行业标准做法。STM32定时器的编码器接口只支持CH1和CH2CH3/CH4无法配置为编码器模式。若误用只能改用外部中断捕获每个脉冲CPU负载极高且速度环控制周期无法保证小车无法正常运行。必须重新分配引脚。UART通信为交叉连接发送端(TX) → 接收端(RX)。若同名相连TX→TX两者都是输出信号冲突无法通信。电机驱动是大电流干扰源放边缘可让大电流回路最短化减少对板内敏感信号I2C、编码器的干扰MPU6050居中是物理测量精度的硬性要求且远离干扰源能降低陀螺仪零漂。后续还会更新软件部分同时会带上硬件模块解释真正的大头在软件