[关闭]
@plantpark 2014-08-05T09:39:44.000000Z 字数 6792 阅读 2087

超酷的老爸为孩子制作的逼真太空船模拟器

未分类


当我为大儿子建造这个控制台时,清晰的意识到与之配套的还需要有一个太空船。在最近的四个月内,利用业余时间,我为小儿子制作了一款太空船。它有一个有许多非常有趣显示屏幕的控制面板,同时能发出嗖嗖的火箭发射的声音。一个操纵杆控制引擎和推进器的灯光和音效。有效载荷舱有一个机动舱口,并有一个可以通过视频进行远程遥控操作玩具卫星的机械臂。耳机可以为宇宙飞船和另一个屋子里的控制台建立语音通信,这样,孩子们就能在太空任务中进行分工合作。上面的视频可以看到这个太空船的大部分功能,但是你想了解一些具体的制作细节,请继续向下看。

图一

这个阿波罗宇宙飞船多以直线为主。一个完整的圆柱体和锥形顶将会占去卧室的大部分空间,同样也会增加时间和建造成本。我分别在三个不同的地方建造这个飞船,虽然不是很方便,但是把它从车库移到卧室(还有去本地的创客嘉年华)成为了可能。在太空船和书架之间的墙上你可以看到为通向两个孩子之间的启动传送系统而开的门。自从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)状态灯就会亮起来。

图十四

The safety covers on these awesome switches must be levered up in a separate motion from flipping the switch, greatly reducing the chances of an accidental activation. The pyrotechnic systems use explosives to actuate something, like blowing off a hatch to deploy the parachutes or detonating explosive bolts that had been holding separate modules of the spacecraft together. These systems cannot be reset and used again once triggered, so it’s important to prevent accidental activations. The sounds linked to these switches are various sorts of explosions followed by other noises I assembled in a sound editing program. As you can imagine, the bass shaker proves its worth here, too.

图十五

Looking down at the back of the control panel reminds me that this spaceship has about half the wiring that the Mission Control Desk did.

I posted the code to GitHub. The programming of the console has the Arduino and the Raspberry Pi working cooperatively. The Arduino uses three I/O expanders (MCP23017) to read the state of switches and buttons. Whenever a switch (be it a momentary push-button switch, a rocker switch, or a toggle switch) changes state (on to off or off to on), the Arduino tells the Raspberry Pi over a serial connection (USB cable). The Raspberry Pi plays a sound or starts a sequence of events, if necessary, and sends any commands for controlling LEDs to the Arduino. The Arduino uses four LED matrix drivers (HT16K33 on a carrier board from Adafruit) to control all of the LEDs. That allows for 291 separate LEDs, which sounds like a lot, until you consider that the numerical displays have eight LEDs per digit and the LED bargraph displays have 24 LEDs per graph (they make three colors by having a red and green LED in each segment so they can make red, yellow, or green). The potentiometers are read by the analog inputs of the Arduino.

图十六

I heard someone observe that no sci-fi space movie is complete without the scene where the mission is saved by removing a panel somewhere and fiddling with a few components. That sounded like a terrific feature for my spaceship, so I built in a small compartment inside the crew compartment. The cover, made of pegboard, can be removed by unscrewing (my boys love to use tools). Inside are a few fun connectors, hoses, and valves I had laying around. Future space missions will require the boys walking each other through repairs and additions to this compartment. That will be great for hands-on activities and playing with tools as well as for building their communication skills.

图十七

I designed the spacecraft and Mission Control desk to provide open-ended play. This is not a game itself that can be won or lost, just a fancy prop for my boys to use with their own blossoming imaginations. Rather than limit them to what I can think up in terms of play, I want to give them room to think up things themselves. As far as the making aspect goes, I expect that we’ll think of new capabilities as we play with it more. We will work together to add capabilities. Simple ones at first, such as homemade satellites, toolkits and new gadgets for the repair compartment. Increasingly fancy ones will come later, as they learn more.

The ship is a collection of various simple things I assembled and integrated to provide a cohesive and fun experience. Alone, no single feature was all that hard to do, there just happen to be a lot of details and a fair amount of integration. If you are interested in making something similar, just break it down into manageable chunks, and don’t be afraid to learn new skills. You can build all kinds of fun things with just a few hours a week using simple tools and skills you can teach yourself. Have at it!

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注