多语言展示
当前在线:615今日阅读:126今日分享:42

技术宅万圣节自制“南瓜俄罗斯方块”

南瓜灯是万圣节必备的东西,但如果把南瓜和经典视频游戏俄罗斯方块结合在一起,会产生什么新东西呢?Pumpktris(南瓜俄罗斯方块)!国外程序员技术宅 Nathan 童鞋就 DIY 了一个 Pumpktris,把做好的电路板放在南瓜中,南瓜柄当游戏控制器,完全可以打一把!
工具/原料
1

128 个LED灯

2

256个热缩管

3

313个焊接处

4

大约每天12小时,用了一周半

5

目前最高得分是 9800

焊接时间
1

第一步就是做 LED matrix,还好我在Hackaday上找到了一篇制作 70 LED 矩阵的文章。虽然我的步骤基本上差不多,但我都会过一遍。如果你要更多的理论知识,去看他们的文章吧我切割了 112 段 2.5″ 和 16 段 8″ 的电路线。短线用来连接各个 LED,长线用于连接 LED 到控制器。整一个切割垫,可以轻松、快速、准确地测量出的长度。

2

下一步,我把7条短线和1条长线焊接到一起了做了 1 条菊花链(如下图)。然后再做 15 条这样的长线,8*8 矩阵的长线就够了。

3

然后制作夹板(jig),和Hackaday上的方式不同,我没有用硬质板,改用了1/4″的泡沫板。用锥子在上面戳孔了,这比在硬板上用钻头要快点。另外用泡沫板的好处是,孔洞可先弄小点,把LED灯塞进去还更稳定哦。

4

在一排孔洞上安上 LED 灯,每个 LED 的阳极镀锡后简短,然后拿一条前面做好的菊花链长线,在这排灯上焊接好。在焊接之前,我在菊花链的每个连接处包上了半英寸的热缩管(heat- shrink tubing)。有几次次我忘了热缩管,不得不回头再加。注意:焊接处还烫时,别着急把热缩管套下去。否则热缩管就开始收缩,在 LED 连接处就会套不牢了。

5

把八行LED灯(阳极)都串联好后,就开始把它们的阴极连起来了。过程一样,记得热缩管。搞定后,从泡沫夹板上取下来。

6

看看!下面就是完工后的 LED 矩阵!

7

咦?还差什么呢?这是一个8×8的矩阵,想玩俄罗斯方块,空间还不够哦。所以我又做了一个8×8的矩阵。Adafruit 的 LED Matrix Backpack 是要求其 LED 矩阵得正确焊接在板子上,但我是焊接了阴极(female header),如此一来,我可以单独给每块 8×8 LED 矩阵加电,也可以给整个 8×16 LED 大矩阵加电。有人可能会和我说,我应该要在这里或哪里加个电阻什么的,否则我会把芯片弄爆,也许他们是对的,但目前来看工作正常的。为了把我自己做的 LED 矩阵连接到 I2C Backpack,我切掉了部分原型板,然后焊接了阳极。然后把最后一行一列的8″ 线连接到板子上。

编程时间
1

所有代码写入安装在我 Bamboo 原型板上的硬件上。

2

俄罗斯游戏中共有七种形状(Tetromino),每种形状都只有四个方块(点),这也就是为什么会用上 tetra 前缀的原因。用一个三维数组来存储各种形状每个点的位置,有四种可能的旋转角度。存储每个旋转角度要比在下降时计算其角度更简单(至少我是这样想的)。下 面是 T 形状的例子:

3

为了绘制活动块,程序设置有一个 activePiece 变量(形状数组的索引)和一个转动角度变量(形状转动角度描述索引),然后设置每个像素对,每个像素对引出两个偏移量:yOffset 和 xOffset,分别指活动块离屏幕底边的距离和离屏幕左边的距离。还要有一个描述每个“固定块”状态的数组。

加工南瓜
1

这个工程需要一个完美的容器,呃,我说的就是南瓜。南瓜得足够高,得装下8英寸高的 LED 矩阵,还得有个长又直的南瓜柄。我开始买了 3 个南瓜,以为都是完美品,回家才知道一瓜不如一瓜。最后总算有个合适的,其他几个我就用来联系打孔和练刀工了。进南瓜里面,我在背面开了一个大口。注意:千万别从南瓜柄那下刀,南瓜柄还得留着做游戏控制刊。放 LED 灯,从背面比从上面放更容易。拿一张纸,仿照 8×16 LED 矩阵大小再画一个矩阵,做好标记。

2

做好标记后,我用 13/64″ 钻头打孔了。

3

因为圆孔不怎么适合用来做俄罗斯方块游戏,所以我在每个洞眼旁边,用 X-Act 刀戳出了方形。

4

为了把南瓜柄改造成控制杆,我小心翼翼地从根部锯开了南瓜柄,然后再钻了一个 1/8″ 大小的孔眼,游戏杆得穿过这个孔。

5

在南瓜内部,瓜柄下方要整平出一个正方形。把锚钉切短了些(过长会穿透南瓜),然后拧紧。稍后再螺丝把控制杆固定在锚钉上。

6

制杆的话,我买了SparkFun的短柄操作杆,把红球拧下来,换上南瓜柄。我在南瓜柄上钻了一个孔,给 6mm 的螺栓上胶,然后放进南瓜柄,然后再把南瓜柄拧上操作杆。

7

然后把 LED 灯塞进南瓜孔洞。中间有个小插曲,从南瓜外边看着是打了16行的孔,从里面看却是15行。因为南瓜不够长,有弧度,导致上上面有两行洞眼打到一行去了。最上一排就只好直接把 LED 灯强行摁进合适的位置去了。

8

最后把每块电路线接好,电源是8节充电电池。是时候来玩一把南瓜俄罗斯方块了!!!

9

除了上面那块 8×8 的矩阵有时候会有些小故障,其他部分运行的都很好。也许是电源供给问题,但应该是一些间断的短路,因为这么多电路连接点都在南瓜肉中。操作杆在上面,而显 示屏却在下方,玩起来也觉得怪怪的。如果我重新做一个的话,我会把控制杆放在另外一个独立的南瓜上,或者用无线操作杆,或者把控制杆外接线路打扮成南瓜 藤。

创意
1

写下所有疯狂、一闪而过的想法,这是我的习惯之一,然后回头再检查,而不是当时做判断,这样也不会把创意忘掉。在10月份初,我在回想去年的一个创 意,制作“南瓜俄罗斯方块”。我的最初计划是给南瓜塑形,在南瓜成长的过程中,把南瓜整成俄罗斯方块游戏中的各种形状,然后在万圣节把这些整形后的南瓜拼 堆在一起。因为离万圣节也没多少周了,想种南瓜,也晚了,所以我想:为什么做一个可以玩俄罗斯方块的南瓜呢?

2

我还有一块没有用过的 LOLShield(译注:一种 9×14 的 LED 板),我也知道之前有人在这个板子上编写过俄罗斯方块游戏。,所以我有了个简单想法,南瓜上钻一些洞,放 LED 灯,再做一个控制器,就差不多了。噢,不对,那样会不会太简陋了。LED 灯又小,并且都集中在 2×3″ 大的地方。这样不行!

3

B 计划:还是用 LOLshield,但不把LED灯安装在板子上,我将在外部把它们连接起来,这样我就能在南瓜上把它们隔的更开了。还好我在这条路上没有走太远,就发现 方法不对了。因为我发现,在LED灯之间,将会有又电线束,如果板子会搞得太厚,那我焊接和整理板子将会太麻烦了。所以我打算自己做一个 LED 灯板子,自己重新写程序。决定已下,我从 Mouser 买了 140 个黄色的 LED 灯,从 Adafruit 买了一对 LED 板子(LED Matrix I2C “backpacks”),这个带了一个 8*8 的 LED matrix。

推荐信息