技術宅萬聖節自制“南瓜俄羅斯方塊”?

南瓜燈是萬聖節必備的東西,但如果把南瓜和經典視訊遊戲俄羅斯方塊結合在一起,會產生什麼新東西呢?Pumpktris(南瓜俄羅斯方塊)!國外程式設計師技術宅 Nathan 童鞋就 DIY 了一個 Pumpktris,把做好的電路板放在南瓜中,南瓜柄當遊戲控制器,完全可以打一把!

技術宅萬聖節自制“南瓜俄羅斯方塊”

工具/原料

128 個LED燈

256個熱縮管

313個焊接處

大約每天12小時,用了一週半

目前最高得分是 9800

焊接時間

第一步就是做 LED matrix,還好我在Hackaday上找到了一篇製作 70 LED 矩陣的文章。雖然我的步驟基本上差不多,但我都會過一遍。如果你要更多的理論知識,去看他們的文章吧

我切割了 112 段 2.5″ 和 16 段 8″ 的電路線。短線用來連線各個 LED,長線用於連線 LED 到控制器。整一個切割墊,可以輕鬆、快速、準確地測量出的長度。

技術宅萬聖節自制“南瓜俄羅斯方塊”

下一步,我把7條短線和1條長線焊接到一起了做了 1 條菊花鏈(如下圖)。然後再做 15 條這樣的長線,8*8 矩陣的長線就夠了。

技術宅萬聖節自制“南瓜俄羅斯方塊”

然後製作夾板(jig),和Hackaday上的方式不同,我沒有用硬質板,改用了1/4″的泡沫板。用錐子在上面戳孔了,這比在硬板上用鑽頭要快點。另外用泡沫板的好處是,孔洞可先弄小點,把LED燈塞進去還更穩定哦。

技術宅萬聖節自制“南瓜俄羅斯方塊”

在一排孔洞上安上 LED 燈,每個 LED 的陽極鍍錫後簡短,然後拿一條前面做好的菊花鏈長線,在這排燈上焊接好。在焊接之前,我在菊花鏈的每個連線處包上了半英寸的熱縮管(heat- shrink tubing)。有幾次次我忘了熱縮管,不得不回頭再加。注意:焊接處還燙時,彆著急把熱縮管套下去。否則熱縮管就開始收縮,在 LED 連線處就會套不牢了。

技術宅萬聖節自制“南瓜俄羅斯方塊”

把八行LED燈(陽極)都串聯好後,就開始把它們的陰極連起來了。過程一樣,記得熱縮管。搞定後,從泡沫夾板上取下來。

技術宅萬聖節自制“南瓜俄羅斯方塊”

看看!下面就是完工後的 LED 矩陣!

技術宅萬聖節自制“南瓜俄羅斯方塊”

咦?還差什麼呢?這是一個8×8的矩陣,想玩俄羅斯方塊,空間還不夠哦。所以我又做了一個8×8的矩陣。

Adafruit 的 LED Matrix Backpack 是要求其 LED 矩陣得正確焊接在板子上,但我是焊接了陰極(female header),如此一來,我可以單獨給每塊 8×8 LED 矩陣加電,也可以給整個 8×16 LED 大矩陣加電。有人可能會和我說,我應該要在這裡或哪裡加個電阻什麼的,否則我會把晶片弄爆,也許他們是對的,但目前來看工作正常的。

為了把我自己做的 LED 矩陣連線到 I2C Backpack,我切掉了部分原型板,然後焊接了陽極。然後把最後一行一列的8″ 線連線到板子上。

技術宅萬聖節自制“南瓜俄羅斯方塊”

程式設計時間

所有程式碼寫入安裝在我 Bamboo 原型板上的硬體上。

技術宅萬聖節自制“南瓜俄羅斯方塊”

俄羅斯遊戲中共有七種形狀(Tetromino),每種形狀都只有四個方塊(點),這也就是為什麼會用上 tetra 字首的原因。用一個三維陣列來儲存各種形狀每個點的位置,有四種可能的旋轉角度。儲存每個旋轉角度要比在下降時計算其角度更簡單(至少我是這樣想的)。下 面是 T 形狀的例子:

技術宅萬聖節自制“南瓜俄羅斯方塊”

為了繪製活動塊,程式設定有一個 activePiece 變數(形狀陣列的索引)和一個轉動角度變數(形狀轉動角度描述索引),然後設定每個畫素對,每個畫素對引出兩個偏移量:yOffset 和 xOffset,分別指活動塊離螢幕底邊的距離和離螢幕左邊的距離。還要有一個描述每個“固定塊”狀態的陣列。

加工南瓜

這個工程需要一個完美的容器,呃,我說的就是南瓜。南瓜得足夠高,得裝下8英寸高的 LED 矩陣,還得有個長又直的南瓜柄。我開始買了 3 個南瓜,以為都是完美品,回家才知道一瓜不如一瓜。最後總算有個合適的,其他幾個我就用來聯絡打孔和練刀工了。

進南瓜裡面,我在背面開了一個大口。注意:千萬別從南瓜柄那下刀,南瓜柄還得留著做遊戲控制刊。放 LED 燈,從背面比從上面放更容易。

拿一張紙,仿照 8×16 LED 矩陣大小再畫一個矩陣,做好標記。

技術宅萬聖節自制“南瓜俄羅斯方塊”

做好標記後,我用 13/64″ 鑽頭打孔了。

技術宅萬聖節自制“南瓜俄羅斯方塊”

因為圓孔不怎麼適合用來做俄羅斯方塊遊戲,所以我在每個洞眼旁邊,用 X-Act 刀戳出了方形。

技術宅萬聖節自制“南瓜俄羅斯方塊”

為了把南瓜柄改造成控制桿,我小心翼翼地從根部鋸開了南瓜柄,然後再鑽了一個 1/8″ 大小的孔眼,遊戲杆得穿過這個孔。

技術宅萬聖節自制“南瓜俄羅斯方塊”

在南瓜內部,瓜柄下方要整平出一個正方形。把錨釘切短了些(過長會穿透南瓜),然後擰緊。稍後再螺絲把控制桿固定在錨釘上。

技術宅萬聖節自制“南瓜俄羅斯方塊”

制杆的話,我買了SparkFun的短柄操作杆,把紅球擰下來,換上南瓜柄。我在南瓜柄上鑽了一個孔,給 6mm 的螺栓上膠,然後放進南瓜柄,然後再把南瓜柄擰上操作杆。

技術宅萬聖節自制“南瓜俄羅斯方塊”

然後把 LED 燈塞進南瓜孔洞。中間有個小插曲,從南瓜外邊看著是打了16行的孔,從裡面看卻是15行。因為南瓜不夠長,有弧度,導致上上面有兩行洞眼打到一行去了。最上一排就只好直接把 LED 燈強行摁進合適的位置去了。

技術宅萬聖節自制“南瓜俄羅斯方塊”

最後把每塊電路線接好,電源是8節充電電池。

是時候來玩一把南瓜俄羅斯方塊了!!!

技術宅萬聖節自制“南瓜俄羅斯方塊”

除了上面那塊 8×8 的矩陣有時候會有些小故障,其他部分執行的都很好。也許是電源供給問題,但應該是一些間斷的短路,因為這麼多電路連線點都在南瓜肉中。操作杆在上面,而顯 示屏卻在下方,玩起來也覺得怪怪的。如果我重新做一個的話,我會把控制桿放在另外一個獨立的南瓜上,或者用無線操作杆,或者把控制桿外接線路打扮成南瓜 藤。

創意

寫下所有瘋狂、一閃而過的想法,這是我的習慣之一,然後回頭再檢查,而不是當時做判斷,這樣也不會把創意忘掉。在10月份初,我在回想去年的一個創 意,製作“南瓜俄羅斯方塊”。我的最初計劃是給南瓜塑形,在南瓜成長的過程中,把南瓜整成俄羅斯方塊遊戲中的各種形狀,然後在萬聖節把這些整形後的南瓜拼 堆在一起。因為離萬聖節也沒多少周了,想種南瓜,也晚了,所以我想:為什麼做一個可以玩俄羅斯方塊的南瓜呢?

我還有一塊沒有用過的 LOLShield(譯註:一種 9×14 的 LED 板),我也知道之前有人在這個板子上編寫過俄羅斯方塊遊戲。,所以我有了個簡單想法,南瓜上鑽一些洞,放 LED 燈,再做一個控制器,就差不多了。噢,不對,那樣會不會太簡陋了。LED 燈又小,並且都集中在 2×3″ 大的地方。這樣不行!

B 計劃:還是用 LOLshield,但不把LED燈安裝在板子上,我將在外部把它們連線起來,這樣我就能在南瓜上把它們隔的更開了。還好我在這條路上沒有走太遠,就發現 方法不對了。因為我發現,在LED燈之間,將會有又電線束,如果板子會搞得太厚,那我焊接和整理板子將會太麻煩了。

所以我打算自己做一個 LED 燈板子,自己重新寫程式。決定已下,我從 Mouser 買了 140 個黃色的 LED 燈,從 Adafruit 買了一對 LED 板子(LED Matrix I2C “backpacks”),這個帶了一個 8*8 的 LED matrix。

相關問題答案