成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

微軟放棄的游戲被復活:三維彈球現實版,用Arduino硬核致敬童年

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

 本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯系出處。

20年前,電腦還是大背頭的,「休閑小游戲」是屬于Windows的。

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

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

微軟放棄的游戲被復活:三維彈球現實版,用Arduino硬核致敬童年

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

正如其中一位小哥說的:

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

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

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

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

微軟放棄的游戲被復活:三維彈球現實版,用Arduino硬核致敬童年

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

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

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

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

模型是這樣的:

微軟放棄的游戲被復活:三維彈球現實版,用Arduino硬核致敬童年

實物長這樣:

微軟放棄的游戲被復活:三維彈球現實版,用Arduino硬核致敬童年

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

嗯,有內味道了。

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

微軟放棄的游戲被復活:三維彈球現實版,用Arduino硬核致敬童年

再來看下近距離視角。

微軟放棄的游戲被復活:三維彈球現實版,用Arduino硬核致敬童年

簡直一摸一樣有木有!

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

微軟放棄的游戲被復活:三維彈球現實版,用Arduino硬核致敬童年

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

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

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

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

用到的工具和材料清單:

數控機床或激光切割機Dremel和砂紙烙鐵3D打印機Linux計算機USB攝像頭

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

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

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

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

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

微軟放棄的游戲被復活:三維彈球現實版,用Arduino硬核致敬童年

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

微軟放棄的游戲被復活:三維彈球現實版,用Arduino硬核致敬童年

一些經驗教訓:

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

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

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

微軟放棄的游戲被復活:三維彈球現實版,用Arduino硬核致敬童年

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

微軟放棄的游戲被復活:三維彈球現實版,用Arduino硬核致敬童年

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

微軟放棄的游戲被復活:三維彈球現實版,用Arduino硬核致敬童年

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

微軟放棄的游戲被復活:三維彈球現實版,用Arduino硬核致敬童年

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

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

Step 3:用數控機床或激光雕刻制作主體

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

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

微軟放棄的游戲被復活:三維彈球現實版,用Arduino硬核致敬童年

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

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

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

微軟放棄的游戲被復活:三維彈球現實版,用Arduino硬核致敬童年

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

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

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

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

微軟放棄的游戲被復活:三維彈球現實版,用Arduino硬核致敬童年

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

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

開關輸入部分:

微軟放棄的游戲被復活:三維彈球現實版,用Arduino硬核致敬童年

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

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

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

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

燈光控制部分:

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

微軟放棄的游戲被復活:三維彈球現實版,用Arduino硬核致敬童年

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

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

微軟放棄的游戲被復活:三維彈球現實版,用Arduino硬核致敬童年

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

電磁控制部分:

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

電路元件清單:

1k電阻10k電阻330電阻IRF44V MOSFET1N4004 二極管47微法電容

微軟放棄的游戲被復活:三維彈球現實版,用Arduino硬核致敬童年
微軟放棄的游戲被復活:三維彈球現實版,用Arduino硬核致敬童年

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

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

這里使RC緩沖器電路和二極管來解決這個問題。要使它們覆蓋盡量多的電磁控制并聯支路。

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

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

Step 6:組裝所有元件

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

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

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

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

Step 7:安裝Arduino軟件驅動

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

ROSrosserial_arduino ROS packageOpenCV (c++)TkinterApscheduler

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

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

微軟放棄的游戲被復活:三維彈球現實版,用Arduino硬核致敬童年

這些節點分別是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。

微軟放棄的游戲被復活:三維彈球現實版,用Arduino硬核致敬童年

此外還需要調整腳本,刪除對開關和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畢業班的四位“造夢者”

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

[[331571]]

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

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

[[331572]]

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

[[331573]]

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

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

[[331574]]

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

Tyler也榮登了學校“光榮榜”。

嗯,是四位非常優秀的“造夢者”了。

那些年,經典的Windows小游戲

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

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

微軟放棄的游戲被復活:三維彈球現實版,用Arduino硬核致敬童年

微軟如今把這些經典游戲放在了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

責任編輯:張燕妮 來源: 量子位
相關推薦

2011-10-31 10:49:46

蘋果收購三維地圖

2024-07-03 13:32:28

2023-08-31 22:09:45

微軟MacIDE

2014-05-19 09:40:48

SDN

2010-09-03 09:28:30

2021-03-16 09:53:35

人工智能機器學習技術

2009-11-10 12:55:26

VB.NET三維模型

2011-12-06 09:38:17

增強現實移動游戲

2009-11-10 12:48:17

VB.NET三維模型

2013-04-17 16:22:53

2023-09-12 11:30:44

自動駕駛技術

2009-04-23 10:41:59

微軟IE瀏覽器

2011-07-15 13:07:15

Windows

2020-03-16 09:25:10

微軟瀏覽器Windows

2015-08-03 14:41:06

微軟IE

2020-09-20 22:04:11

Windows 工具系統

2009-05-08 10:19:11

2021-03-04 08:35:36

Windows 10微軟Edge

2014-08-26 16:04:30

2023-02-27 09:40:47

機器人ChatGPT
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 免费毛片www com cn | av片毛片 | 一区二区日本 | 亚洲精品视频在线播放 | 久久激情视频 | 欧美一区二区三区的 | 亚洲精品一区在线 | 国产欧美一区二区精品久导航 | 亚洲国产精品久久久久婷婷老年 | 久久com | 夜夜爽99久久国产综合精品女不卡 | 国产成人精品一区二区三区四区 | 久久久精品一区 | www.久久久久久久久久久 | 人妖一区 | 国产精品久久久亚洲 | 亚洲一区二区三区四区五区中文 | 亚洲视频一区二区三区四区 | 日本黄色免费片 | 九色 在线 | 黄色网一级片 | 91精品国产综合久久久密闭 | 久久毛片| 精品av天堂毛片久久久借种 | 91国产在线视频在线 | 91网站在线播放 | 性一交一乱一透一a级 | 日韩一级电影免费观看 | 97超碰人人 | 古典武侠第一页久久777 | 日韩影音 | 91麻豆产精品久久久久久 | 国产 日韩 欧美 在线 | av一区二区三区四区 | 中文字幕 国产精品 | 中文字幕高清av | av中文在线 | 久久精品欧美一区二区三区不卡 | 久久久久久亚洲精品 | 欧美一区2区三区4区公司 | 中文字幕电影在线观看 |