国产av一二三区|日本不卡动作网站|黄色天天久久影片|99草成人免费在线视频|AV三级片成人电影在线|成年人aV不卡免费播放|日韩无码成人一级片视频|人人看人人玩开心色AV|人妻系列在线观看|亚洲av无码一区二区三区在线播放

網(wǎng)易首頁 > 網(wǎng)易號(hào) > 正文 申請入駐

復(fù)古游戲掌機(jī)

0
分享至

復(fù)古游戲掌機(jī)

60 多年過去了,盡管輝光管已經(jīng)停產(chǎn),有很多工程師仍然對它情有獨(dú)鐘。我用 8 塊液晶顯示屏制作了一個(gè)擬輝光管時(shí)鐘,感受復(fù)古元素的美感,表達(dá)對過去經(jīng)典的敬意。

這是一款基于ESP32的開源復(fù)古游戲掌機(jī),是很多年前的一個(gè)開源項(xiàng)目,我在開源項(xiàng)目基礎(chǔ)上做了一些優(yōu)化,更改了顯示屏硬件,重新繪制了PCB,對原作者表示感謝!

復(fù)古游戲掌機(jī)使用Arduino IDE編程,游戲文件存放于存儲(chǔ)卡中,支持游戲選擇,理論游戲數(shù)量有很多,可以暢玩很多經(jīng)典游戲,是一款兒時(shí)夢寐以求的指尖游戲機(jī),一秒找回童年記憶。

演示視頻

材料介紹

主控

復(fù)古游戲掌機(jī)主控采用 ESP32-WROVER-E 模 塊( 見 圖 1),ESP32-WROVER-E 采用的芯片是ESP32 系列的 ESP32-D0WD-V3。ESP32-D0WD-V3芯片具有可擴(kuò)展、自適應(yīng)的特點(diǎn)。兩個(gè) CPU 可以被單獨(dú)控制。CPU 時(shí)鐘頻率的調(diào)節(jié)范圍為 80~240 MHz,集成了豐富的外設(shè),包括電容式觸摸傳感器、霍爾傳感器、Micro SD 卡接口、以太網(wǎng) 接 口、 高 速 SPI、UART、I2S和 IPC 等。模塊集成了傳統(tǒng)藍(lán)牙、低功耗藍(lán)牙和 Wi-Fi,具有廣泛的用途。

圖 1 ESP32-WROVER-E 模塊

選 用 ESP32-WROVER-E 模塊除了功能強(qiáng)大,還有一個(gè)重要原因是這個(gè)模塊擁有片外內(nèi)存區(qū) —— PSRAM,對于游戲文件超過 1MB 的情況就需要片外內(nèi)存區(qū)了。這個(gè)模塊PSRAM 大小有 8MB,有 4MB 可用,足夠 1M 大小的游戲文件運(yùn)行了。

液晶顯示屏

顯示屏使用 3.2 英寸液晶顯示屏( 見 圖 2), 分 辨 率 為 320 像素 ×240 像 素, 驅(qū) 動(dòng) 芯 片 型 號(hào) 為ILI9341,ILI9341 驅(qū) 動(dòng) 芯 片 提 供 8位 /9 位 /16 位 /18 位的并行 MCU 數(shù)據(jù) 總 線,6 位 /16 位 /18 位 RGB 接口數(shù)據(jù)總線以及 3 線 /4 線 SPI 接口,本項(xiàng)目采用通信方式為 4 線 SPI,接口方式為 40Pin 插接式。

圖 2 3.2 英寸液晶顯示屏

無聲貼片開關(guān)

復(fù)古游戲掌機(jī)按鍵采用無聲 貼 片 開 關(guān)( 見 圖 3), 大 小 為6mm×6mm×5mm,這款開關(guān)按力均勻,手感柔軟均勻舒適,壽命在 20萬次以上。

圖 3 無聲貼片開關(guān)

電路設(shè)計(jì)

主控部分

ESP32-WROVER-E 模 塊 的引腳分配給按鍵、顯示屏和存儲(chǔ)卡模塊,主控電路如圖 4 所示。

圖 4 主控電路

下載電路

本項(xiàng)目使用 CH340C 芯片,該芯片內(nèi)置晶體振蕩器,可以省去晶體振蕩器電路,價(jià)格便宜,電路簡單,配合三極管可實(shí)現(xiàn)自動(dòng)下載功能,下載電路如圖 5 所示。

圖 5 下載電路

供電及穩(wěn)壓電路

供電電路使用了 2 個(gè) Micro USB接口,方便后期從上下兩個(gè)方向供電。穩(wěn)壓電路使用 LM1117S-3.3 芯片,這是一種常見的穩(wěn)壓芯片,價(jià)格便宜,電路簡單,供電及穩(wěn)壓電路如圖6所示。

圖 6 供電及穩(wěn)壓電路

存儲(chǔ)電路

掌機(jī)存儲(chǔ)電路的卡座采用的是市面上常見的 Micro SD 卡卡座,體積小,通信接口為標(biāo)準(zhǔn) SPI 接口,通過文件系統(tǒng)及 SPI 接口驅(qū)動(dòng)程序,單片機(jī)系統(tǒng)即可完成 Micro SD 卡內(nèi)的文件讀寫,存儲(chǔ)電路如圖 7 所示。

圖 7 存儲(chǔ)電路

鋰電池充電電路

鋰電池充電電路里使用了TP4056 芯片,TP4056 是一款完整的單節(jié)鋰電池恒定電流 / 恒定電壓線性充電芯片。充電電壓固定在 4.2V,而充電電流可通過一個(gè)電阻進(jìn)行外部設(shè)置,在充電狀態(tài)時(shí),充電指示燈 LED4(紅色)亮;充滿電后 LED4 滅,待機(jī)指示燈 LED3(綠色)亮。TP4056 芯片采用 ESOP8 封裝,配合較少的外圍元器件使其非常適用于便攜式產(chǎn)品,并且適合給 USB 電源以及適配器電源供電,鋰電池充電電路如圖 8 所示。

圖 8 鋰電池充電電路

音頻電路

音頻電路中使用了一個(gè)8Ω/1W、直徑為 13mm 的揚(yáng)聲器用于播放游戲背景音樂,用一個(gè)開關(guān)控制揚(yáng)聲器是否工作,電路中留出兩路供電電路來選擇揚(yáng)聲器的音量,音頻電路如圖 9所示。這只是個(gè)簡單的音頻電路,俗話說“聽個(gè)響”,但是這種復(fù)古音質(zhì)正好和復(fù)古游戲呼應(yīng),相得益彰。

圖 9 音頻電路

顯示屏驅(qū)動(dòng)電路中采用了一個(gè)0.5mm 間距 FPC 上接抽拉式貼片連接器,通過短接開關(guān)可選擇 4 線SPI 連接方式,電路中還引出了兩組顯示屏接口,接口順序和市面上其他常見顯示屏模塊的引腳順序相同,通過修改程序,可以兼容更多 4 線SPI 驅(qū)動(dòng)的顯示屏,顯示屏驅(qū)動(dòng)電路如圖 10 所示。

圖 10 顯示屏驅(qū)動(dòng)電路

PCB設(shè)計(jì)

為了方便電路板打樣,我把電路板的長寬都限制在邊長為 10cm 的正方形里,所以 PCB 設(shè)計(jì)時(shí),所有元器件采用旋轉(zhuǎn) 45°放置的方式,充分利用正方形的對角線長度,液晶顯示屏居中放置,操作按鍵在顯示屏兩側(cè)。PCB整體布局如圖 11 所示,PCB 整體效果如圖 12 所示。

圖 11 PCB 整體布局

圖 12 PCB 整體效果

程序介紹

編程環(huán)境

使用 Arduino IDE 1.8.16 版本,軟件中的開發(fā)板管理器 ESP32 庫版本為 1.0.6(見圖 13)。

圖 13 Arduino IDE 版本以及 ESP32 庫版本

源程序說明

源程序文件包含如下內(nèi)容。

● esp32gamepad.ino :主文件。

● controller.cpp:控 制 器, 主要是按鍵類型和搖桿類定義。

● display.cpp:顯 示 屏 驅(qū) 動(dòng)文件。

● hw_config.h:文件系統(tǒng)定義、音頻引腳及按鍵引腳定義。

● osd.c :操作系統(tǒng)處理函數(shù)。

● sound.c:音頻系統(tǒng)函數(shù)。

一般只需要修改 esp32gamepad.ino、display.cpp、hw_config.h 這 3個(gè)文件即可。

程序編寫

1. 導(dǎo)入庫和選擇開發(fā)板類型

這 個(gè) 項(xiàng) 目 中 使 用 了 Arduino_GFX 庫 和 arduino-nofrendomaster 庫,需要將下載好的庫文件放置在 Arduino IDE 的 libraries 文件夾中,否則會(huì)編譯失敗。

Arduino 編譯時(shí),開發(fā)板類型選擇 “ESP32 Wrover Module”( 見圖 14)。

圖 14 選擇開發(fā)板類型

2. 自定義按鍵

按照原理圖對游戲掌機(jī)的按鍵進(jìn)行定義,如程序 1 所示。

顯示屏移植

原 項(xiàng) 目 使 用 的 是 ST7789 驅(qū) 動(dòng)的 2.4 英 寸 液 晶 顯 示 屏, 我 這 里 改成 ILI9341 驅(qū)動(dòng)的 3.2 英寸液晶顯示屏,所以程序中需要修改,需要注意的是原項(xiàng)目中定義總線類型的語句中,IPS 是否為高清屏的內(nèi)容改成Arduino_ILI9341 驅(qū)動(dòng)后需要?jiǎng)h除,因?yàn)閹煳募袥]有相關(guān)的定義,不修改編譯無法通過,原項(xiàng)目相關(guān)程序如程序 2 所示,移植后的程序如程序3所示。如果需要其他類型顯示屏,可在 Arduino_GFX\sr\display 這個(gè)文件夾中查找,有列的就是支持的。

復(fù)古游戲掌機(jī)的使用

(1)準(zhǔn)備一張 Micro SD 卡,格式化成 FAT32 格式,將提前下載好的擴(kuò)展名是 .nes 的游戲文件復(fù)制到存儲(chǔ)卡根目錄,游戲名用英文。

(2)開機(jī)后顯示屏上如果提示“Filesystem mount failed! try to restart.”,說明存儲(chǔ)卡掛載失敗,可以嘗試斷電重啟,若兩三次重啟后仍然無法使用,請檢查存儲(chǔ)卡或者電路。

(3) 開 機(jī) 存 儲(chǔ) 卡 掛 載 成 功 后會(huì)顯示一張圖片,顯示屏上方顯示“waiting”字樣。

(4)在“waiting”字樣界面下,使用 left 和 right 按鍵可以調(diào)整亮度,立即生效,亮度最小 10,最大 255,支持重啟后記住之前的設(shè)定值。

(5)在“waiting”字樣界面下,按一次 A 鍵,則會(huì)瀏覽根目錄文件,如果不是游戲文件,則會(huì)顯示“Not a game file, please select again.”,需要繼續(xù)按 A 鍵繼續(xù)選擇,直到出現(xiàn).nes 的游戲文件。

(6)出現(xiàn) .nes 游戲文件名顯示后,按 mode 按鍵確認(rèn)即可開始游戲。

(7)進(jìn)入游戲后根據(jù)游戲中的按鍵提示進(jìn)行操作即可。

成果展示

制作完成的復(fù)古游戲掌機(jī)如圖 15所示。

圖 15 NES 游戲掌機(jī)

復(fù)古游戲掌機(jī)做完后,我迫不及待打開了小時(shí)候玩的第一個(gè)游戲,伴隨著熟悉的背景音樂,以一種老玩家從容不迫的心態(tài)無傷通過了第一關(guān),一切都是那么熟悉,此時(shí)手里捧著的不再是一臺(tái)游戲機(jī),而是童年時(shí)期的夢想。

現(xiàn)在,畫面震撼、玩法多樣的游戲每年都會(huì)推陳出新,自制游戲機(jī)項(xiàng)目每年也在不斷革新,我在自己能力范圍內(nèi)制作了屬于自己的復(fù)古游戲掌機(jī),也算是還了一個(gè)“童年債”。每次玩起這些老游戲,我總能想起那些遙遠(yuǎn)的、計(jì)算機(jī)還沒普及的寒暑假,打開游戲機(jī),選擇好上次沒能通關(guān)的游戲,那時(shí)候我最不缺的就是時(shí)間。

特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺(tái)“網(wǎng)易號(hào)”用戶上傳并發(fā)布,本平臺(tái)僅提供信息存儲(chǔ)服務(wù)。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相關(guān)推薦
熱點(diǎn)推薦
44歲佟晨潔宣布離婚!嫁魏巍11年沒生孩子,離婚原因曝光讓人唏噓

44歲佟晨潔宣布離婚!嫁魏巍11年沒生孩子,離婚原因曝光讓人唏噓

小椰的奶奶
2026-04-04 10:05:31
光通信供應(yīng)鏈,目前有多緊張?

光通信供應(yīng)鏈,目前有多緊張?

半導(dǎo)體產(chǎn)業(yè)縱橫
2026-04-03 17:58:47
悉尼魚市直播突發(fā)意外!女記者“親吻”巨蟹,被死死夾住

悉尼魚市直播突發(fā)意外!女記者“親吻”巨蟹,被死死夾住

澳洲紅領(lǐng)巾
2026-04-04 12:32:09
Google把2TB白送成5TB,19.99美元套餐用戶賺翻了

Google把2TB白送成5TB,19.99美元套餐用戶賺翻了

硬核玩家2哈
2026-04-02 07:07:06
丈夫長征途中犧牲后,她掙扎許久才愿嫁給元帥,沒想到丈夫卻沒死

丈夫長征途中犧牲后,她掙扎許久才愿嫁給元帥,沒想到丈夫卻沒死

柳絮憶史
2026-04-02 09:39:10
“鄰里”的消失?這屆小孩是如何在高樓里“撒歡”的?

“鄰里”的消失?這屆小孩是如何在高樓里“撒歡”的?

新周刊
2026-04-02 18:52:29
06年男子打工借宿同學(xué)家,被同學(xué)母親一眼看中,意外改變了他一生

06年男子打工借宿同學(xué)家,被同學(xué)母親一眼看中,意外改變了他一生

小月文史
2025-03-11 18:44:56
內(nèi)田有紀(jì)與柏原崇秘密再婚,背后隱藏的經(jīng)紀(jì)人身份揭曉!

內(nèi)田有紀(jì)與柏原崇秘密再婚,背后隱藏的經(jīng)紀(jì)人身份揭曉!

孤獨(dú)的獨(dú)角獸影視
2026-04-04 10:05:10
俄全國支付系統(tǒng)中斷,俄軍陣亡創(chuàng)新高,蘇-30戰(zhàn)機(jī)墜毀,仍幻想美逼烏割讓領(lǐng)土 | 狼叔看世界

俄全國支付系統(tǒng)中斷,俄軍陣亡創(chuàng)新高,蘇-30戰(zhàn)機(jī)墜毀,仍幻想美逼烏割讓領(lǐng)土 | 狼叔看世界

狼叔看世界
2026-04-04 10:04:06
臺(tái)統(tǒng)一方案或出乎意料:若美國發(fā)動(dòng)代理人戰(zhàn)爭,中國將啟天津模式

臺(tái)統(tǒng)一方案或出乎意料:若美國發(fā)動(dòng)代理人戰(zhàn)爭,中國將啟天津模式

獨(dú)坐山巔前
2026-04-04 01:41:45
早安太空 · 網(wǎng)羅天下 | 馬興瑞涉嫌嚴(yán)重違紀(jì)違法正接受中央紀(jì)委國家監(jiān)委紀(jì)律審查和監(jiān)察調(diào)查

早安太空 · 網(wǎng)羅天下 | 馬興瑞涉嫌嚴(yán)重違紀(jì)違法正接受中央紀(jì)委國家監(jiān)委紀(jì)律審查和監(jiān)察調(diào)查

我們的太空
2026-04-04 06:01:13
逆轉(zhuǎn)衛(wèi)冕冠軍失敗!楊瀚森20+7對轟勇士舊將 混音未能一黑到底

逆轉(zhuǎn)衛(wèi)冕冠軍失??!楊瀚森20+7對轟勇士舊將 混音未能一黑到底

顏小白的籃球夢
2026-04-04 12:17:44
你見過的打架有多慘烈?網(wǎng)友:大家自己去百度下重慶南坪銀河快車

你見過的打架有多慘烈?網(wǎng)友:大家自己去百度下重慶南坪銀河快車

帶你感受人間冷暖
2026-04-04 00:05:16
加餐換自動(dòng)鉛筆后續(xù):寶媽強(qiáng)勢追責(zé),同學(xué)賠償?shù)狼福绞教舷⒘?>
    </a>
        <h3>
      <a href=阿纂看事
2026-04-02 13:47:58
這個(gè)新瓜,把人惡心吐了!

這個(gè)新瓜,把人惡心吐了!

觀察鑒娛
2026-04-02 10:58:59
開戰(zhàn)以來糟糕的1天,4架美軍飛機(jī)被擊落或受損

開戰(zhàn)以來糟糕的1天,4架美軍飛機(jī)被擊落或受損

山河路口
2026-04-04 12:22:20
廣東科學(xué)中心:繼續(xù)閉館

廣東科學(xué)中心:繼續(xù)閉館

南方都市報(bào)
2026-04-04 10:08:19
MVP三國殺!文班SGA約基奇誰是最后贏家

MVP三國殺!文班SGA約基奇誰是最后贏家

茅塞盾開本尊
2026-04-04 13:05:17
太陽報(bào):姆巴佩女友社媒有兩千多萬粉絲,曾與維尼修斯約會(huì)過

太陽報(bào):姆巴佩女友社媒有兩千多萬粉絲,曾與維尼修斯約會(huì)過

懂球帝
2026-04-04 09:23:13
愛德華茲賽季報(bào)銷,森林狼反手選對手:打湖人總比碰掘金強(qiáng)

愛德華茲賽季報(bào)銷,森林狼反手選對手:打湖人總比碰掘金強(qiáng)

寶哥精彩賽事
2026-04-03 18:54:30
2026-04-04 13:36:49
無線電雜志 incentive-icons
無線電雜志
《無線電》雜志官方網(wǎng)易號(hào)
709文章數(shù) 5026關(guān)注度
往期回顧 全部

游戲要聞

《真人快打1》也淪陷了!OwO連發(fā)三款D加密破解

頭條要聞

媒體:伊朗擊落的美軍機(jī)或從駐英基地起飛 英國尷尬了

頭條要聞

媒體:伊朗擊落的美軍機(jī)或從駐英基地起飛 英國尷尬了

體育要聞

剎不住的泰格·伍茲,口袋里的兩粒藥丸

娛樂要聞

闞清子口碑贏了!全開麥跑調(diào)拒絕重唱

財(cái)經(jīng)要聞

劉紀(jì)鵬:只盼長慢牛,鞏固4000點(diǎn)是關(guān)鍵

科技要聞

內(nèi)存一年漲四倍!國產(chǎn)手機(jī)廠商集體漲價(jià)

汽車要聞

17萬級(jí)海豹07EV 不僅續(xù)航長還有9分鐘滿電的快樂

態(tài)度原創(chuàng)

本地
親子
數(shù)碼
公開課
軍事航空

本地新聞

跟著歌聲游安徽,聽古村回響

親子要聞

“不是!這對嗎?”那些萌娃的頂級(jí)理解

數(shù)碼要聞

內(nèi)存暴漲讓巨頭集體破防!NVIDIA卻靠VVP身份唯一在笑

公開課

李玫瑾:為什么性格比能力更重要?

軍事要聞

俄國防部:一架蘇-30戰(zhàn)機(jī)在克里米亞墜毀

無障礙瀏覽 進(jìn)入關(guān)懷版