扫地机器人的硬件原理图解析

从零开始制作扫地机器人,涉及PCB设计、Solidworks建模与打印、单片机外设开发、电机驱动App开发蓝牙/语音模块、FreeRTOS代码优化等。本文主要涉及扫地机器人的硬件原理图解析,后续还会推出代码解析。


目录

整体的原理图如下:

主控部分:

PIN_1(VBAT):

PIN_5(PD0-OSC_IN):外部高速时钟输入(HSE Oscillator IN)

PIN_6(PD1-OSC_OUT):外部高速时钟输出(HSE Oscillator OUT)

PIN_7(NRST):外接RST

PIN_8(VSSA):Voltage Source (Supply) for Analog Ground​​(模拟地)

PIN_9(VDDA):​​Voltage (Drain)Digital-Analog for Analog​​(模拟电源)

PIN_12(PA2):连接到语音部分,作为USART2_TX进行串口通信,配置为以下模式:

PIN_13(PA3):连接到语音部分,作为USART2_RX进行串口接收,配置为以下模式:

PIN_16(PA6):TIM3_CH1​连接到电机部分作为PWM输出

配置信息​​

​​功能与硬件设计​​

PIN_17(PA7):TIM3_CH2​连接到电机部分作为PWM输出

配置信息​​

功能与硬件设计​​

PIN_18(PB0):预留的PWM输出引脚

PIN_44(BOOT0),PIN_20(BOOT1):

PIN_21(PB10),PIN_22(PB11):

PIN_23(VSS_1):

PIN_24(VDD_1):

PIN_25(PB12),PIN_26(PB13):

PIN_30(PA9),PIN_31(PA10):

PIN_34(PA13):Serial Wire Data Input/Output,串行线数据输入 / 输出 ):

PIN_37(PA14):(Serial Wire Clock,串行线时钟 ):

PIN_39(PB3),PIN_40(PB4):配合PA6的PWM输出来控制左轮

PIN_41(PB5),PIN_42(PB6):配合PA7的PWM输出来控制右轮

PIN_43(PB7):

PIN_45(PB8):

串口屏+超声波+蓝牙:

串口屏部分:

超声波部分:

蓝牙部分:

电源部分:

AMS1117 - 3.3:

TPS5430DDAR:

电机部分:

TB6612FNG(O,C,8,EL):

1. 功能定位

2. 控制电机转向的原理

3. 与控制信号的关系

4. 应用场景差异

语言部分:


整体的原理图如下:

其实只有这一页,说明这个工程没有我们想象的那么难,接下来为大家一步一步解析这个原理图,让大家可以从原理图想象到实物的控制是怎么样的。


主控部分:

我们这次使用的控制芯片是STM32F103C8T6,一个简单的常用的控制芯片,首先我们先看U1,除去没有连接的部分引脚,我们用到的引脚有以下pin:

PIN_1(VBAT):

备用电源引脚 ,作用是为实时时钟(RTC)和后备寄存器供电 。当主电源断电后 ,VBAT 连接的备用电源能维持 RTC 计时及后备寄存器数据不丢失 ,保证相关功能持续运行 。


PIN_5(PD0-OSC_IN):外部高速时钟输入(HSE Oscillator IN)

  1. 连接外部 ​​8MHz晶振(X1)​​ 的输入引脚,用于接收晶振产生的时钟信号
  2. 为芯片提供高精度主时钟源(HSE,High Speed External)
  3. 需外接匹配电容(图中 ​​C1=22pF​​)以稳定晶振振荡
  4. 通过 ​​X1晶振​​ 与 ​​PIN_6(PD1-OSC_OUT)​​ 形成闭环振荡回路
  5. 匹配电容 ​​C1​​ 和 ​​C2​​(均为22pF)用于调节晶振负载电容,确保起振稳定
  6. 典型应用:芯片主时钟源(经PLL倍频后产生72MHz系统时钟)

PIN_6(PD1-OSC_OUT):外部高速时钟输出(HSE Oscillator OUT)

  1. 输出晶振振荡信号至外部电路
  2. 与PD0-OSC_IN配合形成完整的晶振驱动回路
  3. 若未使用外部晶振,此引脚可配置为普通GPIO或其他复用功能
  4. 与PD0共同连接外部晶振 ​​X1(8MHz)​​ 和电容 ​​C2(22pF)​
  5. 在原理图中,晶振电路通过 ​​R11(1MΩ)​​ 并联电阻增强抗干扰能力

PIN_7(NRST):外接RST

                                                                  

     1.低电平有效​​的异步复位信号输入引脚

     2.当引脚电平 ​​< 0.8V(VIL)​​ 时,触发芯片复位(程序重启,寄存器恢复默认值)

     3.内置弱上拉电阻(约40kΩ),外接 ​​10kΩ上拉电阻​​ 增强抗干扰能力


PIN_8(VSSA):Voltage Source (Supply) for Analog Ground​​(模拟地)

  • 为芯片内部 ​​模拟电路​​(ADC、DAC、温度传感器等)提供独立的接地回路
  • 与数字地(VSS)隔离,避免数字噪声干扰模拟信号
  • 在原理图中直接连接到 ​​统一地平面(GND)​
  • 实际PCB布局时,建议通过 ​​单点接地​​ 连接模拟地与数字地(如通过0Ω电阻或磁珠隔离)
  • 为防止干扰,避免模拟信号走线与高速数字信号(如时钟线、PWM)平行布线

PIN_9(VDDA):​Voltage (Drain)Digital-Analog for Analog​​(模拟电源)

  • 为内部模拟电路提供 ​​3.3V独立供电​​(与数字电源VDD隔离)
  • 直接影响ADC/DAC的精度和稳定性
  • VDDA走线应远离数字电源(VDD)和高速信号线
  • 优先采用星型拓扑连接电源,减少压降干扰

PIN_12(PA2):连接到语音部分,作为USART2_TX进行串口通信,配置为以下模式:

  1. ​复用推挽输出(AF_PP)​

    • 将PA2映射为 ​​USART2_TX​​ 功能,通过硬件串口控制器直接驱动信号
    • 推挽输出可提供 ​​强驱动能力​​(高电平=3.3V,低电平=0V),适合长距离传输(如RS-232/485电平转换器前级)
  2. ​高速模式(GPIO_SPEED_FREQ_HIGH)​

    • 支持USART2 ​​最高波特率​​(如4.5Mbps,需APB1时钟=36MHz)
    • 降低信号边沿抖动,确保时序精度

PIN_13(PA3):连接到语音部分,作为USART2_RX进行串口接收,配置为以下模式:

浮空输入(GPIO_NOPULL)(GPIO_MODE_INPUT)​

  • 适用于 ​​外部设备已提供确定电平​​ 的场景(如外部收发器输出固定驱动)
  • 若信号源驱动能力弱(如长线缆),建议启用内部上拉(GPIO_PULLUP)

PIN_16(PA6):TIM3_CH1​连接到电机部分作为PWM输出

配置信息​
  • ​信号​​:TIM3通道1(TIM3_CH1)
  • ​GPIO模式​​:复用推挽输出(Alternate Function Push-Pull)
  • ​最大输出速度​​:低速(Low,最高2MHz)
​功能与硬件设计​
  1. ​PWM信号生成​​:
    • 作为TIM3的 ​​通道1​​,PA6输出PWM信号,控制2个左轮电机的 ​​转速或方向​​。
    • 占空比范围:0%~100%(通过TIM3的CCR1寄存器调节)。
    • ​时钟源​​:TIM3的时钟来自APB1总线,默认频率为 ​​72MHz​​(STM32F103C8主频配置)。
    • ​分频与周期​​:
      • 预分频值(Prescaler)= 720-1 → 分频后频率 = 72MHz / 720 = ​​100kHz​
      • 自动重载值(Period)= 100-1 → PWM周期 = (100-1 + 1) / 100kHz = ​​1ms​​ → PWM频率= ​​1kHz​
    • ​占空比控制​​:
      • 通过通道1的 ​​捕获/比较寄存器(CCR1)​​ 设置占空比,公式:
      • 例如:CCR1=50 → 占空比=50/100=50%
  2. ​硬件连接​​:
    • 直接连接至 ​​电机驱动芯片TB6612FNG的PWM输入引脚​​。
    • 若驱动高压电机(>5V),需通过 ​​光耦隔离(如TLP521)​​ 或 ​​电平转换电路​​。
  3. ​信号优化​​:
    • 串联 ​​22Ω电阻​​(抑制信号反射)
    • 并联 ​​100pF电容到地​​(滤除高频噪声)

PIN_17(PA7):TIM3_CH2​连接到电机部分作为PWM输出

配置信息​
  • ​信号​​:TIM3通道2(TIM3_CH2)
  • ​GPIO模式​​:复用推挽输出
  • ​最大输出速度​​:低速
功能与硬件设计​
  1. ​PWM信号生成​​:
    • 作为TIM3的 ​​通道1​2,PA6输出PWM信号,控制2个右轮电机的 ​​转速或方向​​。
    • 占空比范围:0%~100%(通过TIM3的CCR2寄存器调节)。
    •  ​​时钟源​​:TIM3的时钟来自APB1总线,默认频率为 ​​72MHz​​(STM32F103C8主频配置)。
    • ​分频与周期​​:
      • 预分频值(Prescaler)= 720-1 → 分频后频率 = 72MHz / 720 = ​​100kHz​
      • 自动重载值(Period)= 100-1 → PWM周期 = (100-1 + 1) / 100kHz = ​​1ms​​ → PWM频率= ​​1kHz​
    • ​占空比控制​​:
      • 通过通道2的 ​​捕获/比较寄存器(CCR2)​​ 设置占空比,公式:
      • 例如:CCR1=50 → 占空比=50/100=50%
  2. ​硬件连接​​:
    • 直接连接至 ​​电机驱动芯片TB6612FNG的PWM输入引脚​​。
    • 若驱动高压电机(>5V),需通过 ​​光耦隔离(如TLP521)​​ 或 ​​电平转换电路​​。
  3. ​信号优化​​:
    • 串联 ​​22Ω电阻​​(抑制信号反射)
    • 并联 ​​100pF电容到地​​(滤除高频噪声)

PIN_18(PB0):预留的PWM输出引脚


PIN_44(BOOT0),PIN_20(BOOT1):

电阻接地构成下拉电阻电路 。芯片复位或上电时,下拉电阻将引脚电平拉低,保证引脚初始电平状态确定,为启动模式选择提供稳定初始条件 。


PIN_21(PB10),PIN_22(PB11):

PB10、PB11 作为 USART3 的 TX 和 RX 引脚,用于和串口屏进行数据交互,实现显示控制、数据传输等功能。


PIN_23(VSS_1):

​VSS_1​​ 是芯片的 ​​电源地(Ground)引脚​​,属于STM32的多个接地引脚之一。

PIN_24(VDD_1):

​VDD_1​​ 是芯片的 ​​电源正极引脚​​,为STM32提供3.3V工作电压。


PIN_25(PB12),PIN_26(PB13):

预留的配合PB0的电机控制引脚


PIN_30(PA9),PIN_31(PA10):

PA9作为USART1的发送引脚(TX),PA10作为USART1的接收引脚(RX),连接到蓝牙部分


PIN_34(PA13):Serial Wire Data Input/Output,串行线数据输入 / 输出 ):

  • 功能:用于在调试或编程过程中,向 STM32F103C8T6 微控制器发送数据或接收来自芯片的数据 。当使用调试工具(如 J - Link、ST - Link 等)连接到芯片进行程序调试、下载时,通过该引脚传输调试命令、程序代码、变量数据等信息 。

PIN_37(PA14):(Serial Wire Clock,串行线时钟 ):

  • 功能:为 SWDIO 引脚的数据传输提供时钟信号 ,控制数据在 SWDIO 上进行发送和接收的时序。在同步通信中,时钟信号用于确定数据的采样时刻和传输节奏 。

PIN_39(PB3),PIN_40(PB4):配合PA6的PWM输出来控制左轮

PIN_41(PB5),PIN_42(PB6):配合PA7的PWM输出来控制右轮

- 工作模式:推挽输出(GPIO_MODE_OUTPUT_PP)
- 初始状态:低电平(GPIO_PIN_RESET)
- 输出速度:高速(GPIO_SPEED_FREQ_HIGH)

通过不同的电平组合来控制电机的正反转,具体如何控制请看下面电机部分。


PIN_43(PB7):

为发送超声波模块的触发信号,具体如何发送请看代码部分。

PIN_45(PB8):

- 配置为TIM4_CH3输入通道
- 用于接收超声波模块的回波信号(Echo)
- 通过TIM4的输入捕获功能测量回波时间


串口屏+超声波+蓝牙:

接下来我们看串口屏+超声波+蓝牙部分,这一部主要是用于显示系统信息,测距,以及与手机通信的功能。

串口屏部分:

2脚为TX脚,连接PB11(USART3_RX),3脚为RX脚,连接PB10(USART3_TX),用于和串口屏进行数据交互,实现显示控制、数据传输等功能,具体实现请看代码。

超声波部分:

2脚连接到PB7,用于接收STM32的触发信号;3脚连接到PB8,用来给STM32发送PWM信号,从而在STM32中计算距离,具体实现请看代码。

蓝牙部分:

1脚为RX连接到PA9(USART1_TX),2脚为TX连接到PA10(USART1_RX),与STM32进行串口通信,并且蓝牙模块与手机连接,进行蓝牙通信,具体实现请看代码。


电源部分:

这里主要是供电和开关,电路连接固定,对我们的工程只起到供电作用,所以这里只做简要讲解:

AMS1117 - 3.3:

  • 功能:这是一款低压差线性稳压器(LDO) 。能将输入电压转换为稳定的 3.3V 输出电压,具有低压差特性,在输入输出电压差较小时也能稳定工作,为对电源稳定性要求较高的电路,如 STM32 芯片等提供稳定的 3.3V 供电。
  • 电路连接原因:STM32 芯片工作电压一般为 3.3V 左右 ,当系统有 5V 电源输入时,需通过 AMS1117 - 3.3 将 5V 降压到 3.3V 为其供电。输入输出端连接的电容(C29、C16、C30、C15 ),C29 和 C30 为大容量电解电容,用于滤除低频噪声;C16 和 C15 为小容量陶瓷电容,用于滤除高频噪声,保证输出电压稳定、纯净 。

TPS5430DDAR:

  • 功能:属于开关模式电源芯片 ,能将较高输入电压转换为所需的输出电压。通过 PWM(脉冲宽度调制)方式控制开关管的导通与关断,实现电压转换,具有转换效率高、能处理较大电流等优点,可将 12V 输入转换为合适电压输出。
  • 电路连接原因:若系统中部分模块需要 5V 供电 ,而输入电源为 12V 时,TPS5430DDAR 可将 12V 降压至 5V 。D2 是续流二极管,在芯片内部开关管关断时,为电感 L3 提供续流回路,保证电路正常工作;L3 为储能电感,在开关管导通时储存能量,关断时释放能量维持输出电压稳定;R6、R7 组成反馈电阻网络,用于反馈输出电压信号,让芯片根据反馈信号调整输出,保持输出电压稳定在 5V ;C17、C21、C22 用于滤波,去除输出电压中的纹波,提高电源质量 。

电机部分:

扫地机器人有4个轮子,一边4个,这里主要是通过电机驱动芯片来控制电机的转动,实际目前只用了U4,U5作为备用预留的控制芯片。

TB6612FNG(O,C,8,EL):

1. 功能定位

  • AO1(Output 1 for Motor A):电机 A 的输出引脚 1,连接到电机的一端(如正极)。
  • AO2(Output 2 for Motor A):电机 A 的输出引脚 2,连接到电机的另一端(如负极)。

两者需配合使用,通过改变它们之间的电压方向来控制电机转向。

2. 控制电机转向的原理

TB6612FNG 通过内部的 H 桥电路控制 AO1 和 AO2 的输出状态,实现电机正反转:

  • 正转(CW)
    AO1 输出高电平(VM),AO2 输出低电平(GND),电流从 AO1 流入电机,从 AO2 流出,电机顺时针旋转。
  • 反转(CCW)
    AO1 输出低电平(GND),AO2 输出高电平(VM),电流方向反转,电机逆时针旋转。
  • 短路制动(Short Brake)
    AO1 和 AO2 同时输出低电平(GND),电机绕组短路,产生制动效果,快速停止转动。
  • 停止(Stop)
    AO1 和 AO2 均为高阻态(浮空),电机无电流流过,自由停止。

3. 与控制信号的关系

AO1 和 AO2 的状态由输入信号 AIN1、AIN2 和 PWMA 共同决定:

  • PWM 调速:通过调节 PWMA 的占空比,控制 AO1 或 AO2 的平均电压,实现电机转速调节。

4. 应用场景差异

  • AO1 和 AO2 必须成对使用,不可单独连接电机。
  • 若电机正反转方向不符合预期,可通过交换 AO1 和 AO2 与电机的连接来调整。
  • 在短路制动模式下,AO1 和 AO2 同时接地,可快速消耗电机的动能,但会产生较大电流,需注意芯片功耗。

语言部分:

语言部分用于机器人的播报,具体实现请看代码。

14脚B5为TX脚连接到PA3(USART2_RX),13脚B6为RX脚连接到PA2(USART2_TX),通过与STM32进行串口通信,得到要说的信息,进行播报。


硬件电路部分就到此为止,希望本文可以为基础差的同学加深对整个扫地机器人电路的理解,为往后代码部分的学习奠定底层基础。

注:不要拿我这篇文章来写你们自己工程项目实践报告,你用了我用啥嘞?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值