先确定功能,再比较主频
先写清楚模块是向模拟器发送控制输入、显示遥测数据,还是同时完成两项工作。按键盒需要读取开关,并通过受支持的输入通道传递操作。无线电 OLED 显示器还需要真实数据来源、消息格式、显示规则,以及失去连接时的处理方式。更快的芯片无法补上不存在的模拟器接口。
分别统计按键、旋转编码器及其按压开关、模拟轴、LED 和显示屏。为 I²C、SPI、USB 和调试预留引脚。还要决定使用可配置的现成固件,还是编写自己的程序。开发板选择基础介绍了这些区别;本页进一步比较具体系列。先做一个能验证的模块,比一次购买所有可能用到的硬件更容易推进项目。
经典 Arduino 与 R4 系列
UNO R3 和经典 Nano 适合第一个规模可控的小项目,针对 AVR 架构的示例也很多。Mega 提供更多引脚和四路硬件 UART,但主频仍为 16 MHz。Leonardo 与 Micro 的 ATmega32U4 内置 USB,因此更适合尝试自定义 USB HID 程序。
| 开发板 | 微控制器/时钟 | Flash/SRAM | 引脚 | 逻辑电平 | USB |
|---|---|---|---|---|---|
| UNO R3 | ATmega328P · 16 MHz | 32 KB / 2 KB | 14 D + 6 A | 5 V | USB 转串口桥接 |
| Nano (classic) | ATmega328 · 16 MHz | 32 KB / 2 KB | 14 D + 8 A | 5 V | USB 转串口桥接 |
| Mega 2560 Rev3 | ATmega2560 · 16 MHz | 256 KB / 8 KB | 54 D + 16 A | 5 V | USB 转串口桥接 |
| Leonardo / Micro | ATmega32U4 · 16 MHz | 32 KB / 2.5 KB | 20 I/O; 12 A* | 5 V | 主微控制器自带 USB |
| Nano Every | ATmega4809 · ≤20 MHz | 48 KB / 6 KB | 14 D + 8 A | 5 V | USB 转串口桥接 |
| UNO R4 Minima / WiFi | RA4M1 · 48 MHz | 256 KB / 32 KB | 14 D + 6 A | 5 V | Minima:原生;WiFi:桥接/切换 |
| Nano R4 | RA4M1 · 48 MHz | 256 KB / 32 KB | 14 D + 8 A | 5 V; Qwiic 3.3 V | 主微控制器自带 USB |
D 表示数字引脚,A 表示模拟输入。不能把所有功能当成独立资源相加:Leonardo/Micro 的 12 路模拟输入已经包含在 20 个 I/O 中。I²C、SPI、PWM 会共享引脚;经典 Nano 的 A6/A7 只能作为模拟输入。Flash 存程序,SRAM 存运行中的数据,启动加载程序和库也会占用资源。
UNO R4 Minima、UNO R4 WiFi、Nano R4 使用 RA4M1,而不是 ATmega328P。48 MHz 和更多内存有利于显示功能,但依赖 AVR 寄存器的代码不会自动兼容。R4 WiFi 额外的 ESP32-S3 承担无线任务,并不意味着整块板等同于普通 ESP32 开发板。Nano Every 的规格上限为 20 MHz,实际程序时钟还取决于开发板软件包;应核对构建设置及库支持。
Nano 外形不代表统一电子架构
下列 Nano 板采用3.3 V 逻辑。接口能插进去,并不能证明电气兼容。Nano 33 IoT 使用 SAMD21 加无线模块,BLE 型号使用 nRF52840。Sense 型号增加的传感器对普通按键盒未必有用。
| 开发板 | 微控制器/时钟 | Flash/RAM | 无线连接 | USB |
|---|---|---|---|---|
| Nano 33 IoT | SAMD21 · 48 MHz | 256 KB / 32 KB | Wi-Fi + BLE | 主微控制器自带 USB |
| Nano 33 BLE / Rev2 / Sense Rev2 | nRF52840 · 64 MHz | 1 MB / 256 KB | BLE | 主微控制器自带 USB |
| Nano RP2040 Connect | RP2040 · 133 MHz | 16 MB / 264 KB | Wi-Fi + BLE | 主微控制器自带 USB |
| Nano ESP32 | ESP32-S3 · ≤240 MHz | 16 MB / 512 KB + 8 MB PSRAM | Wi-Fi + BLE | 主微控制器自带 USB |
| Nano Matter | MGM240S · 78 MHz | 1536 KB / 256 KB | Thread / BLE | USB 调试器/桥接 |
许多型号保留 D0–D13 和 A0–A7 的位置,但 ADC 接法、内部占用引脚和 USB 支持并不相同。例如 Nano RP2040 Connect 的模拟输入并非全部直接连接到 RP2040。Arduino 当前将这个型号标记为 End of Life。已经拥有的板仍可以使用,但为一批新设备设计时,应先确认后续补货与替换方案。
Nano ESP32 明确配有 16 MB Flash、512 KB 内部 SRAM 和 8 MB PSRAM。PSRAM 是额外的外部运行内存,并不是所有内部缓冲区的等速替代品。Nano Matter 面向 Thread/Matter 网络,对有线 USB 摇杆没有天然优势。相同 Nano 尺寸,也不意味着可以互刷固件。选型时同时记录完整型号、逻辑电平、所需库和可用接口,避免只看外观。
Zero、MKR、Due、GIGA、Portenta 的适用位置
Zero 和许多 MKR 型号(例如 MKR WiFi 1010)采用 SAMD21:48 MHz、256 KB Flash、32 KB SRAM、3.3 V 逻辑。Zero 内置调试器;MKR 各型号主要区别是通信方式和引脚。选择实际需要的连接,不必为用不到的蜂窝通信或传感器增加成本。
Due 使用 84 MHz 的 SAM3X8E,配有 512 KB Flash、96 KB SRAM、54 个数字引脚和 12 路模拟输入。虽然外形类似 Mega,逻辑电平仍为 3.3 V。GIGA R1 WiFi 的 STM32H747 双核分别运行在 480/240 MHz,提供 2 MB 内部 Flash、1 MB 内部 SRAM,以及 16 MB 外部 Flash 和 8 MB SDRAM。其 76 个 GPIO 与显示接口适合更大的仪表单元,但引脚复用仍然存在。
Portenta H7 更适合配备合适载板、要求较高的紧凑系统。UNO WiFi Rev2 将 ATmega4809 与无线模块结合,应与 R3/R4 分开看待。Nicla 系列偏向传感或视觉,Opta 偏向工业控制。UNO Q 和 VENTUNO Q 结合 Linux 计算与微控制器任务。对于四个 LED 和一个 OLED,这些板会增加不必要的复杂度;当项目明确需要图像处理、传感或上层计算时,再考虑它们。这是针对座舱用途的系列选择,并非所有历史 Arduino 产品的完整目录。
区分 STM32 Blue Pill、Black Pill 和 Nucleo
Blue Pill、Black Pill 是开发板名称,不是固件兼容性承诺。应读取完整芯片丝印和板卡版本。STM32F103C8 的官方 Flash 容量是 64 KB,不应把网上关于更多可用容量的经验当成设计保证。
| 开发板/芯片 | CPU/最高时钟 | Flash/SRAM | 芯片的 USB | 板上逻辑电平 |
|---|---|---|---|---|
| Blue Pill · STM32F103C8T6 | Cortex-M3 · 72 MHz | 64 KB / 20 KB | USB FS | 3.3 V |
| WeAct · STM32F401CEU6 | Cortex-M4 · 84 MHz | 512 KB / 96 KB | USB OTG FS | 3.3 V |
| WeAct · STM32F411CEU6 | Cortex-M4 · 100 MHz | 512 KB / 128 KB | USB OTG FS | 3.3 V |
| NUCLEO-F446RE · STM32F446RE | Cortex-M4 · 180 MHz | 512 KB / 128 KB | USB OTG* | 3.3 V |
| NUCLEO-G474RE · STM32G474RE | Cortex-M4 · 170 MHz | 512 KB / 128 KB | USB FS* | 3.3 V |
| NUCLEO-H743ZI · STM32H743ZI | Cortex-M7 · ≤480 MHz | 2 MB / ≤1 MB | USB OTG* | 3.3 V |
Nucleo 的目标芯片支持 USB,不代表板上的每个 USB 插座都连接到它。ST-LINK 用于下载和调试;需要核对原理图、用户 USB 接口以及外部电路要求。F4 适合自定义控制固件,G4 适合较复杂的模拟采集和定时任务,H7 适合更大的数据与显示项目。真正可用的引脚数量取决于 PCB、芯片封装与复用分配,不能直接照搬整个系列的最大值。
FreeJoy需要其文档指定的 STM32F103 平台。F411 Black Pill 不是可直接替换的型号。某些 STM32 数字输入在特定条件下耐受 5 V,但这不等于模拟输入或整块板都可以接入 5 V。先检查具体引脚的条件,再确定接线。
ESP32 各系列的关键差别
这里讨论的 ESP32 系列均需要合适的 3.3 V 信号。Flash 容量、PSRAM 和实际引出的 GPIO 取决于模块型号。购买时应使用完整模块名称,而不只是“ESP32”。
| 系列 | CPU/最高时钟 | SRAM | USB | 无线连接 |
|---|---|---|---|---|
| ESP32 (original) | Xtensa LX6 · ≤240 MHz | 520 KB | 无 USB 设备控制器 | Wi-Fi + Bluetooth Classic / BLE |
| ESP32-S2 | Xtensa LX7 · ≤240 MHz | 320 KB | USB OTG;HID 需要合适固件 | Wi-Fi |
| ESP32-S3 | 2× Xtensa LX7 · ≤240 MHz | 512 KB | USB OTG;HID 需要合适固件 | Wi-Fi + BLE |
| ESP32-C3 | RISC-V · ≤160 MHz | 400 KB | 固定 USB Serial/JTAG,不支持任意 HID | Wi-Fi + BLE |
| ESP32-C6 | RISC-V · ≤160 MHz | 512 KB | 固定 USB Serial/JTAG,不支持任意 HID | Wi-Fi 6 + BLE + 802.15.4 |
经典 ESP32 通过 USB 转串口芯片连接电脑,并不会因此成为原生 USB 摇杆。S2/S3 有可配置的 USB OTG,但 HID 仍需要合适固件、开发板支持与正确插座。C3/C6 的 Serial/JTAG 是固定 USB 功能,不能任意改成 HID 设备。S3 同时提供较多内存、USB 和无线能力,适合兼顾显示与数据处理的模块。
网络座舱模块还应定义启动流程、Wi-Fi 中断和过期数据的处理。无线通信不能替代稳定供电。部分 GPIO 用于启动配置或 Flash;经典 ESP32 的 GPIO34–39 只能输入,且没有内部上拉。根据手中开发板的引脚图分配,不要把另一型号的接线直接复制过来。若模块有多个 USB 插座,还要分清下载桥接接口与芯片的原生 USB。
OLED:什么时候 UNO 已经足够?
128×64 单色画面的完整帧缓冲需要 128 × 64 ÷ 8 = 1024 字节,已经占去 UNO R3 的 2 KB SRAM 的一半。变量、串口接收缓冲、库和栈还需要空间。面向文字或分页绘制的库可以减少缓冲区占用。
四个 LED 加几个变化较慢的数值,完全可能适合 UNO R3。AI、LED 与 OLED 入门指南就是一个边界明确的例子。多个屏幕、大字体、菜单、数据处理或网络功能,则会让 ESP32-S3/Nano ESP32 更有吸引力。只有一个 OLED,并不能成为必须换板的理由。
更高主频不会自动加快 I²C。以 400 kHz 发送 1024 字节,仅数据与应答位理论上就约需 23 ms,此外还有协议和软件开销。多个屏幕会共享这段总线时间。应在显示器指南中进一步检查刷新率、地址冲突和 SPI 方案。先确定“需要多快变化”,再决定是否值得增加硬件。
分别验证 USB、摇杆与模拟器接入
USB-C 首先描述的是插座。COM 端口是串行数据通道;HID 摇杆通过合适的报告描述符向操作系统提供按钮与轴。键盘 HID 和摇杆 HID 不是同一种功能,键盘库可用并不证明摇杆库兼容。
原版 UNO R3 使用独立的 ATmega16U2 作为 USB 桥接。ATmega328P 上的普通程序不会改变这个桥接芯片的 USB 类别。重新编写桥接固件是另一项开发任务,对初学者而言,选用文档明确支持的 HID 板通常更直观。原生 USB 输入也不会自动收到模拟器遥测。USB 输入指南说明了从设备识别到模拟器功能绑定的完整路径。
UNO R4 WiFi 默认通过 ESP32-S3 进行 USB 桥接。板上电路可以把 USB 切换到 RA4M1;HID 支持取决于合适的开发板软件包与库。因此 Minima 和 WiFi 的 USB 路径并不相同。
认真计算引脚、模拟轴与供电
旋转编码器通常需要两根信号线,带按压时再增加一根。矩阵能节约引脚,但需要匹配固件,并处理不希望出现的多键误识别。I/O 扩展器增加连接数,也会增加总线负载并影响扫描时间。因此应统计可以同时使用的功能,而不是焊盘总数。
ADC 位数更多不代表模拟轴一定更稳定。传感器、参考电压、布线、采样和滤波共同决定结果;过强平滑会延迟响应。先观察静止数值与缓慢移动,再比较分辨率。LED 需要限流,大负载需要合适驱动级。GPIO 不能直接当作背光或电机的电源。请阅读供电规划,同时检查 I²C 上拉电阻连接的电压。板上有 5 V 电源引脚不代表所有信号脚都耐受 5 V。
具体引脚预算:八个独立按钮、三个带按压的编码器和一个 I²C OLED,不用矩阵时需要 8 + 3 × 3 + 2 = 19 根信号线,另外还有电源与地。把它们逐一分配到WeAct 引脚图或ESP32-S3-DevKitC-1 v1.1 引脚图中。这个 DevKit 有 44 个排针位置,其中标出 36 个 GPIO,但不是 36 个毫无限制的可用接口。使用 USB 时 GPIO19/20 已分配给 USB,GPIO38 用于 RGB LED;部分采用 Octal 存储器的模块内部占用 GPIO35–37。还需考虑启动引脚与调试。Blue Pill 同样必须使用对应板卡版本及固件的引脚规划。
用三个项目作出具体决定
- 第一个学习面板:四个 LED、小 OLED、USB 串口与示例数据。已有 UNO R3 是合理起点;等内存或引脚真正不足时再扩展。
- 带模拟轴的按键盒:选择 FreeJoy 文档支持的平台,或具有合适自定义 HID 固件的板。先在操作系统中验证按钮、编码器、校准与分配。
- 联网仪表:多个数值、菜单和图形余量。比较 ESP32-S3/Nano ESP32 与合适的 STM32、GIGA 方案,购买前先确定数据源和显示总线。
第一次实验只需证明一个按钮、一根轴或一个显示值。记录板卡版本、固件、库版本、引脚,以及重启或数据中断后的预期行为。编译成功不能证明接线正确,也不能证明模拟器响应正确。扩展前保存已工作的版本,每次只增加一项功能,故障出现时才容易判断是哪一步引入的。
带着清楚的资料向社区求助
Cockpit Suite 将受支持的模拟器与设备放在共同的软件环境中。具体可用功能应查阅兼容性说明。预先准备好的组合可以简化配置;自制开发板仍需要合适且有文档的数据通道。
你不必独自完成所有选择。可以在论坛提供目标、板卡照片、引脚表和最后一个成功实验。我们也帮助讨论 3D 打印外壳、龙门 CNC 铣削,以及使用 LightBurn 的激光加工。我们争取在条件允许时当天答复,较晚提出的问题可能需要更久。Cockpit Suite 是已有可用软件的年轻项目;欧洲以及其他地区社区的实际经验,能帮助我们一起把方案做得更清楚、更实用。
制造商文档与技术依据
资料核查日期:2026 年 10 月 18 日。数值对应指定芯片或开发板,实际空闲内存与可用引脚可能更少。选型建议属于编辑分析,并非对这些板卡的实物测量。
- Arduino hardware catalog第一手资料:请核对完整板卡版本、引脚图和软件包。
- Arduino UNO R3第一手资料:请核对完整板卡版本、引脚图和软件包。
- Arduino UNO R3 datasheet第一手资料:请核对完整板卡版本、引脚图和软件包。
- Arduino Mega 2560 Rev3第一手资料:请核对完整板卡版本、引脚图和软件包。
- Arduino Leonardo第一手资料:请核对完整板卡版本、引脚图和软件包。
- Arduino Nano第一手资料:请核对完整板卡版本、引脚图和软件包。
- Arduino Nano Every datasheet第一手资料:请核对完整板卡版本、引脚图和软件包。
- Arduino UNO R4 Minima第一手资料:请核对完整板卡版本、引脚图和软件包。
- Arduino UNO R4 WiFi第一手资料:请核对完整板卡版本、引脚图和软件包。
- Arduino Nano R4第一手资料:请核对完整板卡版本、引脚图和软件包。
- Arduino Nano 33 IoT datasheet第一手资料:请核对完整板卡版本、引脚图和软件包。
- Arduino Nano 33 BLE Rev2 datasheet第一手资料:请核对完整板卡版本、引脚图和软件包。
- Arduino Nano RP2040 Connect — End of Life第一手资料:请核对完整板卡版本、引脚图和软件包。
- Arduino Nano RP2040 Connect datasheet第一手资料:请核对完整板卡版本、引脚图和软件包。
- Arduino Nano ESP32 datasheet第一手资料:请核对完整板卡版本、引脚图和软件包。
- Arduino Nano Matter datasheet第一手资料:请核对完整板卡版本、引脚图和软件包。
- Arduino Zero第一手资料:请核对完整板卡版本、引脚图和软件包。
- Arduino Due第一手资料:请核对完整板卡版本、引脚图和软件包。
- Arduino MKR WiFi 1010第一手资料:请核对完整板卡版本、引脚图和软件包。
- Arduino GIGA R1 user manual第一手资料:请核对完整板卡版本、引脚图和软件包。
- Arduino GIGA R1 WiFi datasheet第一手资料:请核对完整板卡版本、引脚图和软件包。
- Arduino Portenta H7第一手资料:请核对完整板卡版本、引脚图和软件包。
- STMicroelectronics STM32F103C8第一手资料:请核对完整板卡版本、引脚图和软件包。
- WeAct Studio MiniSTM32F4x1第一手资料:请核对完整板卡版本、引脚图和软件包。
- STMicroelectronics STM32F446RE第一手资料:请核对完整板卡版本、引脚图和软件包。
- STMicroelectronics STM32G474RE第一手资料:请核对完整板卡版本、引脚图和软件包。
- STMicroelectronics STM32H743ZI第一手资料:请核对完整板卡版本、引脚图和软件包。
- STMicroelectronics NUCLEO-G474RE第一手资料:请核对完整板卡版本、引脚图和软件包。
- STMicroelectronics NUCLEO-H743ZI第一手资料:请核对完整板卡版本、引脚图和软件包。
- Espressif Arduino-ESP32 USB API第一手资料:请核对完整板卡版本、引脚图和软件包。
- Espressif ESP32-C6 USB Serial/JTAG第一手资料:请核对完整板卡版本、引脚图和软件包。
- Espressif chip comparison FAQ第一手资料:请核对完整板卡版本、引脚图和软件包。
- Espressif ESP32-S3 getting started第一手资料:请核对完整板卡版本、引脚图和软件包。
- FreeJoy-Team / FreeJoy第一手资料:请核对完整板卡版本、引脚图和软件包。
- ESP32 datasheet第一手资料:请核对完整板卡版本、引脚图和软件包。
- ESP32-S2 datasheet第一手资料:请核对完整板卡版本、引脚图和软件包。
- ESP32-S3 datasheet第一手资料:请核对完整板卡版本、引脚图和软件包。
- ESP32-C3 datasheet第一手资料:请核对完整板卡版本、引脚图和软件包。
- ESP32-C6 datasheet第一手资料:请核对完整板卡版本、引脚图和软件包。
- Arduino UNO Q第一手资料:请核对完整板卡版本、引脚图和软件包。
- Arduino VENTUNO Q第一手资料:请核对完整板卡版本、引脚图和软件包。
- Arduino UNO WiFi Rev2第一手资料:请核对完整板卡版本、引脚图和软件包。
- Arduino Nicla Sense ME第一手资料:请核对完整板卡版本、引脚图和软件包。
- Arduino Opta第一手资料:请核对完整板卡版本、引脚图和软件包。
- Arduino UNO R4 WiFi datasheet — USB bridge第一手资料:请核对完整板卡版本、引脚图和软件包。
- Arduino Micro第一手资料:请核对完整板卡版本、引脚图和软件包。
- Espressif ESP32-S3-DevKitC-1 v1.1第一手资料:请核对完整板卡版本、引脚图和软件包。