把遊戲機塞進電視天線插頭:
插上舊電視,就能玩 Doom
一名開發者用 ESP32-S3 自製家用遊戲機,畫面和聲音都由晶片自己「廣播」到電視的天線插口。
遊戲機要多細,才算細?網誌作者 RayTriangle 的答案是:細到塞得進一個 9.5mm 電視天線插頭。插頭接上舊電視的天線插口,再連一個 Xbox 手掣,就能玩 Doom。
這個項目 8 月初寫成網誌,10 月 9 日被貼上 Hacker News 的 Show HN 欄目。作者把網誌題為「製作世界上最細小的遊戲機」,又說這個標題帶點挑戰意味:讀完的人,也許會想到做得更細的方法。
先定規矩THE RULES
他先為「遊戲機」定了幾條規矩:要有畫面輸出,要有人手輸入,最好有聲音。手掣大小不計,因為一般人說遊戲機有多大,也不會把手掣算進去。最後加一條:要能玩 Doom。
晶片選了 ESP32-S3。它便宜、運算力夠、可以用電池,內置的藍牙低功耗(BLE)剛好能連接新款 Xbox 手掣。
本來想塞進 RCA 插頭PLAN A
最初的構想更細:整部機塞進一個 RCA 插頭,輸出複合視訊(composite)。問題有兩個。RCA 接口不供電,要靠電池;能放進插頭的鋰電池,例如無線耳機用的 8.5mm 直徑電池,容量太少,也供不起開着藍牙時約 120mA 的電流。複合視訊亦不帶聲音。
於是他改走更舊的路:在插頭裏自製射頻調變器,直接接電視的天線插口。PAL 制式本來就規定了怎樣把 FM 聲音疊在畫面訊號上。
用晶片「廣播」RADIO
ESP32-S3 沒有夠快的數模轉換器,他就用電阻自己砌一個,再把原本用來推動 LCD 屏幕的 RGB 輸出,改作逐行送出 PAL 訊號;色彩副載波和色同步,全部先用軟件算好。第一版只用 4 粒電阻,只有 16 級電壓,已經可以玩 Doom,但顏色粗糙;成品改用 8-bit R-2R 電阻網絡。
載波方面,他把 240MHz 系統時鐘除以 5,得出 48MHz,接近 PAL B/G 第 2 頻道的 48.25MHz。聲音則由 I²S 介面送出一串預先算好的位元圖案,湊出 FM 聲音副載波所需的頻率。他承認聲音頗嘈,還會滲進畫面。
插頭的金屬外殼兼作屏蔽。他在網誌中解釋,訊號的二次諧波正好落在 FM 電台頻段,他不想因為播 Doom 的聲音干擾別人的收音機,惹來當局上門。
最麻煩的是焊接ASSEMBLY
為了用盡插頭內的空間,他做了兩塊電路板,中間用軟排線(FPC)相連。這是他第一次設計軟板,組裝成了整個項目最煩人的部分,試接時扯斷了好幾條線路。他事後認為,電源線路畫得比其他線路粗得多,銅箔分佈不平均,令板與板之間很難焊接。
藍牙天線是一段剪到合適長度的單芯電線,伸出插頭外。全部電路圖和程式已放上 GitHub。
文:踢踢編




