Raspberry Pi 驱动的杂耍表演

还没有读者喜欢这个。
One lightbulb lit out of several

Opensource.com

闪烁的道具在漆黑的舞台上旋转着,高达数十英尺。这是一场杂耍表演。所有的道具都完美同步,随着音乐的节奏闪烁不同的颜色。这是剧院的魔力的一部分,也是与朋友共度特别夜晚,享受日常生活的乐趣的一部分。魔力的一部分——以及为什么它被称为魔力——是因为观众不知道这些秘密是如何在后台制作的。

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

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

而且,他希望我们考虑一下 Raspberry Pi 是否可以提供帮助。我接受了这项工作,并亲自会见了 Charles,开始我的研究。

Lauren, Charles, and her dad around the laptop

在一次电话会议后,Charles 和我决定当晚在我家见面。我有点慌张,因为第二天我要参加生物考试,但幸运的是一切都很顺利。我发现尺寸将是解决 Charles 问题的关键,所以我从 Raspberry Pi 开始入手。它很小,并且与 Pibrella 扩展板 兼容。我从 Charles 那里拿了两个杂耍道具用于测试,并拿出了我的备用 Pi。几周后,我沉浸在 Google 搜索中,寻找我的下一个起点。然后,我在 GitHub 上找到了宝藏,AeroUp 代码,这是一个法国马戏团编写的关于如何运行杂耍道具的代码。

Pibrella 扩展板可以插在顶部,让用户可以使用 LED、按钮、I/O 引脚和扬声器。并且,Pibrella 库 是一个 GitHub 仓库,其中包含预先编写的代码,让用户可以使用这些功能。

我将 AeroUp 代码加载到 Raspberry Pi 上,最终通过无线连接 ssh 进入 Pi,使杂耍道具同时亮起相同的颜色。这项成就是我解决方案过程中的一个里程碑,因为我成功地证明了我的想法是可行的。然而,这还远不是最终交付的产品。

我需要找到一种方法,让 Charles 可以在没有笔记本电脑或网络连接的情况下启动道具。

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

那时真正的工作开始了。

Raspebbery Pi light up juggling pins

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

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

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

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

只需一行新代码和一行修改后的代码,我就成为了 Raspberry Pi 杂耍道具管理系统的骄傲创造者。(带有两个功能按钮!)

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

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

User profile image.
Lauren Egts 是罗切斯特理工学院的学生,曾在美国银行、通用电气航空和 NASA 格伦研究中心图形和可视化实验室 (GVIS) 实习。她曾四次获得国家妇女与信息技术中心 (NCWIT) 俄亥俄州分会奖,并获得一次全国亚军奖。

4 条评论

太棒了。多么有趣!现在我们需要看一个视频!:)

小挑剔:它们被称为“棍棒”而不是“道具”。杂耍演员对此非常讲究,无论出于何种原因。呵呵。

非常酷!我附议请求视频!^

Creative Commons License本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.