![]()
1982年发布的电脑,算力不如现在的手机充电器,却完成了阿波罗制导计算机都没能做到的事——让普通人亲手把飞船降落在月球表面。
太空爱好者Scott Manley刚刚用一台ZX Spectrum实现了这个操作。这台搭载3.5MHz Z80A处理器、48KB内存的8位家用机,通过串口连接运行着《坎巴拉太空计划》的现代PC,完成了从月球轨道到月面的全程手动控制。三周前,他用同一套设备完成了模拟航天器飞行;这次,他把目标定在了更复杂的登月任务。
Manley的操作逻辑很简单:让ZX Spectrum充当"大脑",现代PC只负责画面渲染。他用Sinclair BASIC编写了一套控制程序,实时计算飞船的姿态、加速度和推力矢量,再通过串行通信把指令传给游戏。所有关键的导航决策——何时点火、如何调整俯仰角、燃料分配策略——都由这台40年前的机器独立完成。
对比数据会让人觉得时空错乱。阿波罗制导计算机(AGC)运行频率2.048MHz,字长15位,存储容量2048词;ZX Spectrum的3.5MHz主频和48KB内存,在纸面上全面碾压这台人类登月的核心设备。但Manley面临的挑战反而更大:AGC的程序员可以针对固定硬件深度优化,而他要在一个通用模拟环境中,用BASIC这种解释型语言实现实时轨道力学计算。
从"能飞"到"能降落",中间隔着整个阿波罗计划的技术遗产
三周前的飞行任务相对简单。Manley让ZX Spectrum输出推力指令,维持飞船稳定轨道即可。登月则是另一回事:需要处理轨道衰减、燃料质量变化、最后阶段的悬停选址,还要在燃料耗尽前把垂直速度降到接近零。
「最困难的部分是控制周期,」Manley在视频中解释,「ZX Spectrum的BASIC解释器很慢,我需要确保每次控制循环都能在合理时间内完成。」他最终把更新频率锁定在每秒几次——对于1960年代的模拟电路来说这是标准配置,但在2025年的游戏环境里,这意味着要刻意忽略大量可用的计算资源。
这种"自缚手脚"的做法,恰恰复刻了阿波罗时代的工程哲学。AGC的程序员Margaret Hamilton团队当年必须在2KB内存里塞进所有导航程序,包括中断处理、错误恢复和优先级调度。Manley的BASIC代码同样要面对内存管理问题:48KB听起来充裕,但Sinclair BASIC的解释器本身就要占去一部分,留给用户程序和变量的空间并不宽裕。
![]()
他采用的策略和1960年代如出一辙:预计算轨道参数表、用查表代替实时积分、把非关键计算挪到地面(在这里是主机PC)预处理。区别在于,Hamilton的团队用汇编语言手工优化每一条指令,而Manley在2025年用Python脚本生成BASIC数据表——技术代差在这里形成奇妙的折叠。
为什么偏偏是ZX Spectrum?
选择这台机器有历史隐喻。Sinclair Research在1982年以£125的定价把计算机送进英国家庭,和AGC同年诞生的技术民主化产物。Manley本人是苏格兰裔航天工程师,童年正是用这台机器写下第一行代码。
更深层的联系在于架构 simplicity(简洁性)。Z80处理器的设计哲学与AGC的离散逻辑截然不同,但两者都代表"刚好够用"的工程极致。现代CPU的乱序执行、分支预测、多级缓存,在实时控制场景里反而是干扰项——你无法精确预测一条指令的执行时间。
Manley在视频中展示了一段典型代码:读取摇杆输入、查询预存的推力角度表、计算矢量合成、输出控制指令。整个循环用BASIC写成,肉眼可读,执行时间可预测。这种透明性在当代嵌入式开发中已成奢侈品,大多数工程师依赖HAL(硬件抽象层)和RTOS(实时操作系统)屏蔽底层细节。
「我想证明的是,理解原理比拥有算力更重要,」Manley说。他的控制算法没有用到任何现代轨道力学的数值优化,而是回归基础物理:牛顿定律、动量守恒、简单的PID(比例-积分-微分)控制。这些在阿波罗时代就被验证过的方法,在3.5MHz主频下依然有效。
当复古计算成为航天教育的入口
这个项目的技术价值有限,但传播设计精妙。《坎巴拉太空计划》本身就是航天科普的成功案例,用卡通物理降低了轨道力学的认知门槛。Manley把ZX Spectrum作为控制终端,相当于在"游戏化学习"之上叠加了一层"复古浪漫主义"。
![]()
观看数据证明了这种组合的吸引力。他的首支ZX Spectrum飞行视频在两周内突破百万播放,评论区充斥着两类人:40岁以上回忆第一台电脑的玩家,和20岁左右惊讶于"这么慢也能飞"的年轻工程师。登月视频的复杂度提升,正好筛选出愿意深入了解控制原理的核心受众。
这种分层传播策略,和Sinclair当年的市场定位形成呼应。1982年的ZX Spectrum广告主打"让孩子学编程",实际购买者大量是成年人;2025年的复古计算内容,表面是怀旧,内核是向新一代解释"计算机如何真正工作"。
Manley在登月成功后做了一件Apollo 11没有做的事:手动复飞。他消耗剩余燃料从月面起飞,重新进入轨道。这在真实任务中不可能——阿波罗登月舱的上升级是独立模块,但燃料预算精确到秒。游戏允许这种奢侈,而ZX Spectrum的控制逻辑同样适用,证明了代码的通用性。
项目的硬件配置刻意保持"时代错位"。串口通信用的USB转RS232适配器是唯一的现代介入,Manley甚至考虑过用音频线加载程序——这是ZX Spectrum原始的数据输入方式,通过磁带机或电话线路传输。最终为了可靠性选择了串口,但保留了BASIC手写代码的仪式感。
对比同期航天新闻,这种业余项目的反差感更加强烈。SpaceX的星舰正在测试轨道加油,NASA的阿尔忒弥斯计划依赖商业月球着陆器,而一个人用£50的二手电脑(eBay现价)复刻了人类最复杂的工程成就之一。规模差异背后是技术民主化的持续演进:阿波罗需要30万人,Manley需要一台PC、一台老电脑、和几百行BASIC。
这种对比也引发关于"真实模拟"的讨论。Kerbal的物理引擎简化了许多因素——没有月球重力异常、没有推进剂晃动、没有导航传感器噪声。Manley的控制算法因此比AGC实际面临的任务更简单,但核心挑战——在严格资源约束下实现实时控制——被完整保留。
他在视频结尾展示了燃料耗尽前的最后几秒:ZX Spectrum仍在输出微调指令,屏幕上的数字跳动逐渐变慢,最终定格在月面几米之上。这个画面和Apollo 11的着陆录像形成互文:Armstrong手动接管控制时,燃料剩余不到30秒;Manley的模拟器显示剩余12%燃料,但BASIC解释器的延迟已经让控制回路濒临失稳。
「下次我想试试对接,」Manley在视频最后说。这意味着要在三维空间里匹配两个运动目标的速度和姿态,比登月多一个自由度,控制复杂度指数级上升。以ZX Spectrum的算力,这可能需要把更新频率降到每秒一次以下,接近人类反应速度的极限。
如果40年前的家用机真能完成这个任务,我们该如何重新定义"足够好的计算"?
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.