2、硬件基础:Arduino系列板卡选型对比与系统连接设计

Arduino生态之所以在端侧AI与交互原型领域长盛不衰,核心在于其硬件家族覆盖了从“极简控制”到“边缘神经网络推理”的完整梯度。面对Uno、Nano 33 BLE Sense、Portenta H7等板卡,初学者常陷入“选型即纠结”的困境:Uno性能不足,Nano 33 BLE Sense存储吃紧,Portenta成本过高。本章将从芯片架构、算力、外设资源、电源树与连接拓扑四个维度展开对比,并给出传感器/执行器的信号链路设计方法,帮助你建立一套“按需选型、按信号布线”的工程化思维。

Arduino端侧AI硬件选型与信号链路总览 入门级 Uno R3 / R4 ATmega328P / RA4M1 8位/32位, 16-48MHz GPIO: 14-20路 AI能力: 无/轻量规则 边缘AI主力 Nano 33 BLE Sense nRF52840 (Cortex-M4F) 64MHz, 1MB Flash 256KB RAM, BLE 5.0 TensorFlow Lite Micro 高性能边缘 Portenta H7 Cortex-M7+M4 双核 480MHz, 2MB RAM 支持以太网/摄像头 OpenMV/Edge Impulse 专用AI加速 Nicla Vision / Giga R1 STM32H7 + 摄像头接口 2MP GC2145 传感器 支持FOMO/分类模型 功耗优化, 电池供电 信号链路: 传感器 → 调理电路 → ADC/GPIO → 预处理 → 推理 → 执行器 模拟信号(电压/电流) | 数字信号(I2C/SPI/UART) | 控制信号(PWM/GPIO) 传感器输入 温湿度(DHT22) IMU(LSM9DS1) 麦克风(PDM) 执行器输出 舵机(PWM) 直流电机(驱动) LED/蜂鸣器 电源方案 USB 5V / 3.7V锂电 AMS1117-3.3 DC-DC降压 连接方式 I2C / SPI / UART BLE / Wi-Fi USB-C / 排针

上图展示了Arduino家族在端侧AI项目中的典型定位与信号流向。可以看到,从Uno到Portenta,算力与存储呈阶梯式上升,但并非所有项目都需要顶级配置。选型的本质是“算力-功耗-成本-开发效率”四者的权衡。下面我们逐一拆解。

2.1 核心原理:从8位MCU到双核Cortex-M7的算力光谱

Arduino板卡的差异首先体现在主控芯片的架构上。Uno R3搭载的ATmega328P是8位AVR内核,主频16MHz,SRAM仅2KB,Flash 32KB。它适合执行简单的逻辑控制,但运行任何形式的神经网络推理(哪怕是极简的线性回归)都力不从心。Uno R4则升级为瑞萨RA4M1(Cortex-M4F,48MHz),算力提升约10倍,但仍以控制为主。

真正开启端侧AI大门的是Nano 33 BLE Sense系列。其主控nRF52840采用Cortex-M4F内核,带FPU(浮点运算单元),主频64MHz,拥有1MB Flash和256KB RAM。这意味着它可以加载TensorFlow Lite Micro的运行时(约20-40KB),并运行经过量化的MobileNetV1或自定义小型CNN模型。例如,一个关键词唤醒模型(如“Hey Arduino”)仅需约30KB Flash和15KB RAM,推理时间在50-100ms内。

Portenta H7则代表了Arduino的算力天花板:双核Cortex-M7(480MHz)+ Cortex-M4(240MHz),2MB RAM,支持外部SDRAM扩展。它不仅能运行图像分类(如MobileNetV2),还能通过OpenMV IDE进行机器视觉开发。但代价是功耗高达数百毫安,且价格是Nano的5倍以上。

选型判断矩阵:如果你的项目只需要“传感器阈值判断+执行器开关”,Uno R3足够;如果需要“实时语音关键词识别”或“9轴IMU姿态分类”,Nano 33 BLE Sense是性价比之王;如果要做“摄像头实时物体检测”或“多传感器融合+复杂决策”,Portenta H7或Nicla Vision才是正解。

2.2 判断方法:五步选型流程与硬件资源清单

面对具体项目,建议按以下流程操作,避免“先买板子再发现不够用”的返工。

  1. 列出AI模型需求:确定输入类型(一维信号/图像/音频)、模型参数量(<100KB / 100KB-1MB / >1MB)、推理频率(实时/准实时)。
  2. 估算内存占用:模型权重 + 中间激活值 + 传感器缓冲区 + 系统开销。Nano 33 BLE Sense的256KB RAM中,可用堆空间约200KB,模型+缓冲区需控制在150KB以内。
  3. 检查外设接口:传感器是模拟输出还是数字(I2C/SPI)?执行器需要几路PWM?是否需要BLE通信?Nano 33 BLE Sense内置了PDM麦克风、9轴IMU、温湿度传感器,可减少外部接线。
  4. 评估电源预算:整机峰值电流是否超过板载LDO的500mA?若使用电机或大功率LED,必须外接驱动电路。
  5. 考虑开发工具链:TensorFlow Lite Micro官方支持Nano 33 BLE Sense和Portenta;Edge Impulse对Nicla Vision支持更友好。选择社区资料更丰富的板卡能显著缩短调试周期。
板卡型号主控芯片RAM/FlashAI能力典型场景参考价格
Uno R3ATmega328P2KB/32KB无基础控制、教学Demo¥80
Uno R4 WiFiRA4M132KB/256KB轻量规则Wi-Fi控制、简单传感¥180
Nano 33 BLE SensenRF52840256KB/1MBTFLite Micro语音/IMU分类、BLE传输¥220
Portenta H7M7+M4双核2MB/16MBOpenMV/Edge Impulse视觉检测、复杂决策¥800
Nicla VisionSTM32H71MB/2MBFOMO/分类低功耗视觉、可穿戴¥600

2.3 案例拆解:基于Nano 33 BLE Sense的穿戴式跌倒检测原型

我们以一个真实课程项目为例:学生需要制作一个可穿戴设备,通过IMU数据识别“跌倒”动作并发送BLE报警。初始约束:设备必须由3.7V锂电池供电,连续工作8小时,且成本控制在300元以内。

初始现象与问题:学生最初选用Uno R3 + MPU6050 + HC-05蓝牙模块,但发现两个致命问题:一是Uno的5V逻辑电平与MPU6050的3.3V不匹配,需额外电平转换;二是Uno无法运行任何分类模型,只能靠阈值判断(如加速度>3g),误报率极高。

关键参数分析:跌倒动作的典型特征是加速度在200ms内从1g跃升至3-5g,且伴随角速度剧烈变化。单纯阈值法无法区分“跌倒”和“猛坐下”。需要采集连续50帧数据(每帧含6轴数据),送入一个两层全连接神经网络(输入12节点,隐藏层16节点,输出2类)。该模型量化后约8KB,推理时间约15ms。

实际操作步骤:

  1. 更换为Nano 33 BLE Sense,利用板载LSM9DS1 IMU,省去外部传感器和接线。
  2. 在Edge Impulse中采集3分钟跌倒/日常活动数据,提取时域特征(均值、方差、峰值),训练DNN模型。
  3. 将模型导出为TensorFlow Lite int8量化格式,部署到板卡。
  4. 编写代码:每20ms读取一次IMU,滑动窗口50帧,推理后若概率>0.8则触发BLE通知。
  5. 电源优化:使用nRF52840的DC-DC模式,关闭LED,待机电流降至10μA,工作电流约15mA,800mAh电池可续航约50小时。

结果对比:误报率从阈值法的35%降至2.3%,响应时间从500ms缩短至120ms。代价是开发周期从2天延长至5天(主要是数据采集和模型调参)。

经验复盘:端侧AI项目的时间分配应为“数据采集40% + 模型训练30% + 部署调试30%”。不要期望开箱即用,传感器安装位置、采样频率、特征选择都会显著影响模型效果。此外,务必在真实场景中测试,实验室数据与穿戴状态下的数据分布差异很大。

2.4 传感器、执行器与电源连接规范

硬件连接是原型稳定性的基石。以下三条铁律必须遵守:

  • 电平匹配:3.3V逻辑的传感器(如MPU6050、SSD1306 OLED)严禁直接接5V引脚。Nano 33 BLE Sense所有GPIO均为3.3V,Uno的I2C引脚虽为5V容忍,但建议统一使用3.3V供电。
  • 电源隔离:电机、舵机等感性负载必须独立供电,不可与MCU共用同一路LDO。否则电机启动瞬间的电流尖峰(可达1A以上)会导致MCU复位。推荐使用AMS1117-3.3为MCU供电,电机使用5V/2A的DC-DC模块。
  • 信号完整性:I2C总线长度超过20cm时需加4.7kΩ上拉电阻;SPI线缆应使用双绞线;模拟信号线远离PWM线,避免串扰。
// 典型连接示例:Nano 33 BLE Sense + 舵机 + 外部电源
// 舵机信号线 → D9 (PWM)
// 舵机电源线 → 外部5V电源正极
// 舵机地线 → 外部电源负极 + Nano GND(共地)
// 注意:必须共地,否则PWM信号无参考电平

#include <Servo.h>
Servo myservo;
void setup() {
  myservo.attach(9, 500, 2400); // 设置脉冲宽度范围
}
void loop() {
  myservo.write(90); // 旋转到90度
  delay(1000);
}
风险提示:切勿将舵机电源直接接在Nano的VIN引脚上。VIN引脚虽标称可承受5V,但其内部LDO最大输出仅500mA,舵机堵转时电流可达1.5A,会烧毁LDO。正确做法是使用外部BEC(电池消除电路)或DC-DC模块,并将舵机地线与Nano GND相连。

对于电池供电场景,建议采用“锂电池 → 升压/降压模块 → 5V/3.3V双路输出”的电源树结构。例如使用MT3608升压模块将3.7V升至5V,再用AMS1117-3.3降压给MCU。实测效率可达85%以上,待机功耗低于0.1W。

最后,关于连接方式的选择:I2C适合短距离、低速(<400kHz)的多传感器挂载;SPI适合高速数据流(如摄像头、SD卡);UART适合与蓝牙模块或上位机通信。在端侧AI项目中,推荐优先使用I2C连接传感器,因为其地址机制可减少接线,且Nano 33 BLE Sense的I2C接口支持1MHz快速模式。

总结本章:选型不是选最贵,而是选“刚好够用且留有余量”。Uno适合逻辑控制,Nano 33 BLE Sense是端侧AI的黄金起点,Portenta则是专业级视觉应用的利器。在动手接线前,务必画出电源树和信号链路图,明确每个模块的电压、电流和逻辑电平,这样才能从课堂Demo顺利走向可展示的稳定原型。