一年砌出 152 掣太空船駕駛艙:ESP32-S3 點樣撐起成套控制台
3C 產品

一年砌出 152 掣太空船駕駛艙:ESP32-S3 點樣撐起成套控制台

圖片:via XDA Developers — https://www.xda-developers.com/someone-spent-a-year-building-a-sci-fi-starship-simulator-with-152-physical-controls-using-esp32-s3s/
TechLab 編輯部(譯)·

Enigma 將按鈕、燈號、畫面同遊戲狀態拆開管理

成個太空船駕駛艙由零開始砌

Mad Goat Labs 創作者 Kevin Kelm 用咗一年,砌出一套名叫 Halcyon Dawn 嘅太空船駕駛艙。創作者公開嘅數字包括 152 個實體控制、6 個畫面同約 16.4 萬行程式碼;控制台分成 9 個主要區域,涵蓋引擎、武器、能源、維生、護盾、維修同跳躍航行。成件作品睇落似重型街機,但實際規模已經接近一套專用模擬器。

主畫面係 28 吋 4K OLED,由內置 M1 Mac mini 跑 Python 模擬核心同 Unity 畫面;另外 5 個輔助畫面就由 Raspberry Pi 5 經 WebSocket 接收狀態,再用 HTML/WebGL 顯示。即係每個畫面唔使塞晒成套遊戲邏輯,只訂閱自己用得着嘅數值。控制、顯示同運算分開之後,增加新面板或者搬走一個畫面都冇咁容易牽一髮動全身。

一年砌出 152 掣太空船駕駛艙:ESP32-S3 點樣撐起成套控制台

圖片:Wikimedia Commons — Ubahnverleih(CC0)

ESP32-S3 負責收掣,亦幫主機減壓

152 個掣、旋鈕、腳掣同搖桿如果全部直接駁去主機,接線、識別裝置同同步燈號都會幾混亂。Kelm 為此設計咗 Enigma 控制板系列,而家公開嘅成品有三款:SW14 管 14 路開關同 RGB 指示燈、QD04 管 4 組旋轉編碼器、AN08 管 8 路模擬輸入。部分控制面板入面會同時裝最多 3 塊 Enigma 板,再合併成一個邏輯面板畀遊戲讀取。

ESP32-S3 本身有原生 USB device 支援,可以扮成 HID 或使用自訂 USB 類別。Enigma 就借呢個能力,同 Mac mini 雙向交換控制狀態;按鈕旁邊嘅燈效、閃爍節奏同部分互斥邏輯會留喺控制板本身處理,唔使主機逐幀落指令。對大型控制台嚟講,呢個分工幾實際:USB 負責傳有意義嘅狀態變化,微控制器就處理貼近硬件、講求即時反應嘅工作。

不過 Enigma 所講嘅 HID 有個重要註腳。repo 寫明,幾款板只係借用 HID 傳輸框架,實際全程用 vendor report,插落其他遊戲唔會自動認成鍵盤或者手掣。想改成飛行模擬器控制器,要自己處理 host library、設定檔同映射,或者重寫 firmware 跟標準 gamepad report。佢係一套完整工程參考,唔係即買即用嘅 USB 控制板。

Python library 點樣串連成套系統

Enigma 嘅 Python library 用三層 JSON 設定描述硬件面板、共用遊戲狀態同各個顯示器,再產生相應 Python class。按鈕改變一個狀態後,畫面、音效同其他面板都係讀同一份「Spec Vars」,唔使互相直接傳值。library 亦包埋多層音效混音、語音提示優先次序、震動輸出,同經 WebSocket 發送畫面資料,已經由普通 GPIO wrapper 行到小型互動裝置框架級數。

呢種設計對密室機關、模擬器、展覽裝置同 STEM 控制台都有參考價值。你未必會照抄成套太空船,但可以抽出一塊 SW14 做發光掣板,再用同一套狀態模型接瀏覽器畫面。代價係項目只喺 Apple Silicon、macOS Tahoe 測過,作者亦表明 repo 以公開參考為主,冇維護同技術支援承諾。真係攞嚟長期運作,最好先 fork,再自行補測試同故障復原。

開源底層,同人遊戲就留喺作者屋企

公開範圍分得幾清楚:Python library 同 firmware 用 MIT License,PCB 設計用 CERN-OHL-S-2.0,連 EasyEDA Pro 工程檔、Gerber、BOM 同部分機械檔案都有提供。Halcyon Dawn 遊戲本體就唔會公開。佢建基於 John Scalzi 嘅《Old Man’s War》世界觀,而 Scalzi 公開嘅同人政策只接受非商業玩法,亦保留原作全部權利;創作者仲話成套遊戲綁死呢個昂貴機架,自己都唔會再砌第二套。

152 個實體控制固然搶眼,而 Enigma 呢套開源骨架亦值得其他 maker 參考:佢已經串好 USB 控制板、狀態同步、網上畫面、音效同震動。想整密室機關或者自製飛行控制台,可以由 Enigma 嘅設計取經;想直接下載 Halcyon Dawn 開玩,就冇呢回事。


參考來源

本文根據原文及公開資料整理;資料有出入時,以原文及官方資料為準。

分享:WhatsAppThreadsTelegramFacebook