合作迷宫游戏
0
准备工作:
材料:
所需软件
- P5JS 环境
- Arduino 环境
- p5.串行控制
- 所需硬件
- 请参阅附件 PDF 了解数量、链接和定价
- NeoPixel 卷
- 胶合板
- 街机按钮
- Arduino Nano 每一个
- 实心芯线包
- 面包板
- 15 英尺 USB 转 MicroUSB
- 焊锡卷
- 热熔胶包
- 命令条
- 电阻组
- 热缩管
- 压克力板
- 管道胶带
- 打印纸
- 木胶
- 亚麻籽油
工具:
1.烙铁套装
2.斜口钳
3.热熔胶枪
4.激光切割机
制作说明






互动系统需要至少两方循环聆听、思考和交流。对于我们的游戏,用户将面临挑战,需要沉浸在互动系统中,与另一个人和物体一起体验这一过程。这反映了大学课堂之外的工作方式。无论是研究还是行业,合作完成目标对于解决问题和取得新发现至关重要。从本质上讲,我们的游戏将是一个让用户体验合作重要性的平台。
我们决定制作一款名为“Get Lost”的游戏。这是一款协作迷宫游戏,其中有一名物理用户和一名计算机用户。物理用户只能看到玩家和目标位置,而计算机用户只能看到迷宫墙壁。两个用户的信息都不完整,必须共同努力将他们的玩家图标移动到目标区域。我们通过为物理用户创建大型墙壁控制器和为计算机用户创建 p5js 游戏来创建这种体验。墙壁控制器将有 4 个方向输入(按钮)供物理用户交互,以及一个 NeoPixel 网格来提供反馈。
首先,我们制作了一个纸板游戏原型,因为它需要进行大量的游戏测试。虽然本 Instructable 中的步骤将概述如何创建最终项目,但大部分游戏设计、逻辑和制作想法都来自我们的原型。我们使用一个由 4 个街机按钮和一个 Arduino Nano Every 组成的简单电路开始制作原型。一旦我们确认按钮可以向 Arduino 发送数字信号,我们就开始梳理游戏的 NeoPixel 逻辑。虽然我们当时没有 NeoPixels,但逻辑受到以下事实的极大影响:我们的“网格”本质上是一条长数字线,重新排列成网格的样子。因此,X 和 Y 坐标的概念不复存在,每个位置都可以用一个数字表示。这改变了在 4 个方向上移动的含义以及迷宫边界的含义。
在弄清楚 NeoPixel 逻辑后,我们设计了 5 个迷宫,每个迷宫都有固定的墙壁配置、玩家起始位置和目标区域位置。一对玩家将连续完成 5 个迷宫,如果他们在时间耗尽之前完成,游戏将提示玩家在指挥官(计算机用户)和驾驶员(物理用户)之间切换。
在代码方面,大部分游戏逻辑发生在 Arduino 端,而 P5JS 端主要打印出迷宫和统计数据,例如时间和达到的目标数量。通过串行通信,使用街机按钮到达目标区域将改变 P5JS 上的迷宫。创建原型后,我们继续执行以下步骤来创建最终项目。
焊接 NeoPixel 网格

我们从 NeoPixel 卷上剪下 8 条 NeoPixel,每条有 8 个 NeoPixel。我们必须将电线焊接到它们上面,所以我们剪了 24 段每段 10 英寸的实心电线。这很有帮助,因为有三种不同颜色的电线,每种颜色剪了八段。颜色让我们可以跟踪接地、引脚和电源,从而确保 NeoPixel 的方向一致。本质上,我们焊接了一条非常长的 NeoPixel 条,电线允许我们将条带弯曲成网格。焊接完每个条带后,我们用热胶覆盖连接处以加固它们。将 NeoPixel 条弯曲成 8 x 8 网格后,我们用激光切割了一张带有每个 NeoPixel 孔的丙烯酸板。然后,我们用胶带将网格固定在丙烯酸板上。
构建物理电路

我们为物理控制器构建了电路,如上图所示。对于每个街机按钮,我们必须焊接 2 根 20 英寸长的电线。然后,我们用热缩管固定连接。这个Arduino Nano Every Diagram对于确定要使用哪些引脚非常有用。
以下分别是准备好的街机按钮、放大的电路和缩小的电路的图像。
应用代码

对于初次使用的用户,设置代码将需要 P5JS、Arduino 环境和p5.serialcontrol。我们游戏的代码位于这个 Github 存储库中。您需要做的第一件事就是将您的 Arduino Nano Every 插入您的计算机并将 Arduino 代码上传到其中。只需将代码从Maze-Object.ino复制并粘贴到您的 Arduino 环境中即可。编译和上传后,您就可以使用 p5.serialcontrol 了。接下来,您需要打开 p5.serialcontrol 并打开您的串行端口。端口名称对 P5JS 很重要。为了防止 Arduino 访问串行监视器,您可以关闭您的 Arduino 环境。虽然 P5JS 的主要代码位于 Github 存储库中,但您需要包含多个文件。打开这个 P5JS 草图要容易得多。您需要找到行 serial.open('[portName]')。将端口名称更改为您自己的名称,然后就可以运行草图了。要将游戏设置为全屏,只需单击草图窗口即可。在制作外壳之前,请务必测试电路是否正常工作。
建造围栏





对于我们的物理控制器,我们使用MakerCase设计了一个带有手指槽的 22 x 16 x 4 英寸外壳。然后,我们从该网站下载了盒子计划的 SVG,并在 Adobe Illustrator 中对其进行了修改。这些修改包括街机按钮的孔和箭头蚀刻、NeoPixel Grid 的开口和蚀刻标签以及 15 英尺 USB 转 MicroUSB 电缆的孔。外壳计划完成后,我们用激光切割零件,并使用木胶将它们组装到我们的物理控制器中。
组装




为了让我们的控制器看起来更完美,我们打磨了表面并涂上了亚麻籽油。然后我们安装了面包板、街机按钮和 NeoPixel 网格。面包板必须用命令条固定在外壳内部。对于街机按钮,需要将它们拆开,拧入每个孔中,然后重新组装。对于 NeoPixel 网格,我们使用胶带将其固定到与标签对齐的位置。我们还用激光切割、蚀刻和打磨了一块丙烯酸板,以散射 NeoPixels 发出的光线。该板的尺寸与 NeoPixel 网格开口相同,位于网格顶部。我们在网格和丙烯酸板之间贴了胶带纸,以增加散射效果。
玩游戏

演示视频链接:https://youtu.be/hhjioAKQUo8
完成物理控制器和代码后,游戏就完成了。如果您自己制作了这款游戏,则可以按照步骤 3 中的说明开始游戏。设置好游戏后,您需要一个伙伴来充分体验“Get Lost”。你们中的一个人将担任驾驶员。您的工作是按下物理控制器上的按钮,将您的玩家图标移动到目标。玩家图标是 NeoPixel 网格上的蓝灯;目标是绿灯。您的搭档将是指挥官。他们的工作是查看迷宫并引导您穿过迷宫墙壁。您认为您的搭档可以达到多少个目标?
0
0
0
qq空间
微博
复制链接
分享