这个示例展示了如何以很少的预算开始制作可用的驾驶舱面板:简单的木质前板、实体操作部件,以及连接模拟器的合适电子设备。从真正需要的功能开始,再逐步扩展。
这些图片展示的是自制 F-16 面板的一种设计示例。外形、布局和配置由你决定;开孔应以实际购买的部件为准。
从原始 MDF 板到成品面板的 8 个步骤
自制开关面板可以分成简单的工作步骤。先规划和加工,再上漆、安装部件。初学者也可以这样开始制作自己的座舱。

画出轮廓
先在纸或纸板上摆放开关、LED 和显示屏。将设计轮廓画在 MDF 上,并在前板后方为部件和线缆预留空间。

切割板材
切出前板、底板和支撑倾斜面板的两块三角形侧板。木质结构可以利用边角料和简单工具制作。

钻孔并切出显示屏开口
按照开关的螺纹套管和 LED 支架确定孔径。按实际显示模块调整开口,上漆前试装所有部件。

打磨并组装
磨平切边和表面。可用内部小木条连接前板、底板和侧板。前板下沿应延伸到底板。

涂底漆
清除打磨粉尘,为板面及吸水性较强的 MDF 边缘涂底漆。遵守产品规定的施工温度和干燥时间。

滚涂灰色面漆
使用合适的小滚筒薄涂多层。鼠灰色对应 RAL 7005,也可以选择自己喜欢的颜色。待漆面充分固化后再安装部件。

安装部件
装入拨动开关、小 LED 和可选的 OLED。薄款打印边框可以容纳可更换的标签。开关类型和挡位应与所选功能匹配。

连接、测试,完成!
断电后将部件连接到适配的电子设备。配置固件及模拟器连接,逐一测试功能,然后再按自己的想法扩展。
制作第一个开关面板需要什么
- 用于前板、底板和侧板的 MDF 边角料,以及用于固定的小木条。
- 合适的拨动开关、5 毫米 LED 及相应电路和线材。
- Arduino UNO R3、USB 线,以及适合所选功能的固件和电脑连接软件。
- 砂纸、适用于 MDF 的底漆、面漆和合适的小滚筒。
- 可选:受支持的 OLED 模块,以及薄款 3D 打印边框或标签架。
小细节让面板更有自己的风格
标签装在薄塑料框中,可随时更换,不必从漆面上撕下贴纸。带三盏绿色 LED 的飞机轮廓小面板可以容纳三个独立的起落架指示灯。OLED 则可显示选定的模拟器数据。
从木质面板到可工作的控制台
本例将四个拨动开关、六个 LED 和一个 OLED 连接到 Arduino Uno R3。这里提供对应接线图、完整程序以及 Falcon BMS 连接方法。你可以从小面板开始,之后再扩展。
- 4 个拨动开关
- 6 个独立 LED
- 1 个 OLED · Fuel State + IAS
面板的接线方法
不同颜色便于追踪线路。请按印刷的引脚名称接线:每个开关连接对应输入和 GND,每个 LED 使用独立的 1 kΩ 串联电阻。四针 OLED 使用 GND、VCC、SCL 和 SDA。
适用于 Uno R3 / ATmega328P 和 128 × 64 像素 SH1106。图示 Binghe 模块的商品说明标注供电为 3–5 V。Uno 上 SDA 接 A4,SCL 接 A5。
ARDUINO UNO R3 · SH1106
Arduino 代码已经准备好
你无需自己编写程序。Arduino 下载包包含完整程序、接线图、数据链和简短的入门说明。
ZIP · 第 2 版 · 七种语言的快速入门说明
安装库
在 Arduino IDE 中选择 Arduino Uno,通过库管理器安装 Oliver Kraus 的 U8g2。
打开并上传程序
解压 ZIP,在同名文件夹中打开 UnoF16Panel.ino,保留旁边的 PanelProtocol.h。选择正确 COM 端口,验证程序并上传至 Uno。
连接 OLED 和 LED
在 Live Hub 中建立下方的数据链,并将其分配给识别到的 Uno。这样,OLED 和 LED 就能收到 BMS 数据。拨动开关所需的额外电脑连接方式见下文。
软件通过 WHOAMI 识别面板,Uno 返回 CS-UNO-F16-PANEL-01.
已针对 Arduino Uno 编译,并通过自动化离线检查。尚未使用真实面板、OLED 与运行中的 BMS 进行整套联调。
Fuel State、IAS 与起落架分别显示什么
数据来自 Falcon BMS。PC 软件通过 USB 向 Uno 发送数据链。OLED 显示总燃油量(lb)和指示空速(kt);三个绿色 LED 分别显示前起落架、左主起落架和右主起落架状态。
- Falcon BMS
- PC 软件
- USB → Uno
- OLED 与 LED
用于说明的示例数据,并非实时读数
fuelstate#6200;ias#305;master_caution#0;eng_fire#0;hyd#0;gear_nose#1;gear_left#1;gear_right#1;valid#1;示例显示 6200 lb 燃油和 305 kt 空速。三个起落架 LED 点亮,三个警告 LED 熄灭。状态来自各起落架的独立指示信号,而不是起落架手柄的位置。
查看数据链的全部九个字段
| 信号名 | BMS 原始数据源 | 显示/功能 |
|---|---|---|
fuelstate | bms.TotalFuel | 总燃油量 · lb |
ias | bms.Kias | 指示空速 · kt |
master_caution | bms.LightBits.MasterCaution | Master Caution · D10 |
eng_fire | bms.LightBits.ENG_FIRE | ENG FIRE · D11 |
hyd | bms.LightBits.HYD | HYD/OIL PRESS · D12 |
gear_nose | bms.LightBits3.NoseGearDown | 前起落架放下锁定 · D13 |
gear_left | bms.LightBits3.LeftGearDown | 左主起落架放下锁定 · A0 |
gear_right | bms.LightBits3.RightGearDown | 右主起落架放下锁定 · A1 |
valid | bms.In3D | In3D 使能 · 0 关闭输出 |
每次一起发送全部九个字段,并以换行结束。系数为 1,数值不保留小数,开关信号为 0 或 1。在控制器工作间选择表中的数据源,保存模板,为 BMS 配置档准备数据链,然后分配给识别到的面板。JSON 文件描述模板,不是完整配置档;当前工作间没有单独导入此文件的按钮。
BMS 数据如何传到面板
通过 Live Hub 驱动 OLED 和 LED
Live Hub 通过 WHOAMI 识别 Uno,并发送数据链中的九个值。程序在 OLED 上显示 Fuel State 和 IAS,同时控制警告灯与起落架指示灯。
程序会读取拨动开关。要用它们操纵 BMS,还需要额外的电脑连接:当前 Live Hub 的输出功能尚不能将这些 Uno 开关作为输入卡使用。
开关附加功能:连接电脑
这个独立附加程序将 Uno 上的四个拨动开关连接到 BMS 4.38,同时负责 OLED 和 LED。它适合愿意自行配置这一额外步骤的用户。需要 Windows、Python 3.11 或更新版本、pyserial,以及设置了适当组合键的 BMS 按键文件。文件和说明位于单独的下载包中。
每个 Uno 端口只允许一个连接:Live Hub 或 PC 桥接程序。桥接模式也会驱动 OLED 与 LED。
没有数据时会发生什么
valid#0 会关闭所有 LED 并显示 BMS OFFLINE。Live Hub 在数值变化时发送数据,因此 Uno 会保留最后收到的数值;连接中断后,该数值可能仍留在屏幕上。
你的面板 · 减少电子制作工作
更想动手搭建,不想编程?
我们的输入卡和 LED 卡已经具备开关读取和 LED 控制功能。使用配置好的卡,无需自行编写 Arduino 程序或搭建控制电路,你可以专注于制作面板。
安装元件
将开关和 LED 安装到自己制作的面板上。
把连接线接到控制板
每个开关或 LED 使用合适的连接线,按照对应控制板的引脚定义接线。
分配功能
在配套软件中分配开关功能和 LED 信号,无需自己编写代码。
连接线应包含所需芯线:LED 通常为两根;转换开关需要 COM 和用到的开关触点。具体接法以相应控制板说明为准。
使用 OLED 时还需搭配合适的显示控制器。输入板和 LED 板负责开关及灯光。
- 4SB Input Card 128 · 开关与按钮
- 4SB LED Output Board 64 · 警告与状态灯
输入和 LED 功能已经在 Falcon BMS 中试用。目前硬件商店仍将这些控制板标为开发中,请在那里查看各产品进度与供应情况。
低成本自制座舱常见问题
一定要有 3D 打印机吗?
不需要。外壳使用 MDF 制作。打印边框和标签架是可选部件,也可以请朋友或创客空间制作。
必须完全照着这块 F-16 面板做吗?
不用。请选择适合你的模拟器和摆放空间的操作部件。这个示例的目的是启发你制作自己的开关面板。
能做成其他模拟器的按钮盒吗?
可以沿用木质结构。固件、输入指令和状态反馈需要与所选模拟器及软件匹配。
第一个开关就是很好的开始
选一个功能,把部件摆在纸板上,逐步形成自己的面板设计。欢迎与其他座舱制作者分享成果或交流问题。