3、工具链选择:常用原型开发工具对比

做快速原型开发,选对工具比什么都重要。我见过太多项目,一开始选错了平台,后面改得死去活来。说白了,没有最好的开发板,只有最合适的。

这一章,我把市面上最常用的四个平台——Arduino、Raspberry Pi、ESP32、STM32——掰开揉碎讲清楚。你听完就知道,自己手头的项目该用哪个。

3.1 四大平台核心定位

先给个总览。这四个东西,本质上不是一个物种。

平台 核心定位 典型应用 我常用的场景
Arduino 8位MCU,极简上手 传感器读取、电机控制、LED灯带 学生作品、快速验证逻辑
Raspberry Pi Linux单板计算机 图像识别、Web服务器、多媒体 需要跑Python/OpenCV的项目
ESP32 WiFi+蓝牙双模MCU 物联网节点、无线传感器、智能家居 一切需要联网的原型
STM32 32位ARM Cortex-M 工业控制、电机驱动、实时性要求高 量产前验证、复杂外设驱动

嗯,这里要注意:Arduino和ESP32都是MCU,跑裸机或RTOS;Raspberry Pi是计算机,跑Linux系统。 这两类东西的调试思路完全不同。

3.2 选型依据:五个维度

我个人习惯,拿到一个原型需求,先问自己五个问题:

  1. 要不要联网? —— 要WiFi/BLE?直接看ESP32。
  2. 实时性要求多高? —— 微秒级响应?STM32。毫秒级?Arduino够用。
  3. 计算复杂度? —— 跑神经网络?上树莓派。读个温度?Arduino。
  4. 开发周期多紧? —— 明天要演示?Arduino或ESP32。一个月后?STM32。
  5. 成本预算? —— 单板超过50块?考虑ESP32或国产STM32替代。

我的经验法则: 原型阶段,选你最熟悉的平台。先跑通功能,再考虑优化成本和性能。我在项目中遇到过,有人非要用STM32做个LED呼吸灯,结果光配时钟就花了两天——Arduino三行代码的事。

3.3 详细对比:Arduino vs ESP32 vs STM32 vs Raspberry Pi

3.3.1 Arduino —— 原型界的瑞士军刀

Arduino最大的优势,就是零门槛。你不需要懂寄存器、时钟树、链接脚本。插上USB,写两行digitalWrite,灯就亮了。

  • 优点: 社区资源极其丰富,库几乎覆盖所有常见传感器。出问题一搜就有答案。
  • 缺点: 8位AVR芯片,性能有限。RAM只有2KB,复杂逻辑跑不动。
  • 成本: 原版Uno约200元,国产克隆板20-30元。
  • 我踩过的坑: 曾经用Arduino Mega做多路舵机控制,同时还要处理串口数据。结果中断响应不过来,舵机抖得跟筛子似的。后来换了STM32,问题解决。

什么时候选Arduino? 学生实验、快速验证、传感器演示、不需要高性能的场景。说白了,就是「先让它动起来」的阶段。

3.3.2 ESP32 —— 物联网原型首选

ESP32是我近三年用得最多的平台。为什么?自带WiFi和蓝牙,双核240MHz,价格才20多块。 这性价比,没谁了。

  • 优点: 原生WiFi/BLE,双核处理器,支持Arduino IDE和ESP-IDF。
  • 缺点: ADC线性度差,低功耗模式不如STM32精细。
  • 成本: 开发板20-40元,模块10-15元。
  • 我的经验: 做物联网原型,我几乎无脑选ESP32。MQTT、HTTP、WebSocket都有现成库。有一次客户要48小时内出智能插座原型,我用ESP32+继电器模块,一天搞定联网和App控制。
// ESP32 连接WiFi的示例代码,就这么简单
#include <WiFi.h>

const char* ssid = "你的WiFi名";
const char* password = "你的密码";

void setup() {
  Serial.begin(115200);
  WiFi.begin(ssid, password);
  
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("连接成功!");
}

void loop() {
  // 你的物联网逻辑
}

3.3.3 STM32 —— 工业级原型平台

STM32是性能与功耗的平衡大师。ARM Cortex-M内核,主频从72MHz到480MHz,外设丰富得令人发指。

  • 优点: 性能强、外设多(定时器、DMA、ADC、CAN等)、功耗控制好。
  • 缺点: 开发门槛高。需要配置时钟树、初始化外设、理解中断优先级。HAL库虽然简化了,但代码量还是比Arduino大很多。
  • 成本: 国产STM32F103C8T6核心板,10-15元。原厂Nucleo板60-100元。
  • 避坑指南: 我曾经用STM32做电机FOC控制,CubeMX生成的代码默认时钟配置不对,电机转起来嗡嗡响。查了两天,才发现是PWM频率没算对。所以,用STM32一定要自己确认时钟树。

注意: STM32的调试器(ST-Link)需要单独买,或者选带板载调试器的Nucleo板。别像我第一次那样,买了块最小系统板,发现没法下载程序。

3.3.4 Raspberry Pi —— 当原型需要「脑子」

树莓派不是MCU,是一台完整的Linux电脑。它能跑Python、OpenCV、TensorFlow,甚至能当Web服务器。

  • 优点: 生态强大,GPIO+Linux+Python,能做很多MCU做不到的事。
  • 缺点: 不是实时系统。GPIO抖动大,不适合精确时序控制。功耗高(5V/2.5A),不适合电池供电。
  • 成本: Pi 4/5约300-500元,Pi Zero W约100元。
  • 我的建议: 只有当你需要图像处理、复杂算法、网络服务时,才上树莓派。纯传感器采集用树莓派,有点大炮打蚊子。

3.4 成本考量:不止是板子钱

很多人选型只看开发板价格,这是误区。真正的成本包括:

成本项 Arduino ESP32 STM32 Raspberry Pi
开发板 20-200元 20-40元 10-100元 100-500元
调试器 USB线即可 USB线即可 ST-Link 20元 HDMI+键鼠
学习成本 极低 低 高 中
开发时间 快 快 慢 中
量产BOM 高(芯片贵) 低 低 高(不适合量产)

你看,Arduino虽然板子便宜,但芯片本身贵,不适合量产。ESP32和STM32的芯片批量价才几块钱,这才是量产该用的东西。

3.5 选型决策流程图

下面这张图,是我自己总结的选型逻辑。每次接新项目,我都走一遍这个流程。

原型开发平台选型决策流程图 原型开发平台选型决策流程 开始选型 需要WiFi/BLE联网? 是 ESP32 系列 否 需要复杂计算? 是 Raspberry Pi 否 实时性要求高? 是 STM32 系列 否 Arduino 系列 选型要点总结 • 物联网原型 → ESP32(性价比之王) • 快速验证/教学 → Arduino(上手最快) • 工业级/高性能 → STM32(稳定可靠) • 复杂计算/视觉 → Raspberry Pi(生态最强)

3.6 我的最终建议

说了这么多,给你一个最直接的结论:

  • 如果你刚入门,或者要做快速演示 —— 选Arduino。别犹豫,先跑起来再说。
  • 如果你的原型需要联网 —— 无脑ESP32。20块钱搞定WiFi,还要什么自行车?
  • 如果你准备把原型变成产品 —— 考虑STM32。性能、成本、功耗都适合量产。
  • 如果你要跑算法、做视觉 —— 上树莓派。但记住,它不适合做实时控制。

记住一句话: 原型阶段,时间比金钱贵。选你最熟悉的平台,先验证核心功能。等原型跑通了,再考虑换平台做优化。我见过太多人,选型纠结了两周,结果原型一天就做完了——白白浪费时间。