国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

用ESP32,手把手教你制作一個游戲機

硬件攻城獅 ? 來源:趣無盡 ? 作者:Cherry ? 2022-11-15 09:41 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

MicroByte 是一款微型主機,能夠運行 NES、GameBoy、GameBoy Color、Game Gear 和 Sega Master 系統的游戲,所有元器件都設計在這 78 x 17 x 40 mm 的封裝中。

盡管成品尺寸很小,但它符合 SNES 游戲板的布局并且具有操作按鈕。

除此之外,它還配有一個清晰的 1.3 英寸 IPS 顯示屏,可以看到游戲的所有細節。

隨后還會更新 PythonArduino 庫,以便進行游戲以外的開發工作。

固件、PCB 設計、外殼 3D 文件等可以在本項目文件庫中下載:

https://make.quwj.com/project/359

BOM 清單:

https://github.com/jfm92/microByte_PCB/blob/main/microByte_BOM.xlsx

d2e4246c-5361-11ed-a3b6-dac502259ad0.jpg

項目架構

通常啟動電子項目時,首先會創建一個框圖,其中設置項目所需的功能及交互的方式,然后繪制原理圖。在原理圖上,選擇符合要求的元器件并進行電氣連接,之后進行 PCB 布局設計。最后,按照設計規則和物理設計準則設置每個元器件基座的位置。

d2f060f6-5361-11ed-a3b6-dac502259ad0.jpg

上面是以面包板為原型的原始版本,下面是最終版本。

d2fb949e-5361-11ed-a3b6-dac502259ad0.jpg

此處將按照模塊化思想進行項目開發,輔以原理圖設計和 PCB 布局設計。

該項目原理圖和 PCB 布局是用 Kicad 設計的,下載鏈接:

https://github.com/jfm92/microByte_PCB/tree/5cb0fcf7a9658e331d677588a7f35327a7d491d7

要打開它,只需安裝 Kicad 并雙擊 .pro 文件。

ESP32 微控制器

首先選擇合適的微控制器,對于該項目,選擇 ESP32 Wrover E 模塊。該模塊/微控制器特點:具有 240 MHZ 雙核、16 MB 閃存、8 MB RAM、超低功耗協處理器、支持 Wi-Fi藍牙以及全套外圍設備和 GPIO,仿真性能極佳。 設計中可參考 Espressif,數據表如下:

https://www.espressif.com/sites/default/files/documentation/esp32-wrover-e_esp32-wrover-ie_datasheet_en.pdf

電路板模塊的原理圖:

d304b646-5361-11ed-a3b6-dac502259ad0.png

中間是與外圍設備連接的 ESP32 模塊。

引腳 25 是 IO 0 引腳。該引腳為選擇設備的引導狀態,可以閃存新固件或啟動已閃存的固件。信號為高,啟動已閃存的固件;信號為低,啟動引導模式,并等待新固件。

引腳 3 是啟用引腳(又名復位)。如果這個引腳是高電平,微控制器將工作,否則不工作。為了避免信號彈跳,此處有一個 RC 電路(電阻/電容),在板啟動或跳變時產生干凈的信號,以防止意外復位。由于該電路沒有復位按鈕,因此并不是完全必要,但最好保持謹慎。

引腳 24 是 IO 2 引腳,連接了一個帶電阻器的藍色 LED,起到顯示通知的作用。

讓我們看看引腳 2 或 VDD 3V3。這引腳是給芯片供電的,電壓 3.3 V。注意并聯電容器,這些電容器是去耦電容器,用于清除寄生干擾。

下面是 PCB 設計布局和 PCB 板中重點研究的部分。

d328db20-5361-11ed-a3b6-dac502259ad0.png

d34d483e-5361-11ed-a3b6-dac502259ad0.jpg

d3733d5a-5361-11ed-a3b6-dac502259ad0.jpg

除此之外,相關的組件必須盡可能靠近。

添加 USB 模塊

USB 收發器是一個將 USB 信號轉換為串行、RS232 或其他類似協議的芯片。在市場上,有各種各樣的型號可供選擇,此處使用 CH340C。

CH340C 不需要像 CH340G 一樣的外部時鐘,其用法簡單,價格是 CP2102 或 FT232 的一小部分。

d37f2d40-5361-11ed-a3b6-dac502259ad0.png

圖的右側所示。它的設計非常簡單,只有一塊芯片,上面有兩個去耦電容和一個 0 歐姆的電阻。如果不確定是否必須進行連接,則將這種電阻器用作電橋。

右邊是 USB-C 連接器的示意圖。其作用是連接到 PC 并給電池充電。在 PCB 布線時,使用 USB-C 更具挑戰性,因為需要添加雙連接,可以在任何方向使用導線。

提示:USB 信號是并行高速信號,必須盡量平行布線,避免信號間的串擾,并盡量將信號線布在靠近數字邏輯芯片的地方。

d3d630e0-5361-11ed-a3b6-dac502259ad0.jpg

d3f15c58-5361-11ed-a3b6-dac502259ad0.png

電池與電源管理

此處分為三個部分:電池充電和保護電路電源管理和電池電量控制。

電池充電和保護電路:

d3fa7cf2-5361-11ed-a3b6-dac502259ad0.png

對于 Li-Po 電池的使用,安全第一,需要做一個正確的恒流充電控制器,使它不要在 4.2 V 以上充電或在 2.8 V 以下對電池放電,以免損壞電池。

TP4056 是一個鋰聚合物電池充電器芯片,可提供恒定的線性電壓電流,還可以通過修改 R 2 的阻值設置充電電流。切記充電電流應為電池容量的 25 % 左右。此芯片連接到 LED D1,以顯示電池的充電狀態。

FS312F-G 是一個電池保護電路芯片,如果檢測到電池過度充電或過度放電,它會切斷電池的使用。這樣可以避免損壞電池。

FS8205 是一個集成兩個 MOSFET 晶體管以選擇電路功率的芯片,如果電池處于合適的范圍內,它將從電池中獲取能量,如果將設備連接到 USB 端口,它將直接利用 USB 的能量工作。

電源管理:

d418105a-5361-11ed-a3b6-dac502259ad0.png

該模塊是電壓轉換器的升壓電路,可提供 3.3 V 的恒定電壓。鋰電池的最大充電電壓為 4.2 V,最小安全電壓為 2.8 V。因此,需要提供恒定電壓以避免微控制器不穩定或顯示器上的亮度較低。

為解決這個問題,此處使用 MT3608,它是一種可配置的升壓電壓轉換器。在該電路的輸出端,電壓為 4.2 V,高于器件所需的 3.3 V,所以使用 MCP1700 電壓轉換器將電壓從 4.2 V 轉換為 3.3 V。

這個方案可能存在過度設計或效率低下的問題,但這是最便宜有效的解決方案。

電池電量控制:

d42a2362-5361-11ed-a3b6-dac502259ad0.png

就像升壓電路前的分壓器一樣簡單。此點的電壓最大將達到 4.2 V,因此僅需設計一個降至 3.3 V 的分壓器以遵守 ESP32 的邏輯電平并將其連接到 ADC GPIO 即可測量模擬電平信號。

d445c202-5361-11ed-a3b6-dac502259ad0.png

d4665300-5361-11ed-a3b6-dac502259ad0.jpg

d47a8db6-5361-11ed-a3b6-dac502259ad0.jpg

設計 SD 卡模塊

SD 卡使用 SPI 協議,這是一種雙向通信,可實現高速通信。使用外設時,不必擔心串擾,因為它的速度不足以產生磁場(至少此處沒有任何問題)。

電路也非常簡單,將每條線連接到 MCU 的 SPI GPIO 口并添加一個上拉電阻。該電阻對于保持線路上的恒定高電平并避免可能破壞數據傳輸的中間電平信號很重要。

d491b0ae-5361-11ed-a3b6-dac502259ad0.png

d49a5fc4-5361-11ed-a3b6-dac502259ad0.png

d4c0c07e-5361-11ed-a3b6-dac502259ad0.jpg

此處還有我們的老朋友去耦電容器。

音頻輸出

使用 ESP32,有兩種方式輸出音頻。通過檢查數據表,此處可以使用集成的 I2S 到 DAC 轉換器或直接使用 I2S 外設。

d4d8874a-5361-11ed-a3b6-dac502259ad0.png

獲得音頻輸出的最簡單方法是使用 I2S 到 DAC 轉換器,因為可以將揚聲器直接連接到 GPIO,如果音頻音量很低,則可以使用模擬音頻放大器,這非常容易實施。但是這種解決方案也帶來了一些不便。DAC 僅使用 I2S 16 位中的 8 位,這意味著將丟失很多音頻信息,導致音頻質量非常差。

I2S 是一種數字音頻協議,可保證高保真音頻,而不造成質量損失或噪聲。但需要一個轉換器模擬轉換器和放大器收到的東西。此處采用 MAX98357 音頻放大器。該放大器將 I2S 信號轉換為模擬信號,并將其放大以直接用于接揚聲器或耳機。該放大器/轉換器可為我們提供 6.4W 的輸出功率,并具有可配置的輸出選擇——在單聲道或立體聲音頻之間進行選擇和阻抗選擇。

d4f09376-5361-11ed-a3b6-dac502259ad0.png

d4fa3c14-5361-11ed-a3b6-dac502259ad0.jpg

d542cd3a-5361-11ed-a3b6-dac502259ad0.jpg

免責聲明:我對音頻的了解不是很深,所以一些音頻數據可能是錯誤的,僅供參考。

添加按鍵

ESP32 是一個不錯的模塊,但它的 GPIO 端口數量很少。但是不用擔心,我們有 TCA9555 解決方案。

TCA9555 是 I2C GPIO 多路復用器。該器件最多允許使用 18 個額外的 GPIO。這些 GPIO 可用作輸入或輸出,并可通過 I2C 進行控制或檢查。因此,僅使用兩個 GPIO(I2C SDA 和 I2C SCLK),就有了 18 個額外的 GPIO!延遲不是問題,因為可以讀取或寫入高達 400 Khz的數據,這意味著每秒 400000 次!

d564aa7c-5361-11ed-a3b6-dac502259ad0.png

讓我們看一下原理圖。該多路復用器可與 I2C 一起使用,因此需要上拉每個信號以避免線路上的噪聲。它也有一個中斷引腳,但未使用。I2C 信號為 SCL 和 SDA 引腳(19 和 20)。需要通過硬件配置設備的地址,此配置通過設置引腳 A0、A1 和 A2 的邏輯電平來完成。此處只有一個 I2C 設備,因此給出地址 0x00。

最后,所有開關按鈕都直接連接到芯片,我們通過軟件配置設置了上拉或下拉電阻,因為該多路復用器具有可配置的內部電阻。

d58e0f66-5361-11ed-a3b6-dac502259ad0.png

該設備的有趣之處之一是電感式按鈕,它們是沒有絲印層的 PCB 布線,因此帶有碳膜的橡膠按鈕可以用作開關按鈕。這是游戲手柄上的常規配置。如果要在設計中使用,可以在項目附帶的庫中找到。

d5c281d8-5361-11ed-a3b6-dac502259ad0.jpg

d5ecca24-5361-11ed-a3b6-dac502259ad0.jpg

配一款亮麗的顯示屏

d608f316-5361-11ed-a3b6-dac502259ad0.png

d61fe6d4-5361-11ed-a3b6-dac502259ad0.png

顯示器采用 IPS 1.3 英寸屏幕,分辨率為 240 x 240 px,可以提供非常漂亮的色彩和清晰的圖像。通信協議是 SPI,可以實現高達 70 FPS 的幀速率(數據表中注明)。

另一方面,可以控制顯示器的背光以選擇亮度等級。通過 BS138 MOSFET 晶體管完成控制顯示屏上嵌入的 LED 的電流。

d62c969a-5361-11ed-a3b6-dac502259ad0.jpg

完成

現在就可以運行這臺復古游戲機了,開啟你的復古游戲回憶之旅吧!

項目所用的代碼在本項目文件庫中可以下載:

https://make.quwj.com/project/359

責任編輯:lq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • pcb
    pcb
    +關注

    關注

    4405

    文章

    23878

    瀏覽量

    424345
  • 游戲機
    +關注

    關注

    9

    文章

    306

    瀏覽量

    35458
  • ESP32
    +關注

    關注

    26

    文章

    1195

    瀏覽量

    21713

原文標題:用ESP32,手把手教你制作一個游戲機

文章出處:【微信號:mcu168,微信公眾號:硬件攻城獅】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    手把手教你學51單片-C語言版

    更多信息),手把手地帶領大家來學習單片技術,給單片初學者帶來福音,讓大家一步一個腳印的掌握單片技術。 《
    發表于 03-05 11:47

    【迅為RK3568開發板NPU實戰】別再閑置你的NPU!手把手教你玩轉RKNN-Toolkit2 的使用

    【迅為RK3568開發板NPU實戰】別再閑置你的NPU!手把手教你玩轉RKNN-Toolkit2 的使用
    的頭像 發表于 11-11 14:21 ?1128次閱讀
    【迅為RK3568開發板NPU實戰】別再閑置你的NPU!<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>玩轉RKNN-Toolkit2 的使用

    【RK3568 NPU實戰】別再閑置你的NPU!手把手帶你迅為資料跑通Android AI檢測Demo,附完整流程與效果

    【RK3568 NPU實戰】別再閑置你的NPU!手把手帶你迅為資料跑通Android AI檢測Demo,附完整流程與效果
    的頭像 發表于 11-10 15:58 ?1066次閱讀
    【RK3568 NPU實戰】別再閑置你的NPU!<b class='flag-5'>手把手</b>帶你<b class='flag-5'>用</b>迅為資料跑通Android AI檢測Demo,附完整流程與效果

    低成本開源!樂鑫科技ESP32-S3開發板輕松驅動無刷電機,保姆級教程來了!

    想用ESP32-S3開發板驅動無刷電機卻不知從何下手?本教程將手把手教你完成從硬件連接到軟件編程的全流程,無論你是新手還是有定經驗的開發者,都能輕松掌握!本教程代碼已全部開源!后臺私
    的頭像 發表于 11-06 18:03 ?818次閱讀
    低成本開源!<b class='flag-5'>用</b>樂鑫科技<b class='flag-5'>ESP32</b>-S3開發板輕松驅動無刷電機,保姆級教程來了!

    低成本開源!手把手教你用樂鑫科技ESP32-P4開發板制作電腦監測屏!

    ESP32-P4-TINY開發板自制電腦性能監控屏,讓系統狀態目了然!代碼全部開源!后臺私信關鍵詞P4TINY性能監測副屏自動獲取ESP32
    的頭像 發表于 11-04 18:05 ?684次閱讀
    低成本開源!<b class='flag-5'>手把手</b><b class='flag-5'>教你用</b>樂鑫科技<b class='flag-5'>ESP32</b>-P4開發板<b class='flag-5'>制作</b>電腦監測屏!

    LVGL實戰指南:手把手教你玩轉ESP32-S3 2.8寸串口屏UI開發

    ,讓你在最短時間內,親眼看到LVGL界面在啟明智顯ESP32-S32.8寸屏上流暢運行。無需痛苦的摸索,跟著我們的步驟,從零到,全程暢通無阻。搭建ESP-IDF環境
    的頭像 發表于 10-30 18:04 ?2317次閱讀
    LVGL實戰指南:<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>玩轉<b class='flag-5'>ESP32</b>-S3 2.8寸串口屏UI開發

    全開源!從安裝到燒錄,手把手教你用ESP32-P4-TINY開發板實現秒閃白光!

    Windows環境下通過WSL2編譯ESP-IDF,搭建ESP32-P4開發環境,并最終實現板載LED白光閃爍的完整流程。本次演示使用啟明云端最新推出的WT9932P4-TINY開發板,開發板搭配
    的頭像 發表于 09-22 18:04 ?1557次閱讀
    全開源!從安裝到燒錄,<b class='flag-5'>手把手</b><b class='flag-5'>教你用</b><b class='flag-5'>ESP32</b>-P4-TINY開發板實現<b class='flag-5'>一</b>秒閃白光!

    RT-Thread Nano硬核移植指南:手把手實現VGLite圖形驅動適配 | 技術集結

    VGLite是NXP提供的輕量級2D圖形API,本文將手把手帶你實現VGLite圖形驅動適配RT-Thread。文章分為上、下兩篇,將手把手教您移植。上篇對RT-ThreadNano內核與Finsh組件進行移植,下篇則教您改寫SDK中的VGLite代碼以將其適配到RT-T
    的頭像 發表于 07-17 14:40 ?3391次閱讀
    RT-Thread Nano硬核移植指南:<b class='flag-5'>手把手</b>實現VGLite圖形驅動適配 | 技術集結

    手把手教你如何調優Linux網絡參數

    在高并發網絡服務場景中,Linux內核的默認網絡參數往往無法滿足需求,導致性能瓶頸、連接超時甚至服務崩潰。本文基于真實案例分析,從參數解讀、問題診斷到優化實踐,手把手教你如何調優Linux網絡參數,支撐百萬級并發連接。
    的頭像 發表于 05-29 09:21 ?968次閱讀

    正點原子Linux系列全新視頻教程來啦!手把手教你MP257開發板,讓您輕松入門!

    正點原子Linux系列全新視頻教程來啦!手把手教你MP257開發板,讓您輕松入門! 、視頻觀看 正點原子手把手教你學STM32MP257
    發表于 05-16 10:42

    請求贈閱《零基礎開發AI Agent——手把手教你用扣子做智能體》

    博主好!致敬葉濤 管鍇 張心雨三位AI具身智能-智能體方面的專家、導師! 《零基礎開發AI Agent——手把手教你用扣子做智能體》不懂編程的多數大眾也可以開發Agent,這意義深遠,功德無量
    發表于 04-10 12:16

    GPU顯卡維修避坑指南:手把手教你識別行業套路!

    的今天,高端顯卡維修已成“暴利暗流”。虛高報價、偷換配件、技術陷阱……用戶稍有不慎,輕則損失數萬,重則設備報廢。今天小助手將揭露行業亂象,手把手教你識別套路,并推薦
    的頭像 發表于 04-02 20:31 ?3800次閱讀
    GPU顯卡維修避坑指南:<b class='flag-5'>手把手</b><b class='flag-5'>教你</b>識別行業套路!

    《零基礎開發AI Agent——手把手教你用扣子做智能體》

    《零基礎開發AI Agent——手把手教你用扣子做智能體》是本為普通人量身打造的AI開發指南。它不僅深入淺出地講解了Agent的概念和發展,還通過詳細的工具介紹和實戰案例,幫助讀者快速掌握
    發表于 03-18 12:03

    手把手教你做星閃無人機—KaihongOS星閃無人機開發實戰》系列課程課件匯總

    —KaihongOS星閃無人機開發實戰》系列課程,該課程與《手把手教你做PC—KaihongOS筆記本電腦開發實戰》同步并行,兩系列課隔周交替播出。 《手把手
    發表于 03-18 10:33

    手把手教你做PC-KaihongOS筆記本電腦開發實戰》課件匯總

    ”攜手“電子發燒友”聯合推出了 《KaihongOS手把手系列直播課程》,該系列課程以實際產品為案例,詳細講解每個產品的開發全流程。 此次首發內容是《手把手教你做PC-KaihongOS筆記本電腦開發
    發表于 03-18 10:25