热门资讯
创客父爱作品:模拟NASA“太空舱”
来源:3XMaker 发布时间:2019年03月26日创客父爱作品:模拟NASA“太空舱”
当我为大儿子建造这个火箭控制台时,清晰的意识到与之配套的还需要有一个太空船。在最近的四个月内,利用业余时间,我为小儿子制作了一款太空船。它有一个有许多非常有趣显示屏幕的控制面板,同时能发出嗖嗖的火箭发射的声音。一个操纵杆控制引擎和推进器的灯光和音效。有效载荷舱有一个机动舱口,并有一个可以通过视频进行远程遥控操作玩具卫星的机械臂。耳机可以为宇宙飞船和另一个屋子里的控制台建立语音通信,这样,孩子们就能在太空任务中进行分工合作。下面的视频可以看到这个太空船的大部分功能,但是你想了解一些具体的制作细节,请继续向下看。
这个阿波罗宇宙飞船多以直线为主。一个完整的圆柱体和锥形顶将会占去卧室的大部分空间,同样也会增加时间和建造成本。我分别在三个不同的地方建造这个飞船,虽然不是很方便,但是把它从车库移到卧室(还有去本地的创客嘉年华)成为了可能。在太空船和书架之间的墙上你可以看到为通向两个孩子之间的启动传送系统而开的门。自从NASA的阿波罗时代的控制台有一个启动传送系统,我想我会最终纳入到我们的太空飞船项目中,作为运送关键部件和供给的最后一步。在建造太空飞船时,我并没有完全限制在阿波罗主题。我增加了一些航天飞机的特点,比如带有机械臂的有效载荷舱。
我在主发动机喷嘴处固定了一个音频混频器和低音放大器。在喷嘴底部,固定了一圈圣诞节用的LED彩灯。在前一个项目中,我破解了控制每个灯泡颜色和亮度的代码,然后用Arduino进行控制来模仿火箭产生的火焰效果。这个Arduino同时控制每个推进器的红色LED。通过USB操纵杆控制发动机和推进器LED的点亮。通过树莓派读取操纵杆的命令,并将操纵杆的维度映射到不同的方向,然后发命令给Arduino根据在相应方向上推进的大小来控制LED灯的亮度。树莓派上的声音系统也会播放声音,并根据动作的大小而调节声音大小。也就是说,如果只是推动操纵杆一点点,你会得到一个较弱的灯光和一个柔和的音乐。当你在这个方向更加向前推,灯光会更亮,声音也会随着变大。
说到声音,我知道这对一个靠音效传达很多动作的飞船来说是非常重要的。最后,我在面向宇航员的主控板上放置了一套电脑控制的音响。低音炮在飞船内,航天员脚下的位置。低音震荡器放在了宇航员躺的那块板子下方。低音震荡器有自己的大功率放大器。对于不熟悉低音震荡器的人来说,它有些类似于播放器,但不是通过声音传播轻微振动,而是通过固体传递到你的身体。这样就会产生一种非常棒的振动效果,而不需要像音响那样发出巨大的声音。管看视频时,当火箭发射和爆炸时会看到物体在振动,因为飞船中录像的摄像机在振动。
我从freesound.org和NASA完善的档案中尤其是阿波罗11号的飞行日志中获得了控制面板需要的所有声音。然后用音频编辑软件修剪、合成等方式处理。
我最喜欢的功能是,有一套运行在两个孩子卧室之间的音频通话系统将控制台和宇宙飞船连接在了一起。这里用的是专为摩托车骑行设计的戴在头盔下面的有线通信系统。我将耳机接到控制台上,然后宇宙飞船连接到摩托车通信箱中。这样就可以坐在控制台前与坐在宇宙飞船中的另一个人交流了,指导他们完成诸如,发射,有效载荷部署,飞船修复,月球登录等。每次玩耍的时候,他们都会说出许多专业的太空术语,学习到如何更好的指导对方。
CapCom面板有”按下通话”的PTT按钮,当按下按钮时,上方的LED就会点亮,然后播放一段通话开始的声音,松开后,LED灭掉,播放一段通话结束的声音。
飞船的有效载荷舱是非常有趣的。通过固定在控制面板上的远程视频监控屏幕和远程遥控,宇航员可以遥控机械手臂发射和回收有效载荷舱。我们最爱的有效载荷舱是一套带着一个小哈勃太空望远镜的太空玩具。当然也有许多不同的太空主题的乐高玩具和卫星可以玩。因此我对将来有一个详细的规划,将挂在天花板上五英寸长的鱼线代表”轨道”。
有效载荷舱从这个角度看起来有些乱,但是宇航员从固定在右侧的监控中看到左侧确实非常干净整洁。太空舱底部的绞盘通过绳子和滑轮来带动支撑舱门的杠杆来实现开关,虽然有许多的减速齿轮,花费一分钟左右才打开,但是考虑到绞盘的电机比一个顶针还小,能做到这样实属不易。D类电池可以为这个绞盘提供电力,同时可以将产生电力干扰的电机远离其他用电设备。为控制面板和LCD屏幕提供电力的电源也在这个位置,还有连接操纵杆的树莓派和Arduino。而控制面板则使用独立的树莓派和Arduino
我非常自豪于这套小状态面板,这是一种非常便宜的制造炫酷显示屏的方法。
我将LED紧密的固定在背板上,用手切的蜂巢式塑料板将光照进行隔绝。然后用一小块厨房用砧板将光进行散射处理,最上面覆盖一层喷墨的透明材料做为标签。不同的LED用作不同系统的指示和警告,一些亮绿灯表示正在使用,比如降落伞(主降落伞(Main)和漏斗形降落伞(Drogue))和发动机的推进系统。其它亮红灯表示危险情况,比如助推器(Booster)面板的按钮多度使用就会引起各种故障,或者将”乙二醛泵(Glycol Pump)”开启超过六次会引起”乙二醛温度过低(Glycol Temp Low)”的警报。
“C&WS”是报警系统。这项功能同阿波罗飞船真实的系统是相似的当系统需给机组人员发送提醒或警告时,警报声响起,主警报按钮灯点亮,然后控制板相应的状态指示灯点亮。按下主报警按钮会停止噪音并且关闭按钮上的灯,然后状态面板会显示引起警报的原因。“LAMP”可以对灯进行测试,它能将所有的状态灯全部点亮来检查是否有烧毁。我用“C&WS”面板上的其他开关作为模拟闪电的秘密触发器
面板上标记的”控制(Control)”则主要依托于对飞船机械设备的想象了。对接探测开关有三个位置,回收,关闭,延伸。我没有时间增加一个实际的对接探测器,但是可以同我的孩子们一起完成设计建造。
标着”SCE Power”是阿波罗飞船中的一个实际开关的翻版,它用来控制信号处理器是否切换到备用电源。信号处理器负责将发回控制台的遥测数据处理干净。一次,阿波罗12号飞船起飞后不久,就被闪电击中,因为巨大的发射噪音,没有人发现。控制台开始接到各种错乱的信号提示宇宙飞船出现了各种故障。当时负责控制台EECOM站点的John Aaron发现了宇宙飞船遭受雷击的症状,并从之前的训练中找到解决方案。他建议宇航员将信号处理器切换到备用电源,然后遥测数据立马恢复了,任务得以继续进行。在我的宇宙飞船中,我做了一个触发闪电的秘密触发器,这样引起的各种警报就会在SCE开关切换到Aux后恢复正常。
我的四岁儿子最爱的按钮是”倾倒垃圾(Waste Dump)”,因为播放马桶冲水的声音,他认为这非常有趣。他知道宇航员给尿液收集器起的昵称是”渴了先生(Mr. Thirsty)”,所以当有人拨动这个开关时他就会一直大小然后说”渴了先生(Mr. Thirsty)”。
为了处理氧气和氢气相关的监控,我设计了这个低温(Cryogenics)面板。氧气和氢气灌都需要精确的测量罐内的压力和数量等。当控制台指示阿波罗13号的机组人员搅拌冷冻罐时,02号罐风扇错误的接线导致产生火花并引起爆炸。我的飞船控制面板中的“02风扇”开关也有类似的功能,播放一点风扇的噪音,然后是爆炸声(低音震荡器在这里帮了很大的忙),随后就是02压力和数量计开始变成红色。实际中,缺氧会导致能量电池不工作(能量电池产生电能),状态面板显示“B总线欠压(Main B Bus Undervolt)”,随后开始播放著名的无线电呼叫“休斯顿,我们遇到问题了,B总线欠压”。
EECOM面板包括四个电位器,每个分别对应一个12位LED灯条。旋转旋钮调节灯条中段位点亮的数量。所有段位变化的颜色表示旋钮值大小的程度。如果旋钮的数值调节到中间四个表示安全的段位中,所有的电量的段位就会是绿色。如果旋钮数值稍高或稍低,就会显示黄色。如果数值过高或过低,就会显示红色。这就是一个在宇航员与控制台之间玩耍的非常棒的场景,询问当前的等级是多少然后指示宇航员将进行操作是“需要更多动力”还是“节约能源”。
游戏时间结束时可以在终止“abort”面板以一种非常有趣的方式关闭整个飞船。将开关拨到“武器(Arm)”,“取消(Abort)”按钮就会点亮。按下“取消(Abort)”会播放一段声音“任务取消,系统关闭”然后安全的将电脑关闭。有时候在房内的一间屋子内,感觉到远处阵阵的雷声,如是说,我并不能确定这是正在靠近的雷雨还是飞船开着时孩子或者猫碰到了操纵杆。在游戏过程中,飞船本身并没有多大的噪音,但是低音震荡器产生的振动却能穿透墙壁和地板。
我在助推器面板下安装了可以模拟火箭声响的音响。而低音震荡器才是让这个飞行器有真正震动感的关键。为了更加有趣点,我给每个按钮添加了一个计数功能,这样触发系统过载的警报。比如说,状态面板有三个可能的SPS警报,然后按下助推器(BOOSTER)控制板的SPS按钮足够多的次数就会将三个LED点亮。当助推器(BOOSTER)的任一按钮按下后,绿色推力(THRUST)状态灯就会亮起来。
这种带有安全保护盖的开关是非常不错的。在拨动开关前首先将安全盖打开,这极大的降低了触碰的风险。这套烟火系统使用炸药来执行某些操作,比如将舱口的降落伞弹开,引爆用来固定航天器不同模块的爆炸螺栓。而这些系统又是一次性的,不能重新复位,所以防止误触是非常重要的。这些与开关相连接的声音是各种各样的爆炸声和随后的是一些我用声音编辑器生成的噪音。你可以想象得到,这个低音震荡器证明了所做的这些都是值得的。
查看控制板的后面就会发现,宇宙飞船的连线几乎是控制台的一半。
控制台的程序我放在了Github上,需要Arduino与树莓派两者共同合作运行。Arduino使用了三个IO扩展芯片(MCP23017)读取开关和按钮的状态。当开关(按钮开关,船型开关,或者是拨动开关)改变状态(开至关或者关至开),Arduino会通过串口通信(USB数据线)告诉树莓派。然后树莓派播放一段声音或者开始一系列的事件,如果需要,还会给Arduino发送控制LED的命令。Arduino用了LED点阵驱动(HT16K33)控制所有的LED。这可以控制291个独立的LED,听起来数字非常巨大,但是要知道,数码管的每个数字都有8个LED,LED灯条有24个LED(每个像素有红、黄、绿三个LED,并能显示三色)。电位器的数值通过Arduino的模拟输入读取。
我听到有人说,没有这种移开面板然后摆弄几个零件的任务场景的科幻电影是不完整的。这听起来对我的飞船来说是一个非常棒的特点,因此我在乘员舱中建了一个小隔间。用洞洞板做成的盖子可以方便的拆卸(孩子们喜欢使用工具)。我在里面是铺设了几个接头、软管、阀门。将来的太空任务需要通过对这个乘员舱进行修补来完成。这对他们的动手能力,使用工具的能力,和锻炼互相沟通的技巧都有非常大的帮助。
我设计这个宇宙飞船和控制台是为了提供一种开放式的游戏。这本身不是一个必须输或赢的游戏,而是一个可以为孩子们充分发挥想象力的炫酷的玩具。与其我他们设定各种游戏规则,不如提供一个他们可以自己思考的空间。提到制作的进展,我期望会随着不断的在其中玩耍,会想到更多的功能。然后一起添加这些新功能。开始会比较简单,比如手工制作的卫星,为修理隔间增加的工具包和新玩意儿。随着他们学到更多的知识,一些有趣的东西也会随之出现的。
通过各种物品简单的收集整理组合在一起而成的飞船可以提供凝聚力和有意思的体验。分开来看,没有一个单独的功能是非常难以完成的,仅仅是有了有了更多的细节和大量的整合。如果你对制作类似的东西比较感兴趣,你可以将其分解成可以操作的小块,不要害怕学习新知识、新技能。你可以用一些简单的工具和自学的技能,一周花费几个小时就能制作出各种有趣的东西。