Atalaia

本頁由 AI 模型翻譯,尚未經過審閱。你用中文玩生存遊戲嗎?歡迎協助審閱:請見 GitHub 儲存庫的 docs/translations。

組裝指南

Atalaia 的道具是用現成零件圍繞著一塊 ESP32 開發板組裝而成,不需要訂製電路板。這一頁有 Field Box 的腳位表和接線圖,以及衛星盒、I/O 模組和標靶擴充模組的精簡版指南;完整指南附有每一項檢查和故障排除表,放在程式庫中(英文)。要把韌體燒進板子,可以下載已發佈的版本或自行編譯:韌體指南(英文)兩種方式都有說明。場地控制器另有安裝指南(英文)。數據機另有專屬的無線電數據機指南(英文)。

不確定什麼接什麼?看看各部分如何互相溝通 →

目前還沒有人照這些指南組裝出盒子,Field Box 也還沒有外殼。只有一個用散線連接、能玩遊戲的Field Box 工作台組裝。指南中的腳位會自動和韌體核對,但每一個實體步驟(外殼、電源、續航時間、無線電距離)都還沒測試過,其他盒子的照片要等它們的第一批成品才會有。如果你做了一個,請告訴我們你發現了什麼。

安全第一

這些規則適用於本頁的每一種組裝,和 Field Box 一樣。

  • 開發板沒接 LoRa 天線時絕對不要通電,即使是 USB 供電也不行:對著空的天線接頭發射,可能會燒毀無線電的放大器。先把兩根天線都裝上,而且不要拆下來。
  • 只能串接一顆鋰電池芯(1S,3.0–4.2 V):使用有保護板的電芯、在電芯附近加保險絲,並加一顆二極體防止電芯裝反。開發板的電池插座和充電器只接受一顆電芯;2S 電池組會把它們燒壞。每次接線前都用電錶確認極性:小型電池插頭沒有統一的極性標準。
  • 充電時要有人看著,絕不在密閉的盒子裡充電,只在約 0 到 45 °C 之間充電;作業時把電芯放在防火袋裡,而且電芯要從盒子裡拿出來。有凹痕、膨脹、發燙或電壓低於 2.5 V 的電芯絕對不要用。
  • 只能把 3.3 V 訊號接進開發板:LED 燈環要經過電位轉換器驅動,每個 I2C 模組都必須把訊號線上拉到 3.3 V,絕不能是 5 V。
  • 絕對不要接 GPIO 5 或 46(無線電的前端),也不要接 GPIO 34 或 38–42(開發板的 GPS 接頭)。
  • 完成發射功率檢查之前不要開始遊戲,這是啟用清單中的一項:韌體依據一個還沒實測過的放大器增益,把無線電維持在法定限制內。
  • 用塑膠盒,絕不用金屬盒(無線電訊號要出得去),要防水,顏色鮮豔,貼上「GAME PROP」標籤,而且不能有任何看起來像爆裂物的東西。
  • BB 彈和漆彈會打到它。電芯和開發板要遠離外殼壁、避開射擊線,手機螢幕要放在透明聚碳酸酯板後面(絕不能用玻璃),除非它本身就是標靶,否則絕不要把盒子放在玩家必須朝它射擊的位置。

Field Box

主要的道具,有隊伍按鈕、按鍵、彩色螢幕、LED 燈環、NFC 讀卡機和喇叭。它的組裝手冊(英文)包含零件、接線圖、電源與電池安全、第一次燒錄和故障排除;下面的指南凡是共通的步驟都參照它。

第一個工作台組裝

Field Box 現在不只存在於紙上,但目前只是工作台上的組裝:第一塊能玩完整場遊戲的開發板,螢幕、按鈕和按鍵都用散線連接,還沒有外殼。它不是成品,也不是照指南組裝出來的盒子。

工作台組裝的照片:一塊 Heltec V4 開發板和它的小 OLED 螢幕,用許多彩色線連到一個顯示「READY」和「Next game」的 2.8 吋 TFT 螢幕、一個 12 鍵(4×3)薄膜按鍵,以及四個綠色、藍色和黑色按鍵帽的按鈕。一切都散放在桌上,後面是一個電腦鍵盤。
工作台上的第一個 Field Box,2026 年 10 月 31 日:一塊 Heltec V4 開發板、2.8 吋 TFT(ILI9341)、開發板自己的 OLED、4×3 按鍵和隊伍按鈕,用散線連接,沒有外殼。它是第一塊玩了遊戲的開發板,是工作台上的組裝,不是完成的盒子。
同一個工作台組裝換上新 TFT 螢幕後的照片:螢幕顯示「PRONTA」(就緒)、Atalaia 標誌的黃色塔樓和「Próximo jogo」(下一場遊戲),下方是「Uma tecla: escolher jogo aqui」(按一個鍵:在這裡選遊戲)。左邊是 Heltec V4 開發板和它的 OLED,同樣顯示「Próximo jogo」;右邊是一個綠色按鈕。桌上到處是散線。
同一個組裝,2026 年 11 月 1 日,換上新的 TFT 螢幕:螢幕顯示「PRONTA / Próximo jogo」(就緒/下一場遊戲)和 Atalaia 的黃色塔樓,等待開始遊戲。仍是工作台上的組裝,沒有外殼。
同一個組裝用工作台上的控制器玩佔點模式(2026 年 11 月 1 日):進度條填滿,區域從紅隊換成藍隊,佔領時間累計,各隊分數顯示在角落。十一秒循環,沒有聲音;螢幕上是葡萄牙語。

腳位

韌體的預設值。不在這張表中的開發板腳位一律不接。

用途GPIO
隊伍按鈕 1(遊戲的第一隊)4
隊伍按鈕 2(第二隊)48
隊伍按鈕 3,選用(開發板的 UART0 接收線)44
隊伍按鈕 4(在按鍵擴充晶片上)PCF8574 P7
按鍵,經由 PCF8574 擴充晶片(位址 0x20)PCF8574 P0–P6
LED 燈環資料線,經過 74AHCT125 電位轉換器35
螢幕 MOSI(SPI)33
螢幕時脈(SCK)47
螢幕晶片選擇(CS;開發板的電池電壓腳位,當作輸出使用)1
螢幕資料/指令(DC)3
螢幕 RESET 和背光:兩者都接 3V3 腳位,不用 GPIO3V3
I2C SDA,給按鍵擴充晶片、NFC 讀卡機和電量計用(開發板自己的匯流排)17
I2C SCL18
擴大器 BCLK(選用)6
擴大器 LRC15
擴大器 DIN16

GPIO 1、35 和 44 是 Field Box 刻意共用的開發板腳位,各自只用於這一個用途:1 是開發板的電池電壓輸入(電量計改由 I2C 讀取電池),35 是它的白色 LED(會隨燈環微微閃爍),44 是 UART0 的接收線(USB 主控台不受影響)。

接線圖

兩張圖,由程式庫中的 WireViz 檔案產生:一張是訊號和 3.3 V 邏輯電源,一張是電池、開關和 5 V 電源線。開發板的腳位只用 GPIO 編號稱呼:請依接頭旁印的編號找到每一支腳位。標示(腳位、電線、零件名稱)在所有語言中都維持英文,和程式庫一致;如果文字和圖不一致,以圖為準。

接線圖 1/2,訊號和 3.3 V 電源:主開發板的 GPIO 腳位經由轉接板,接到螢幕、隊伍按鈕、按鍵和它的 PCF8574 擴充晶片、NFC 讀卡機、電量計、擴大器和喇叭、LED 燈環,以及天線。
接線圖 1/2:訊號和 3.3 V 邏輯電源。 開啟完整尺寸的接線圖(SVG)
接線圖 2/2,電池和 5 V 電源:電池芯、保險絲、總開關、防反接二極體和接線端子,供電給主開發板的電池插座,並經由升壓轉換器供應 LED 燈環、擴大器和轉接板的 5 V 電源線。
接線圖 2/2:電池、總開關和 5 V 電源線。 開啟完整尺寸的接線圖(SVG)

這張圖很寬:點一下就能以完整尺寸開啟,可以縮放和平移。深色主題下也放在白色底板上,讓電線顏色保持真實。

衛星盒

用在次要據點或信標的小盒子:Field Box 的開發板加上兩個大的隊伍按鈕(可以再加第三個)、一個顯示佔領隊伍的 LED 燈環、開發板自己的小螢幕,以及一顆 18650 電芯。零件約 30–40 歐元(設計時的估計)。它執行的是 Field Box 自己的韌體,只是裝的零件比較少:韌體在開機時會把每個缺少的零件回報一次,然後繼續運作。

沒有按鍵,它沒辦法自己選遊戲:它玩的是場地控制器邀請它加入的遊戲,當作主站與衛星的衛星或主站,或當作任何只需要隊伍按鈕的模式(佔點、全佔點、最後一人)的據點。它透過 USB 線或小螢幕上的配對代碼加入場地(它沒有可以讀場地卡的 NFC 讀卡機)。

零件

  • Heltec WiFi LoRa 32 V4 開發板,V4.2 或 V4.3 版,863–928 MHz,不含外殼。
  • 一根 2 dBi 以下的 868 MHz 天線(開發板套件附的那根),以及一根 2.4 GHz 天線,這是必要的:第一次設定、下載模式和韌體更新都要用 Wi-Fi。
  • 兩個(或三個)附 5 V LED 的 60 mm 大型街機按鈕。
  • 一個 WS2812B LED 燈環(預設 24 顆 LED;改一個韌體設定就能用 12 或 16 顆),搭配 74AHCT125 電位轉換器、一顆 330 Ω 電阻和一顆 1000 µF 電容,焊在一小塊洞洞板上。
  • 建議加一顆 MAX17048 電量計:沒有它,盒子永遠不知道自己的電量。
  • 一顆裝在電池座裡、有保護板的 18650 電芯(或一組附保護板的 1S 電池組)、一個 5 A 保險絲、一顆蕭特基二極體、一個有護蓋的主開關、一個給燈環用的 5 V 升壓模組,以及快速接線端子:也就是只用一顆電芯的 Field Box 電源線路。
  • 聲音是選用的:Field Box 的 MAX98357A 擴大器和一個小喇叭。
  • 一個顏色鮮豔的 IP65 塑膠盒,有透氣孔和電纜固定頭,貼上「GAME PROP」標籤。

腳位

韌體的預設值。不在這張表中的開發板腳位一律不接。

用途GPIO
隊伍按鈕 1(遊戲的第一隊)4
隊伍按鈕 2(第二隊)48
隊伍按鈕 3,選用(開發板的 UART0 接收線)44
LED 燈環資料線,經過 74AHCT125 電位轉換器35
I2C SDA,給電量計用(開發板自己的匯流排)17
I2C SCL18
擴大器 BCLK(選用)6
擴大器 LRC15
擴大器 DIN16

韌體仍然會驅動 Field Box 的螢幕腳位(GPIO 1、3、33 和 47):這些腳位不要接。

它的接線是 Field Box 的子集:照著 Field Box 的接線圖接,省略這個版本沒有的零件(彩色螢幕、按鍵和 NFC 讀卡機)。它自己的接線圖還沒有畫。

步驟

  1. 看開發板 LoRa 天線接頭旁邊的晶片:KCT8103L 是 V4.3(韌體的預設值),GC1109 是 V4.2。在開發板第一次通電之前,就把兩根天線裝好並貼上標籤。
  2. 先在紙上規劃盒子,在放進任何電子零件之前把所有孔都鑽好:按鈕和燈環在蓋子上,開關要內嵌或加蓋,透氣孔開在下方。
  3. 先在不接開發板的情況下做好電源線路:電芯、保險絲、二極體、開關、接線端子;在接上任何東西之前,先單獨把升壓模組調到 5.0–5.2 V。
  4. 做那塊小小的轉接板:3V3、GND 和 5V 電源軌(以及給電量計用的 SDA 和 SCL)和電位轉換器,照 Field Box 手冊的做法。
  5. 依照上面的腳位,接好按鈕(按下時接 GND)、經電位轉換器的燈環、電量計,以及選用的擴大器。
  6. 拔掉電芯,用電錶檢查:電源軌之間沒有短路,每個按鈕只在按下時導通,以及開發板電池線的極性。
  7. 依照 Field Box 手冊的說明建置並燒錄 Field Box 韌體,設定成你的開發板版本和燈環的 LED 數量。
  8. 執行適用於衛星盒的啟用步驟:開機、按鈕、LED、電池,以及在任何遊戲之前檢查無線電和它的發射功率。
  9. 用手機在它的 Wi-Fi 設定頁面設定名稱、地區和管理 PIN 碼,透過 USB 線或配對代碼把它綁定到你的場地,再從 GM 控制台邀請它加入遊戲。
照片待補,第一次組裝完成後提供: 完成的衛星盒,內部和外觀。

尚未決定

  • 原始設計中的壓電蜂鳴器:韌體只透過擴大器發出聲音,所以蜂鳴器需要修改韌體。
  • 外殼:還沒選定盒子。
  • 一顆電芯的續航時間:還沒量測。
  • 專屬的接線圖:目前 Field Box 的接線圖已經涵蓋衛星盒的每一條線。

完整指南:衛星盒組裝指南(英文)。

I/O 模組

這個盒子把手機缺少的東西借給 Android 道具:大的隊伍按鈕、按鍵、LED 燈環、聲音、NFC 讀卡機、一個偵測盒子被打開的開關,以及 LoRa 無線電。手機執行遊戲模式;I/O 模組透過 USB 線或藍牙,當它的手和它的無線電。它就是沒有彩色螢幕的 Field Box 硬體,執行 I/O 模組韌體,這個韌體已在電腦上測試過,但還沒在開發板上跑過。零件約 35 歐元(設計時的估計)。

除了開發板以外,每個零件都是選用的:I/O 模組會告訴手機自己有什麼,手機就只用那些。和 Field Box 一樣,按鈕 1 是遊戲的第一隊。外殼被打開時,GM 控制台會收到防拆警報。

零件

  • Field Box 的零件,少了螢幕:開發板、按鈕(最多四個)、按鍵和它的 PCF8574 擴充晶片、附電位轉換器的 LED 燈環、PN532 NFC 讀卡機、擴大器和喇叭、電量計,以及同樣只用一顆電芯的電源線路。
  • 兩根天線:LoRa,以及給藍牙用的 2.4 GHz。
  • 一個由蓋子蓋上時壓住的微動開關:也就是外殼開關。
  • 一個面板式 USB-C 插座,要有資料線(不能只能充電),接手機的線用;以及一條給手機用的 USB-C OTG 線。
  • 只在工作台上用:一個 3.3 V USB 轉序列埠轉接器,用來讀 I/O 模組的紀錄。

腳位

韌體的預設值。不在這張表中的開發板腳位一律不接。

用途GPIO
隊伍按鈕 1(遊戲的第一隊)4
隊伍按鈕 2(第二隊)48
隊伍按鈕 3,選用(開發板的 UART0 接收線)44
隊伍按鈕 4(在按鍵擴充晶片上)PCF8574 P7
LED 燈環資料線,經過 74AHCT125 電位轉換器35
I2C SDA,給按鍵擴充晶片、NFC 讀卡機和電量計用(開發板自己的匯流排)17
I2C SCL18
擴大器 BCLK(選用)6
擴大器 LRC15
擴大器 DIN16
外殼開關,接 GND47
紀錄輸出(UART0 TX):只接 3.3 V USB 轉序列埠轉接器的 RX,限工作台上使用43

I/O 模組不使用 Field Box 其他的螢幕腳位(GPIO 1、3 和 33):這些腳位不要接。

I/O 模組的接線就是沒有螢幕的 Field Box:照著 Field Box 的接線圖接,省略螢幕和它的線。它自己的接線圖還沒有畫。

步驟

  1. 把它當成沒有螢幕的 Field Box 來組裝:開發板版本、天線、外殼、電源線路、轉接板,再加上你要裝的按鍵、燈環、NFC 讀卡機、按鈕和擴大器,每一項都照手冊做檢查。
  2. 把微動開關裝在蓋子蓋上時會壓到的位置,從 GPIO 47 接到 GND。I/O 模組要先讀到一次「關閉」之後才會開始監看它,所以沒裝開關的 I/O 模組永遠不會發出警報。
  3. 建置 I/O 模組韌體(python tools/docker_fw.py pod),並從 build-pod 資料夾燒錄,做法和 Field Box 一樣。
  4. 用 USB 轉序列埠轉接器從 GPIO 43 讀它的紀錄:USB-C 埠負責 I/O 模組和手機之間的連線,不輸出紀錄。
  5. 在 App 中先用 USB-C OTG 線連結它,再用藍牙連結(Android 會要求配對一次)。
  6. 執行 I/O 模組的啟用檢查,包括在任何遊戲之前檢查無線電的發射功率。
照片待補,第一次組裝完成後提供: 完成的 I/O 模組,附外殼開關,以及和它連結的手機。

尚未決定

  • 獨立的警報器或閃光燈:I/O 模組的聲音來自它的擴大器;開關其他負載不在它的韌體功能中。
  • 由手機供電:接上線時,手機會供電給 I/O 模組,也可能替它的電芯充電。是否應該這樣、手機能提供多少電,要在第一次組裝時確認。
  • 外殼,以及手機和 I/O 模組要怎麼一起攜帶。
  • 從手機調整設定:按鈕顏色、LED 數量和其他設定,目前都在建置韌體時設定。

完整指南:I/O 模組組裝指南(英文),以及啟用清單中搭配手機的 I/O 模組檢查。

無線電數據機

場地控制器的無線電:第二塊 Heltec WiFi LoRa 32 V4,燒錄數據機映像檔後插在場地控制器的 USB 埠。沒有它,控制器仍會運作、控制台也打得開,但訊息到不了盒子,也聽不到盒子的訊息。它沒有 Wi-Fi,所以只需要 LoRa 天線。

照這樣燒錄的數據機,已在工作台上和控制器及真實盒子一起運作過(一台電腦,控制器跑在 Docker 裡)。尚未在 Raspberry Pi 上跑過,也沒在 macOS 上試過,更沒在場地上用過。

步驟

  1. 在板子通電之前先裝好 LoRa 天線,燒錄時也一樣,並使用 USB-C 資料線。先決定無線電區域:數據機和盒子必須相同。
  2. 從發佈頁面下載 atalaia-modem-<版本>-usb.zip 和 SHA256SUMS(V4.3、EU868),或自行編譯:python tools/docker_fw.py modem(V4.2、台灣、其他天線)。
  3. 用 esptool 4.8.1 清除新板子,再寫入 flash_args 列出的檔案:esptool --chip esp32s3 -p PORT write_flash "@flash_args",Windows 的埠是 COM5,Linux 是 /dev/ttyACM0,macOS 是 /dev/cu.usbmodem…。在 Linux 上要先加入 dialout 群組。
  4. 板子的螢幕會顯示塔和 MODEM MODE,接著是 LINK waiting(等待)。這表示數據機正常,只是還沒有控制器。RADIO FAULT 表示無線電晶片沒有啟動。
  5. 把它插到控制器,找出它的埠(ls /dev/ttyACM*),填入 /etc/atalaia/controller.toml 的 [modem] port,然後重新啟動服務(sudo systemctl restart atalaia-controller)。
  6. 螢幕顯示 LINK OK(正常),控制台標頭顯示「無線電: 正常」,控制器的記錄裡有 modem link up。
  7. 打開一個已綁定的盒子,建立遊戲並邀請該盒子:狀態會依序是傳送中、已邀請、已加入,數據機的螢幕會累計封包數。

每個系統的完整指令、如何找到埠,以及故障排除表(只能充電的線、埠錯誤、埠被其他程式佔用、dialout、區域不符、LINK waiting 或 DOWN、RADIO FAULT、分割表錯誤):Set up the radio modem(英文)。

標靶擴充模組

還不能組裝:盒子這一端的接頭已經決定,擴充模組本身還沒有。不要照這一頁把靶板接到盒子上。

一塊讓玩家射擊的靶板,有一個感應每次命中的感測器。它插到盒子上,就能把盒子變成標靶時窗的計分標靶;標靶時窗的規則已完成並在模擬器中測試過。時窗由盒子自己的燈環顯示。

已經決定的

  • 一塊鋼板或聚碳酸酯板、一個壓電感測器,以及一顆自己的小處理器(RP2040 或 ATtiny 等級)用來偵測命中。零件約 20–30 歐元(設計時的估計)。
  • 它插在盒子上一個防水的 5 針 M12 接頭,這個接頭只帶 3.3 V:開發板的 3.3 V、接地和兩條 I2C 線;沒有 5 V,第五針不接。線長最多 2 m。它的處理器會告訴盒子自己是什麼,所以盒子不需要為每種擴充模組加新的驅動程式。
  • 它最多只能從盒子取用 25 mA,中間經過一個可自恢復保險絲:夠處理器和感測器用,但不夠點燈。標靶時窗點亮的是盒子自己的 LED 燈環;擴充模組如果要有自己的燈,就需要自己的電池。
  • 沒有中斷線:盒子每 20 ms 透過 I2C 讀取一次擴充模組,大約占匯流排的 3%,所以命中最多約 21 ms 就會傳到遊戲。盒子的腳位都不用改。盒子的韌體已經有這個讀取功能,也測試過,正等著擴充模組。
  • 遊戲腳本會看到每次命中和它的力道(0 到 255),也可以啟動和解除標靶。手機的 I/O 模組也定義了同樣的功能。
  • 標靶時窗會讓標靶亮起隨機一隊的顏色幾秒鐘;在這段時間內力道夠強的命中,就替那一隊得分。
  • 接下來是擴充模組自己的韌體、讓盒子實際讀取這個接頭,以及在真正的鋼板和聚碳酸酯板上調校感測器;之後標靶時窗就會成為盒子提供的模式。

尚未決定

  1. 處理器(RP2040 或 ATtiny,耗電在 25 mA 以內)和它的韌體。
  2. 擴充模組的 I2C 位址,以及它如何說明自己是什麼;回報命中的方式已有草案,會在第一個擴充模組完成時定案。
  3. 第一次組裝時要檢查的事:接上 2 m 線材後匯流排的上拉電阻、保險絲,以及接頭防靜電和防水的保護。
  4. 感測器電路和它的安裝方式,以及靶板、靶架和角度。

等到真的有東西可以做的時候,安全事項

  • 護目鏡和面罩:有人朝它射擊時,射程內的每個人都要戴,在工作台上也一樣。
  • BB 彈打到硬靶板會反彈,有些會彈回來:鋼板要斜放,讓 BB 彈往地面彈,絕不能正面對著射手。
  • 只有靶板是標靶:絕不要射盒子、線材或接頭,電子零件要放在靶板後面或它們自己的外殼裡。
  • 射擊標靶和射擊玩家一樣,都要遵守場地的能量限制。
照片待補,第一次組裝完成後提供: 完成的標靶:靶板和感測器,以及盒子上的接頭。

已經決定的事項,以及每個決定背後的文件:標靶擴充模組指南(英文)。