3. 数据采集硬件平台:嵌入式平台选型与传感器集成

做机器人数据采集,说白了就是给机器人装上「眼睛、耳朵和神经」。硬件平台选对了,后面建模事半功倍;选错了,调试能让你怀疑人生。我这些年踩过的坑,十有八九都出在硬件选型上。

这一章咱们就聊聊嵌入式平台怎么挑、传感器怎么配、电源和信号怎么处理。嗯,都是实战里绕不开的硬骨头。

3.1 嵌入式平台选型:STM32、树莓派、Jetson

选平台之前,先想清楚一个问题:你的机器人要处理什么级别的数据?

  • STM32:适合传感器少、实时性要求高的场景。比如电机控制、IMU 数据读取。
  • 树莓派:适合中等算力需求,比如摄像头图像采集、简单视觉处理。
  • Jetson:适合深度学习推理、多路传感器融合,比如自动驾驶小车。

我个人习惯先列一个需求清单,再对着清单选型。下面这个表格是我常用的对比维度:

维度 STM32 (F4/H7) 树莓派 4B Jetson Nano
算力 低 (~200MHz) 中 (1.5GHz 四核) 高 (128核 GPU)
实时性 硬实时 (中断响应 <1μs) 软实时 (Linux 调度) 软实时 (Linux 调度)
功耗 低 (~0.5W) 中 (~5W) 高 (~10W)
接口丰富度 SPI/I2C/UART/CAN USB/HDMI/GPIO USB/CSI/GPIO
典型场景 底层驱动、传感器轮询 图像采集、日志记录 视觉 SLAM、目标检测
我的经验: 别指望一个平台干所有事。我做过一个项目,非要用树莓派同时做电机控制和图像处理,结果电机控制周期抖得跟心电图似的。后来老老实实加了一块 STM32 做底层,树莓派只管视觉,问题全解决了。

3.2 传感器选型与集成

传感器是数据采集的「第一公里」。选错了传感器,后面建模再漂亮也是白搭。

3.2.1 常用传感器类型

  • 惯性测量单元 (IMU):加速度计 + 陀螺仪,用于姿态估计。我常用 MPU6050 或 ICM-20948。
  • 激光雷达 (LiDAR):测距、建图。单线 RPLIDAR A1 入门够用,多线就上 Velodyne。
  • 摄像头:视觉数据来源。USB 摄像头方便,但 CSI 接口摄像头延迟更低。
  • 编码器:轮式机器人必备,测速、测里程。

3.2.2 选型要点

我总结了三步走:

  1. 明确测量范围:比如测距传感器,室内 2 米用超声波,室外 10 米用 LiDAR。
  2. 看接口兼容性:STM32 用 SPI/I2C 最稳,树莓派用 USB 最省事。
  3. 考虑采样率:IMU 一般 100Hz 够用,但做振动分析得上 kHz。
避坑指南: 我曾经选了一款高精度 IMU,结果发现它的 I2C 速率只有 400kHz,而我的 STM32 默认配成了 1MHz。通信直接乱码。后来才意识到,传感器 datasheet 里的「最大速率」不是摆设。

3.3 电源管理与信号调理

电源是机器人的「心脏」。信号调理是「血管」。这两块搞不好,数据采集就是垃圾进垃圾出。

3.3.1 电源管理

机器人通常用锂电池供电,但不同器件需要的电压不一样:

  • STM32:3.3V
  • 树莓派:5V
  • 电机驱动:12V 或更高
  • 传感器:3.3V 或 5V

我习惯用 DC-DC 降压模块做一级转换,再用 LDO 做二级稳压。DC-DC 效率高,但纹波大;LDO 纹波小,但效率低。两者搭配,既省电又干净。

关键点: 模拟传感器(比如麦克风、模拟输出的距离传感器)对电源纹波极其敏感。我建议单独用一路 LDO 给模拟电路供电,别跟数字电路混在一起。

3.3.2 信号调理

传感器输出的信号,很少能直接进 ADC。你需要做三件事:

  1. 滤波:用 RC 低通滤波器去掉高频噪声。截止频率 f = 1/(2πRC)。
  2. 放大/衰减:让信号幅度匹配 ADC 的输入范围(通常是 0~3.3V)。
  3. 电平转换:5V 传感器接 3.3V 的 STM32,必须加电平转换芯片(比如 TXS0108)。

举个例子,一个模拟输出的红外测距传感器,输出 0~5V,但 STM32 的 ADC 只能接受 0~3.3V。你需要用电阻分压,把 5V 降到 3.3V,再串一个 100Ω 电阻 + 10nF 电容做滤波。

// 分压计算示例
// 输入: 0~5V
// 输出: 0~3.3V
// 分压比: 3.3 / 5 = 0.66
// 用 10kΩ 和 20kΩ 电阻串联,中间抽头输出
// Vout = Vin * 20k / (10k + 20k) = Vin * 0.666

3.4 整体架构图

下面这张图是我做数据采集硬件平台时的典型架构。你可以看到数据从传感器到处理器的完整路径。

数据采集硬件平台架构图 数据采集硬件平台架构 传感器层 IMU / LiDAR / 摄像头 信号调理层 滤波 / 放大 / 电平转换 嵌入式平台 STM32 / 树莓派 / Jetson 电源管理层 DC-DC + LDO 稳压 说明: 实线为数据流,虚线为电源供给。信号调理层是传感器与嵌入式平台之间的桥梁。

3.5 实战建议

最后,给你几条我这些年攒下来的经验:

  • 先搭最小系统:别一上来就焊全板。先让 STM32 跑个点灯程序,再挂传感器。
  • 电源先上电,再插信号线:热插拔信号线容易烧 IO 口。我烧过一块树莓派,就是因为先插了 GPIO 线再上电。
  • 用示波器看信号质量:别信「感觉没问题」。示波器一看,噪声、毛刺全现形。
  • 留足调试接口:至少留一个串口打印日志。不然出了问题,你只能干瞪眼。
小技巧: 做信号调理时,先在面包板上搭电路验证,确认没问题了再画 PCB。面包板改起来快,PCB 打样一次几百块,改不起。

嗯,硬件平台选型这块,说白了就是「匹配」二字——算力匹配需求、接口匹配传感器、电源匹配功耗。你想想看,是不是这个理?