微軟放棄的遊戲被他們復活了:Windows經典「三維彈球」現實版,CAD建模、Arduino編程、數控工具機打造,硬核致敬童年

2021-02-16 量子位
金磊 賈浩楠 發自 凹非寺
量子位 報導 | 公眾號 QbitAI

20年前,電腦還是大背頭的,「休閒小遊戲」是屬於Windows的。

紙牌、掃雷、空當接龍……滿滿的一波回憶殺。

最近,來自美國肯尼索州立大學(KSU)的4位小哥,就親自動手用開源電子原型平臺Arduino,從零開始復現了另一款Windows經典小遊戲——三維彈球 (3D Pinball)。

從3D建模,到代碼編寫,再到最後的動手施工,他們用最專業的手段向童年致敬。

正如其中一位小哥說的:

建造這樣一個項目,是我的童年夢想。

不僅如此,他們還把整個過程做了個教程——只要9步,你也可以打造一臺屬於自己的三維彈球。

把「三維彈球」搬到現實中

我們先來回憶一波這款經典的Windows小遊戲。

開局,球會從右下角的管道被彈出,然後就會在桌面自由滾動,碰到不同的障礙物會拿到不同的分數。

只要保證它不從底部中間的縫隙掉出去就可以。

(滿滿的童年回憶啊……)

那麼,KSU幾位小哥打造的「三維彈球」,長啥樣?

模型是這樣的:

實物長這樣:

桌面布局可以說是完美復現了小遊戲中的場景——從管道的位置,到障礙物的布局,各種細節「惟妙惟肖」。

嗯,有內味道了。

實際上手玩耍又是種什麼體驗?

再來看下近距離視角。

簡直一摸一樣有木有!

然而這臺機器還有更厲害的地方——全自動多球

看完是不是也想擁有一臺呢?

別著急,KSU的4位小哥寫了份超詳細教程,手把手教你如何打造現實版「三維彈球」。

9步,手把手教你打造現實版「三維彈球」

彈球機的主要功能模塊包括追蹤得分系統,多球彈珠機,還有自主啟動開關。上方有一個USB攝像頭,在自動運行模式下會持續地監測彈球的位置,並根據球的位置指揮擊打器。

用到的工具和材料清單:

數控工具機或雷射切割機
Dremel和砂紙
烙鐵
3D印表機
Linux計算機
USB攝像頭

大量的22/24 AWG線
大量的熱縮線
3/4英寸的膠合板(波羅的海樺木)
一個電源
降壓轉換器
彈球組件(網上購買)

左右翻轉器組件
2個翻轉式擊打器
2個翻轉按鈕
2個葉子開關
保險槓總成
2個彈弓組件
至少6個星柱的彈弓
至少2個2英寸的橡皮筋

發射器機制
44號刺刀式燈
場地中的障礙
擲球器
翻轉開關

Step 1:紙面設計和低成本試錯

設計中最可能出現的問題可能就是遊戲機本身的尺寸限制和內部結構的安排,一些預想的彈球擊打方式實驗時才發現無法實現,所以需要先畫出設計草圖,然後在此基礎上不斷改進。

團隊在確定最終的遊戲場地設計之前,經歷了多次設計的修改和優化,每一次改進,都在便宜的膠合板上做一個模型來測試,一步步靠近最終的設計。

一些經驗教訓:

進行模塊化設計,不同功能組件要能隨意放置和取消。
不要自己設計滑輪,借鑑成熟的彈球遊戲的場地設計,這樣能少走很多彎路。

Step 2:在SolidWorks上進行設計建模

彈球機的設計由兩個主要的子部分組成,運動場和支架。球場是標準尺寸——20.25 x42英寸2,由3/4英寸厚度的波羅的海樺木膠合板製成。

遊戲場地包括一個由直徑為2英寸的亞克力管和3D列印的適配器組合而成的第二層。第二層有兩個主要功能。首先,第二層作為介質,將球從上層球場直接輸送到左翻板內側。球下落位置的可預測性,使得第二層成為一個的通道,此通道便於多球運動,這是其第二大功能。

當坡道和左內線上的翻轉開關背對背地觸發時,舵機會釋放出兩個球,這些球會下滾到第二層上方的兩個管子中的一個,與坡道射出的球發生碰撞。因此,在多球模式下,這些管子將球會送入第二層,進入入左邊的內管。

3/4英寸膠合板厚度的選擇是為了給工程提供足夠的剛性,並允許在承重接頭處有更大的緊固件嚙合。選用波羅的海樺木作材料,因為它的質量高,雜質少,屬於硬木,不易損壞,易於使用雷射雕刻,一般來說,對於較重的木製結構是首選。

支架是遊戲場地的安裝裝置,並容納了定製的電子裝置。電子裝置直接固定在底板上,延伸的延伸到遊戲面板底部。通過觀察窗可以看到電子裝置在支架的兩側。

此外,該支架還可以通過側面的可拆卸的插銷對球場進行間距調節。遊戲臺傾斜角度範圍為0-8度,每兩度設置一個調節檔位。更高的球道坡度可以使遊戲節奏更快,難度更高。

Step 3:用數控工具機或雷射雕刻製作主體

儘管你可以手工切削出遊戲臺的整體結構,但這樣誤差交大,後續安裝連接多有不便,浪費材料。

這幾個美國小哥用一臺大型5軸數控工具機進行銑削,最後再用木楔進行細節調整。

Step 4:電子器件和電源選擇

大多數彈球機的 「高壓 「在35V-48V的範圍,這取決於你買的電磁鐵的品牌,同時你要選擇一個能支持這種磁鐵線圈的電源。

其次,你需要考慮到 「低電壓 「的電源,用於給燈或其他較小的電器元件等東西供電。我們選擇的低電壓是6.3v的電壓,但這不一定是一成不變的。這要看你買的是什麼LED,以及你是否用這個電源給其他的電器東西供電。一般6.3V應該就可以滿足需要。

如果沒有低壓電源,那還需要一個降壓轉換器將高電壓(如48V)降到小元件的額定電壓。

此外,使用的元件的電阻大小,決定了電流大小。所以,電源總功率要視情況而定。

如果你的組件沒有達到正確的功耗額定值,這些元件在很短的時間內產生很大的電流。

在這種情況下,單個擊打器內部線圈可能會產生3-4安電流,兩個加起來8安培左右,會導致元件燒毀。

你應當計算出 「最壞的情況下 「的電流大小,然後給出一個合理的安全範圍,挑出一個對應的電源。

Step 5:建立I/O接口電路

開關輸入部分:

開關輸入板負責將所有的值從遊戲場地中讀入到Arduino。這個單獨的電路非常簡單,但需要對很多輸入進行放大處理。

因為Arduino有一個內部的上拉電阻,所以你可以如上圖那樣接線。

這裡最大的問題是要確保每個開關都有連接器,以防有一個開關因為某種原因單獨取出調試。

這個項目中使用了標準針腳連接,可以很容易地將所有的東西同時插入到Arduino中。

燈光控制部分:

電路由一個BJT電晶體(2n222222)、幾個電阻和LED組成。

電晶體作為一個數字 「開關」,可以打開或關閉,把它這個連接到前面提到的6.3v電源上,就得到了一個光源和單獨可尋址的LED。

不能直接將LED直接連接到Arduino上的原因是,Arduino無法提供多個LED要求的額定電流。

正確的辦法是把Arduino作為一個數字開關,控制BJT。這樣就可以將LED的數量擴大到我們需要的數量。

電磁控制部分:

總體思路與LED板相同:從Arduino發送一個信號,能夠打開/關閉任何一個電磁鐵(翻板、彈弓、彈出式保險槓)。因為這些元件比LED功率更大,所以需要一些更大的電晶體:MOSFET。

電路元件清單:

1k電阻
10k電阻
330電阻
IRF44V MOSFET
1N4004 二極體
47微法電容

電磁鐵需要連接到48V的電壓才會啟動。

因為電感不能瞬間改變電流,這就帶來了一個問題。工作時,線圈會通過很高電流,而關閉時,如果沒有一個地方分散電流,可能會破壞元件,非常危險。

這裡使RC緩衝器電路和二極體來解決這個問題。要使它們覆蓋儘量多的電磁控制並聯支路。

擊打器和其他線圈的電路略有不同。這是因為,在彈球遊戲中,玩家有時會按住按鈕,以保持擊打器長時間啟動。如果要用同樣的功率線圈,很快就會燒毀。

在此電路中的第二個線圈可以實現快速第一次翻轉。一旦翻轉完成,一個機械機構會打開EOS開關,迫使電流通過兩個線圈。

Step 6:組裝所有元件

根據你遊戲場地的大小,焊接時間或長或短。這個項目花了大約兩天的時間焊接,並把所有器件安裝到位。

最終有5種連接器插到板子上:

高功率的螺線管電源
與電磁鐵專用開關的連接
與LED的連接
與開關的連接
一些輔助電源(5V、48V等)。

所有這些都插到了一個3D列印的連接板上,裡面封裝了所有電路設備。當需要開蓋檢測故障的時候,只需要拔掉5個大的連接器,然後把整個裝置舉起來。

Step 7:安裝Arduino軟體驅動

在這臺機器上,需要在與Arduino相連的計算機上安裝以下依賴項:

ROS
rosserial_arduino ROS package
OpenCV (c++)
Tkinter
Apscheduler

整個軟體系統依靠ROS架構作為後端來回傳遞消息。

四個主要節點在彈珠機運行在自主模式下時,進行異步通信,以控制彈珠機的流程。

這些節點分別是Input_Output.ino、track_metal.cpp、run_low_level.py和GUI.py。

當不在自主模式下運行時,可以省略track_metal.cpp節點。

原始碼和詳細解釋在本項目的Github主頁放出。

Step 8:更改Pin、將代碼上傳到Arduino、更新USB攝像頭

如果你自己動手製作彈球機,並使用了本項目的源碼,要注意的是,你的Arduino的Pin需要更新兩處:Arduino/Input_Ouptut/Input_Ouptut.io,以及src/Classes/playfield.py。

此外還需要調整腳本,刪除對開關和LED的調用。

playfield.py會記錄有多少個項目,需要手動設置每個項目的Pin。

之後就可以將代碼上傳到Arduino中。此步驟必須安裝上一步中提到的rosserial_arduino,並正確設置Arduino IDE與ROS綁定。

最後,要做的是更新代碼中你自己使用的攝像頭名稱。只需在 src/Track/track_metal.cpp 中找到 「std::::string camera_metal.cpp 「這一行:

「std::::string camera_string = 「/dev/v4l/by-id/usb-046d_Logitech_Webcam_C930e_6D6BFE5E-video-index0」;」

將字符串更新為攝像機的名稱,可能是」/dev/v4l/by-id/「

所有步驟完成後,重新編譯才可以工作。

Step 9:玩起來吧!

如果一切正常,那麼找到到 「啟動 「目錄,然後輸入 「roslaunch automatic_pinball_c.report

這行代碼啟動所有與彈球機相關的節點,包括GUI節點和跟蹤球的位置的節點。

此外,你可以使用』roslaunch manual_pinball.report』不運行任何自主部分,只體驗手動模式。

來自KSU畢業班的四位「造夢者」

那麼,將童年回憶搬到現實的四位「造夢者」,都是何許人也?

Kevin Kamperman,今年畢業於KSU,目前正在喬治亞理工學院研究所實習,從事無人機相關的研究。

春季畢業的時候,Kevin Kamperman還被KSU評為今年的「榮譽畢業生」。

Cody Meier,同樣也是今年畢業於KSU,主修的專業是機械電子、機器人和自動化工程。

Omar Salazar和上一位小哥是同專業,也是主修機械電子、機器人和自動化工程。

他在採訪視頻中表示,這個項目加強了他在團隊合作方面的能力。

最後一位叫Tyler Gragg的小哥,可謂是「機器人製造」的狂熱愛好者,在個人介紹文字中,還特意寫道「Let’s Make Robots」,參與不少機器人項目。

Tyler也榮登了學校「光榮榜」。

嗯,是四位非常優秀的「造夢者」了。

那些年,經典的Windows小遊戲

紙牌、掃雷、空當接龍…….這些Windows經典遊戲至今仍然擁有眾多粉絲。

它們現在都何去何從了呢?

微軟如今把這些經典遊戲放在了WindowsStore中,然而「三維彈球」的就沒有那麼幸運了。

其實,從Win7開始,微軟團隊將原先的軟體全部移植到64位系統中。

然而,「三維彈球」卻出現了嚴重bug,為了節省時間,微軟直接放棄了這個遊戲。

但四位小哥的這個項目,卻賦予了這款經典之作新的生命。

這個星球有趣的人可真多啊。

傳送門

現實版「三維彈球」項目地址:
https://www.instructables.com/id/Arduino-Pinball-Machine-That-Plays-Itself/

Github原始碼地址:
https://github.com/Tdoe4321/AutoPinball

通用彈球遊戲設計製作教程:
https://howtobuildapinballmachine.wordpress.com

作者系網易新聞·網易號「各有態度」籤約作者

在阿里體系內,OceanBase資料庫支撐了支付寶、網商銀行等重要業務,已成為世界領先的資料庫產品。那麼其背後有哪些核心技術?

7月2號第三期直播,螞蟻集團OceanBase資料庫資深專家--韓富晟(顏然)將介紹資料庫發展演進歷史,並深入解析OceanBase實現資料庫的機制。

掃碼報名,可加入直播交流群,還可獲取系列課程直播回放、分享PPT: 

相關焦點

  • 三維彈球
    除了掃雷和紅心大戰等「老四強」外,他們接觸的第一個電腦遊戲,很有可能就是XP系統捆綁的遊戲:《三維彈球》。這也給了絕大多數人一個固有印象:《三維彈球》是在XP(或Me)上才首次亮相。可實際上,這個版本的《三維彈球》在Windows 95系統上就已經出現了。
  • Steam經典遊戲:Windows內置遊戲三維彈球升級版,3款DLC免費領
    在這些遠古系統中,內置了一款叫做《三維彈球》的遊戲。在微機課上,偷偷玩遊戲並和同學比拼分數便成了一大樂趣。據說,當時這款遊戲只是一個測試版,多年之後,在Steam上,出現了《三維彈球》系列遊戲的升級版,在玩法上,它與早期並沒有任何區別,都是通過控制左右兩個擋板來控制球的運動,通過撞擊不同的部位達到一定的條件並獲取高分。
  • 硬核!用數控工具機+3D 列印,油管「手工耿」DIY 了刻南瓜機器人
    、數控工具機等硬核技術造點新奇小玩意兒的 Shane Wighton。這周,油管網友們盼星星盼月亮,終於蹲到了 Shane Wighton 的「萬聖節特輯」:利用機器人,在南瓜上實現精細雕刻。先來感受一下。
  • 你肯定想不到,小時候玩的《三維彈球》,居然可以打通關
    與另外四款遊戲相比,《三維彈球》的光效與聲效仿佛讓人環遊太空,同時具備技巧性與隨機性的遊戲過程讓人隨時保持緊張,如果你兼具運氣與實力,能夠坐在電腦前彈一整天彈珠而不覺疲憊。但當時年齡尚小的80、90後們,只把《三維彈球》當做休閒小遊戲來玩,大部分人直到現在都不知道,《三維彈球》只是微軟內置在作業系統中的一個試玩版demo,並不是完整版遊戲。
  • WinXP當年捆綁的《三維彈球》,其實在Win95裡就有了
    微軟從Windows Vista開始就不再捆綁《三維彈球》,許多人以為是類似版權到期等原因所致,但真正的原因簡單粗暴:程序搞不定!在移植過程中,Raymond發現《三維彈球》在64位系統上的碰撞判斷失效了,看上去就是彈球失去了與周圍物體的物理關係。
  • 世界十大工具機數控系統生產企業
    基於強大的功能組件的支持,發格數控系統可裝備任何要求苛刻的工具機設備,可以為高端加工中心和高端車削中心提供完整的工控解決方案。對話式編程功能專門解決小批量工件編程問題、高速高精功能、納米級解析度控制可凸顯工具機的高技術含量、專用功能或特殊應用功能,如雷射切割工具機專用功能。
  • 數控工具機普及的今天,傳統工具機還有優勢嗎?
    如今市場上似乎已經看不到傳統工具機的身影,基本都被數控工具機所替代,很多傳統工具機都已進入博物館,或成為象徵性的一種物件。隨著時間的齒輪不停轉動,傳統工具機會在將來被完全淘汰嗎?工具機距今已有幾百年發展歷史,在這樣一個新舊更換的歲月中,不斷有工具機被時代所淘汰。
  • 線切割工具機代理仁光數控
    線切割工具機代理,聚划算的線切割工具機哪裡有賣的?仁光數控是一家專業從事線切割機工具機生產銷售的有限責任公司。集研發、生產、銷售、服務於一體。產品應用領域廣泛,在線切割工具機行業領域有較大的市場,獲得了眾多用戶的好評。
  • 飛機結構件數控加工工具機發展方向,國產工具機完美逆襲!!
    點擊數控達人關注我們喲一個高端人群的數控交流黃金平臺,為您提供最便捷的數控資訊,打造數控行業必備平臺。
  • FANUC數控 2018 版最強資料來了
    應用實例法那科PMC梯形圖語言編程說明書發那科機器人編程第10章_碼垛應用FANUC編程指令802D_BPD802D_BPF802d_diafanuc16系統參數說明法那克中文面板PLC入門學習基礎教程masterCAM9.1教程(全)FANUC-PMC使用培訓FANUC維修技巧和資源介紹-V1.0FANUC-0I-MATE-梯形圖狀態診斷與參數設定FANUC數控系統數控加工中心工具機基礎知識FANUC
  • 《微軟模擬飛行器(2020)》前瞻:一款極其逼真的飛行模擬遊戲
    自上一代作品《微軟模擬飛行 X》2006 年面世以來,系列收穫了大量忠實粉絲。14 年後,在大家的千呼萬喚下,最新作品《微軟模擬飛行器(2020)》終於面世。根據 IGN 編輯在宣發活動現場的試玩與採訪,本作應用了諸多高科技元素,意圖為飛行遊戲愛好者還原最「真實」的體驗。
  • 以設計軟體起家的三維家,如何打通家居產業鏈?
    其中,三維家從營銷、設計、生產、交付等前後端切入,為家居企業提供數位化服務模式。比如依靠雲計算、大數據和人工智慧等多項核心技術打造家居工業網際網路平臺,通過以「3D雲設計+3D雲製造+數控系統」為核心的SaaS軟體矩陣,使家居從設計到生產達到高效協同狀態。
  • 以設計軟體起家的三維家 如何打通家居產業鏈?
    其中,三維家從營銷、設計、生產、交付等前後端切入,為家居企業提供數位化服務模式。比如依靠雲計算、大數據和人工智慧等多項核心技術打造家居工業網際網路平臺,通過以「3D雲設計+3D雲製造+數控系統」為核心的SaaS軟體矩陣,使家居從設計到生產達到高效協同狀態。
  • 淮北環刀異形數控海綿切割機的使用發展
    淮北環刀異形數控海綿切割機的使用發展 ,「tligr」 淮北環刀異形數控海綿切割機的使用發展後。檢查各個主部件的螺絲有沒有鬆動,各個主動軸轉動是否靈活。年,工具機工業行業銷產值同比增長%,其口增長佔,同比增長%。
  • 《星球大戰彈珠》7.5分:「星戰」版的《三維彈球》|3DM評測
    《星球大戰彈珠》大致的玩法就像「星戰」版的《三維彈球》。基礎都是發射彈珠,彈珠進入遊戲臺內撞擊相應部位得分。
  • 普通二軸數控車床加工端面桃心宏程序,果然有料
    如果不支持宏程序的工具機就使用調用子程序方法加工吧,切削力比較大,建議裝夾一定要牢固!!!點擊免費領取數控車(銑),ug編程,cad繪圖,數控仿真,數控機械類書籍等上10G教程下面附帶子程序一個,主程序自己編吧G0 W-0.1M3 S20G32 X31.5 F100X25.61 F106.02X23.22 F43.02X22.22
  • 桐城市數控磨床報價優惠從優
    桐城市數控磨床報價優惠從優廣東協眾智能科技有限公司,專業從事高端工具機設備服務與銷售二十多年,由於業務往來需要,2016年3月公司正式註冊為廣東協眾智能科技有限公司,註冊資金為1000萬。
  • 三維彈球真好玩! 《閃亂神樂:桃球》PC版已發售
    三維彈球真好玩!《閃亂神樂:桃球》PC版已發售 時間:2019-08-15 19:48:42
  • 三圍ug五軸編程培訓【收費低不一定蕞好】
    於一部分人來說既想提升一下UG四五軸編程的技術,又不想放棄工作,你可以來深圳桌越培訓中心,本培訓秉承以學員就業為前提,講究培訓質量,業餘學可以工作學兩不誤。數控工具機的定位精度是指所測量的工具機運動部件在數控系統控制下運動所能達到的位置精度,是數控工具機有別於普通工具機的一項重要精度,它與工具機的幾何精度共同對工具機切削精度產生重要的影響,尤其對孔隙加工中的孔距誤差具有決定性的影響。一臺數控工具機可以從它所能達到的定位精度判出它的加工精度,所以對數控工具機的定位精度進行檢測和補償是保證加工質量的必要途徑。
  • 三維家4.0新技術重磅發布 大數據+人工智慧助推家居產業再升級
    三維家3D圖形軟體產品專家曹健第二項重磅技術是藍圖節點建模技術。過去,家居產品模型入庫需要通過代碼建模,技術需求高且費時。現在,通過三維家的藍圖節點建模技術,入庫操作人員無需學習編程,只需了解產品工藝結構,即可通過"產品建模藍圖"以玩樂高一樣的方式完成設計建模,入庫建模效率提升10倍以上。軟體"真正國產化"加速產業智造發展過去,家居製造業大多依賴人工,單人單機的操作方式,成本高卻效率低下。