树莓派驱动的杂耍表演

还没有读者喜欢这篇文章。
One lightbulb lit out of several

Opensource.com

在漆黑的舞台上,闪烁的道具飞旋到几十英尺高的空中。这是一场杂耍表演。所有道具都完美同步,随着音乐节奏闪烁不同的颜色。这是剧院魔力的一部分,也是与朋友外出享受,从日常生活中获得放松的特别夜晚。魔力的一部分——也就是它被称为魔力的原因——是观众不知道这些秘密是如何在后台创造出来的。

他们也不知道这种魔力具有开源血统。

4月21日,我收到了我以前的老板,Ian Charnas的邮件。去年夏天,我曾在他的领导下,在凯斯西储大学ThinkBox工作,帮助人们使用那里的机器。他在邮件中告诉我,一位名叫Charles Peachock的杂耍演员需要帮助,建立一个新的系统来同步他的道具,用于表演。Charles已经六次登上美国达人秀,并定期在全国巡回演出。他的杂耍设备变得过于笨重,而且在后台准备起来很困难。他需要一些不那么麻烦的东西。

而且,他希望我们考虑是否可以使用树莓派来提供帮助。我接受了这项工作,并亲自与Charles见面,开始我的研究。

Lauren, Charles, and her dad around the laptop

在一次电话之后,Charles和我决定当晚在我家见面。我有点慌,因为我第二天要参加生物考试,但幸运的是一切都很顺利。我发现尺寸是解决Charles问题的关键,所以我从树莓派入手。它体积小,并且与Pibrella shield兼容。我从Charles那里拿了两个杂耍道具用于测试,并拿出了我备用的树莓派。几周过去了,我深陷在Google搜索中,寻找我的下一个起点。然后,我在GitHub上找到了AeroUp代码,这段代码是由一个法国马戏团编写的,用于控制杂耍道具。

Pibrella shield可以插在树莓派的顶部,使用户可以访问LEDS、一个按钮、I/O引脚和一个扬声器。而且,Pibrella库是一个GitHub代码仓库,其中包含预先编写的代码,允许用户访问这些功能。

我将AeroUp代码加载到树莓派上,最终通过无线连接ssh进入树莓派,使得杂耍道具能够同时以相同的颜色亮起。这一成就是我解决方案过程中的一个里程碑,因为它证明了我的想法是可行的。然而,它远未达到最终交付状态。

我需要找到一种方法,让Charles无需笔记本电脑或网络连接即可启动这些道具。

首先,我使用USB集线器将道具连接到树莓派和以太网电缆。我将SD卡插入读取器USB,然后插入我的电脑。我将ArchLinux加载到我的电脑上,解压缩,并使用dd命令将其复制到SD卡上。安全地移除USB后,我将SD卡插入到树莓派中。

真正的挑战这才开始。

Raspebbery Pi light up juggling pins

我创建了一个用户Pi,并调整了SD卡上的分区。接下来,我创建了一个交换文件,以防止gcc被oomkiller终止。可以使用无线适配器配置无线网络,但我没有这样做,因为我有以太网电缆。我设置了正确的时区、日期和时间。然后,我更新了ArchLinux并安装了七个软件包,以确保系统能够正常工作。接下来是更多的安装,这次是Python和Pibrella库的安装。我必须为Pibrella库使用 *pre flag*,因为它目前是预发布软件。完成这些之后,我以Pi用户的身份构建了AeroUp。

我准备开始编写代码了。我编写了一个程序,向道具发送信号,使其同时启动。这相对简单,并且使用Bash完成。第一个程序的主要部分是一个循环,用于检查正在使用的设备数量,并使用预定的程序(以后可以更改)启动它们。第一个程序被用作第二个程序的一部分。第二个程序由两个主要循环组成,并使用Python编写。第一个循环读取按钮状态并计算按下按钮的时间。如果按下按钮的时间少于三秒,则绿灯亮起,并调用和处理Bash程序。如果按下按钮的时间超过三秒,则黄灯亮起,系统关闭。第二个循环处理灯之间的过渡。它还检查按钮状态和按下按钮的持续时间。它根据按下按钮的时间长短更改灯的颜色。

编写完这些程序后,我使它们在用户Pi的主目录中可执行。最后,我设置了一个名为juggling_app.py的系统,使其在启动时运行。当我启用juggling_app.py时,系统运行完美。我尝试破坏它,但所有的尝试都失败了,或者非常不一致以至于无效,所以我开始设置硬件。

我去了Microcenter,我当地的计算机用品商店,为Charles购买了一个树莓派和一个SD卡。我组装好一切,并将我的Pibrella连接到新的树莓派上。然后,我放入SD卡并多次进行测试。当我确定它工作正常时,我真的很高兴!然后,我安排与Charles见面,看看他对它的看法。他觉得它太棒了……并希望我添加另一个功能。在他的业务中,冗余非常重要,因此他要求我使用面包板在设置中添加另一个按钮。面包板是一块小型塑料板,具有用于连接导线的连接点。这允许用户将按钮等项目连接到面包板,并将其与树莓派一起使用。老实说,我并不完全确定我能做到。重写整个程序的景象在我脑海中闪过,但我还是同意尝试。幸运的是,我的恐惧最终只是恐惧而已;我原以为添加额外的按钮和功能可能需要几个小时,但实际上只花了十分钟!

仅仅一行新的代码和一行修改后的代码,我就成为了一个自豪的树莓派杂耍道具管理系统的创造者。(带有两个功能正常的按钮!)

这个旅程,这个项目的最后一部分,是使整个系统看起来专业。我从头开始,记下每个步骤以及相关的命令和链接。这成为了手册:《运行手册》包含运行系统的三个说明,《构建手册》包含从头构建系统的说明,并且程序也包含在内。

今天,您可以观看Charles的巡回演出Impossible Deceptions,并且知道我的系统在后台运行。

User profile image.
Lauren Egts是罗切斯特理工学院的学生,曾在美国银行、通用电气航空以及NASA Glenn Research Center Graphics and Visualization Lab (GVIS)实习。她曾四次获得美国女性与信息技术中心 (NCWIT) 俄亥俄州分会奖,并一次获得全国亚军奖。

4 条评论

太棒了。而且很有趣!现在我们需要看一段视频!:)

吹毛求疵:它们被称为“club”,而不是“pins”。杂耍演员对这一点非常讲究,不知为何。呵呵。

太酷了!我赞同视频的请求!^

Creative Commons License本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© . All rights reserved.