尽管最新一期的《Raspberry Pi官方杂志》是气象监测项目特辑,但我们还是忍不住想与大家分享这个项目,因为我们对任何与太空主题相关的事物都毫无抵抗力。该项目的创客 Michael Newton 是加拿大阿尔伯塔省卡尔加里市的一名商用飞机航空电子工程师。在不执行航线任务的业余时间里,他喜欢利用现代技术与工艺,去研究并重现历史上的飞机与航天器硬件。
1966年,即尼尔·阿姆斯特朗成为踏上月球第一人的三年前,麻省理工学院查尔斯·斯塔克·德雷珀实验室推出了阿波罗导航计算机(AGC)。它被安装在每一个阿波罗指令舱和登月舱内,其算力仅与 Apple II 计算机相当,内存不到 100kB,主频也只有可怜的 1.024MHz。然而,正如 Michael Newton 所指出的那样,正是它让宇航员得以在航天器上执行导航程序、自动驾驶机动、发动机点火、轨道交会以及地球再入等复杂操作。它也是人类历史上第一台基于硅集成电路的计算机。

Michael 是一位热衷于利用现代技术重现历史航天器硬件的工程师,他目前正主导着一个名为"Recreate Apollo"(重现阿波罗)的开源项目。该项目利用一台运行 Virtual AGC 模拟器的 Raspberry Pi 计算机,驱动一个 1:1 比例 3D 打印的 DSKY(阿波罗宇航员使用的显示与键盘模块)。该设备专门运行阿波罗 13 号指令舱的软件,让任何人都有机会亲手触摸这段计算机与航天历史。
"我对这个项目的兴趣始于多年前。在新冠疫情期间,一群阿波罗爱好者开始将早年麻省理工学院仪器实验室的工程图纸转化为现代 CAD 文件,最终目标是实现 3D 打印。"Michael 回忆道。

项目起飞
Michael 边做边学,并为自己明确了三个主要任务。首先是 3D 打印、打磨外壳并上漆;其次是组装硬件并完成接线;最后还需要编写代码和配置软件。"我在几个月的时间里按顺序完成了项目的各个部分,花时间边做边学,"他表示。"但我对这个项目最大的目标之一是完善文档。我希望任何感兴趣的人都能自己组装出一台,即使是完全没有相关背景知识的新手。我在 GitHub 上发布的指南就是这一心血的结晶。"
出于对阿波罗任务和 AGC 的热爱,他希望尽可能地还原历史细节。"在硬件实体方面,这台 DSKY 达到了约 90% 的历史还原度,"他说。"从外观上看,我努力追求完美的视觉复刻,并且对目前的结果非常满意。"不过在内部结构上,Michael 必须进行一些妥协,例如调整微控制器和 Raspberry Pi 计算机的安装位置。目前,所有的 CAD 模型、电路原理图以及一份长达 100 页的组装指南,均已在 GitHub 上免费开源。

硬核科学
使用 Raspberry Pi 计算机来驱动这个项目再合适不过了。"它几乎是为这个项目量身定制的,"Michael 评价道。"它可以通过 USB 与微控制器进行通信,功耗极低,内置的无线局域网方便进行 SSH 远程连接,而且发热量很小。此外,Raspberry Pi OS 的安装非常简便,你甚至可以创建一个自定义发行版,直接将整个系统镜像分享给其他用户,这让软件部分的配置变得极易复现。"
更重要的是,Raspberry Pi 能够非常流畅地运行 yaAGC(这是 VirtualAGC 项目的一个计算机程序),它精准复刻了真实 AGC 的所有特性。"这其中就包括曾在阿波罗 11 号任务中力挽狂澜的独特异步时序(中断机制)(即著名的 1201/1202 报警代码),15位数据位加1位奇偶校验位的特殊字长,以及那仅有 1.024MHz 的古老慢速时钟。"Michael 补充道。

AGC 使用的数据结构与现代计算机的底层设计有着根本的区别。其底层的 0 和 1 被组织成 15 位的数据块,并附加了一个用于校验错误的奇偶校验位。Michael 表示,在现代设备上实现这种模拟难度极高。但开发人员最终克服了困难,使用与原始计算机完全相同的底层逻辑和时序成功模拟了 AGC。
"从根本上说,这种模拟完美保留了当年的硬性约束条件,不仅因为 AGC 的时序被完整保留,还因为计算机读取的内存,本质上是将当年编织在磁芯绳 ROM(Core Rope ROM)和磁化在 RAM 中的真实代码进行了虚拟化,"Michael 解释道。"事实上,它的模拟还原度如此之高,以至于在我看来,VirtualAGC 已经不能算是一个简单的模拟器了。它就是一台借用你现代处理器的、原原本本的阿波罗导航计算机。"
致敬非凡智慧
最终的成品是一台令人惊叹且完全可用的设备,用户可以通过实体键盘与之进行交互。为了模拟当年的手感,Michael 挑选了市面上触发压力最大、且能发出最清脆"咔嗒"声的机械键盘轴。"我最终选择了 Kailh Box Navy(凯华海军蓝轴),"Michael 透露。此外,通过长按其中一个按键,设备还能切换至"外设"模式。在该模式下,DSKY 能够通过局域网连接至 PC 端 Orbiter 太空飞行模拟器的附加组件"Project Apollo -- NASSP",从而协同模拟所有的阿波罗太空任务。

"Recreate Apollo"项目让 Michael 和其他许多参与者对 AGC 有了更深刻的认识。他感慨道,初代计算机背后的开发者们所展现出的独创性令人叹为观止。"单就内存而言,它就是一个巧妙利用磁学原理的杰作。而且你敢相信吗,阿波罗导航计算机居然只使用了一种逻辑门------三输入或非门(3-input NOR)?所有的数学计算、数据传输、导航、自动驾驶、发动机点火......所有这一切,都仅仅是通过三输入或非门以及少数二极管阵列中电平信号的变化来实现的。能够设计出这种级别系统的,绝对是拥有真正不可思议智慧的头脑。"