0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

教你自制游戏机

Android编程精选 来源:Android编程精选 作者:Android编程精选 2022-04-12 10:02 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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


项目架构

通常启动电子项目时,首先会创建一个框图,其中设置项目所需的功能及交互的方式,然后绘制原理图。在原理图上,选择符合要求的元器件并进行电气连接,之后进行 PCB 布局设计。最后,按照设计规则和物理设计准则设置每个元器件基座的位置。

2ff034ac-b9cf-11ec-aa7f-dac502259ad0.jpg

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

3010e4d6-b9cf-11ec-aa7f-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

电路板模块的原理图:

30292e7e-b9cf-11ec-aa7f-dac502259ad0.png

中间是与外围设备连接的 ESP32 模块。

引脚 25 是 IO 0 引脚。该引脚为选择设备的引导状态,可以闪存新固件或启动已闪存的固件。信号为高,启动已闪存的固件;信号为低,启动引导模式,并等待新固件。

引脚 3 是启用引脚(又名复位)。如果这个引脚是高电平,微控制器将工作,否则不工作。为了避免信号弹跳,此处有一个 RC 电路(电阻/电容),在板启动或跳变时产生干净的信号,以防止意外复位。由于该电路没有复位按钮,因此并不是完全必要,但最好保持谨慎。

引脚 24 是 IO 2 引脚,连接了一个带电阻器的蓝色 LED,起到显示通知的作用。

让我们看看引脚 2 或 VDD 3V3。这引脚是给芯片供电的,电压 3.3 V。注意并联电容器,这些电容器是去耦电容器,用于清除寄生干扰。

下面是 PCB 设计布局和 PCB 板中重点研究的部分。

304e20da-b9cf-11ec-aa7f-dac502259ad0.png

3065269a-b9cf-11ec-aa7f-dac502259ad0.jpg

3079e8fa-b9cf-11ec-aa7f-dac502259ad0.jpg

除此之外,相关的组件必须尽可能靠近。

添加 USB 模块

USB 收发器是一个将 USB 信号转换为串行、RS232 或其他类似协议的芯片。在市场上,有各种各样的型号可供选择,此处使用 CH340C。

CH340C 不需要像 CH340G 一样的外部时钟,其用法简单,价格是 CP2102 或 FT232 的一小部分。

3090802e-b9cf-11ec-aa7f-dac502259ad0.png

图的右侧所示。它的设计非常简单,只有一块芯片,上面有两个去耦电容和一个 0 欧姆的电阻。如果不确定是否必须进行连接,则将这种电阻器用作电桥。

右边是 USB-C 连接器的示意图。其作用是连接到 PC 并给电池充电。在 PCB 布线时,使用 USB-C 更具挑战性,因为需要添加双连接,可以在任何方向使用导线。

提示:USB 信号是并行高速信号,必须尽量平行布线,避免信号间的串扰,并尽量将信号线布在靠近数字逻辑芯片的地方。

30b3d704-b9cf-11ec-aa7f-dac502259ad0.jpg

30cc6ad0-b9cf-11ec-aa7f-dac502259ad0.png

电池与电源管理

此处分为三个部分:电池充电和保护电路电源管理和电池电量控制。
电池充电和保护电路:

30e7f322-b9cf-11ec-aa7f-dac502259ad0.png

对于 Li-Po 电池的使用,安全第一,需要做一个正确的恒流充电控制器,使它不要在 4.2 V 以上充电或在 2.8 V 以下对电池放电,以免损坏电池。

TP4056 是一个锂聚合物电池充电器芯片,可提供恒定的线性电压电流,还可以通过修改 R 2 的阻值设置充电电流。切记充电电流应为电池容量的 25 % 左右。此芯片连接到 LED D1,以显示电池的充电状态。

FS312F-G 是一个电池保护电路芯片,如果检测到电池过度充电或过度放电,它会切断电池的使用。这样可以避免损坏电池。

FS8205 是一个集成两个 MOSFET 晶体管以选择电路功率的芯片,如果电池处于合适的范围内,它将从电池中获取能量,如果将设备连接到 USB 端口,它将直接利用 USB 的能量工作。

电源管理:

310f297e-b9cf-11ec-aa7f-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。

这个方案可能存在过度设计或效率低下的问题,但这是最便宜有效的解决方案。

电池电量控制:

31235124-b9cf-11ec-aa7f-dac502259ad0.png

就像升压电路前的分压器一样简单。此点的电压最大将达到 4.2 V,因此仅需设计一个降至 3.3 V 的分压器以遵守 ESP32 的逻辑电平并将其连接到 ADC GPIO 即可测量模拟电平信号。

314b6754-b9cf-11ec-aa7f-dac502259ad0.png

316f2e0a-b9cf-11ec-aa7f-dac502259ad0.jpg

31818672-b9cf-11ec-aa7f-dac502259ad0.jpg

设计 SD 卡模块

SD 卡使用 SPI 协议,这是一种双向通信,可实现高速通信。使用外设时,不必担心串扰,因为它的速度不足以产生磁场(至少此处没有任何问题)。

电路也非常简单,将每条线连接到 MCU 的 SPI GPIO 口并添加一个上拉电阻。该电阻对于保持线路上的恒定高电平并避免可能破坏数据传输的中间电平信号很重要。

31991698-b9cf-11ec-aa7f-dac502259ad0.png

31bfa7a4-b9cf-11ec-aa7f-dac502259ad0.png

31e70218-b9cf-11ec-aa7f-dac502259ad0.jpg

此处还有我们的老朋友去耦电容器。

音频输出

使用 ESP32,有两种方式输出音频。通过检查数据表,此处可以使用集成的 I2S 到 DAC 转换器或直接使用 I2S 外设。

32003440-b9cf-11ec-aa7f-dac502259ad0.png

获得音频输出的最简单方法是使用 I2S 到 DAC 转换器,因为可以将扬声器直接连接到 GPIO,如果音频音量很低,则可以使用模拟音频放大器,这非常容易实施。但是这种解决方案也带来了一些不便。DAC 仅使用 I2S 16 位中的 8 位,这意味着将丢失很多音频信息,导致音频质量非常差。

I2S 是一种数字音频协议,可保证高保真音频,而不造成质量损失或噪声。但需要一个转换器模拟转换器和放大器收到的东西。此处采用 MAX98357 音频放大器。该放大器将 I2S 信号转换为模拟信号,并将其放大以直接用于接扬声器或耳机。该放大器/转换器可为我们提供 6.4W 的输出功率,并具有可配置的输出选择——在单声道或立体声音频之间进行选择和阻抗选择。

32235b5a-b9cf-11ec-aa7f-dac502259ad0.png

323cd134-b9cf-11ec-aa7f-dac502259ad0.jpg

3254e85a-b9cf-11ec-aa7f-dac502259ad0.jpg

免责声明:我对音频的了解不是很深,所以一些音频数据可能是错误的,仅供参考。

添加按键

ESP32 是一个不错的模块,但它的 GPIO 端口数量很少。但是不用担心,我们有 TCA9555 解决方案。

TCA9555 是 I2C GPIO 多路复用器。该器件最多允许使用 18 个额外的 GPIO。这些 GPIO 可用作输入或输出,并可通过 I2C 进行控制或检查。因此,仅使用两个 GPIO(I2C SDA 和 I2C SCLK),就有了 18 个额外的 GPIO!延迟不是问题,因为可以读取或写入高达 400 Khz的数据,这意味着每秒 400000 次!

32664fb4-b9cf-11ec-aa7f-dac502259ad0.png

让我们看一下原理图。该多路复用器可与 I2C 一起使用,因此需要上拉每个信号以避免线路上的噪声。它也有一个中断引脚,但未使用。I2C 信号为 SCL 和 SDA 引脚(19 和 20)。需要通过硬件配置设备的地址,此配置通过设置引脚 A0、A1 和 A2 的逻辑电平来完成。此处只有一个 I2C 设备,因此给出地址 0x00。

最后,所有开关按钮都直接连接到芯片,我们通过软件配置设置了上拉或下拉电阻,因为该多路复用器具有可配置的内部电阻。

328ade56-b9cf-11ec-aa7f-dac502259ad0.png

该设备的有趣之处之一是电感式按钮,它们是没有丝印层的 PCB 布线,因此,带有碳膜的橡胶按钮可以用作开关按钮。这是游戏手柄上的常规配置。如果要在设计中使用,可以在项目附带的库中找到。

32b8142a-b9cf-11ec-aa7f-dac502259ad0.jpg

32cad3d0-b9cf-11ec-aa7f-dac502259ad0.jpg

配一款亮丽的显示屏

32eeeb4e-b9cf-11ec-aa7f-dac502259ad0.png

3306f0b8-b9cf-11ec-aa7f-dac502259ad0.png

显示器采用 IPS 1.3 英寸屏幕,分辨率为 240 x 240 px,可以提供非常漂亮的色彩和清晰的图像。通信协议是 SPI,可以实现高达 70 FPS 的帧速率(数据表中注明)。另一方面,可以控制显示器的背光以选择亮度等级。通过 BS138 MOSFET 晶体管完成控制显示屏上嵌入的 LED 的电流。

完成

现在就可以运行这台复古游戏机了,开启你的复古游戏回忆之旅吧!

项目所用的代码在本项目文件库中可以下载:

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

-End-

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    463

    文章

    54433

    浏览量

    469395
  • 电容器
    +关注

    关注

    64

    文章

    6971

    浏览量

    108564
  • 引脚
    +关注

    关注

    16

    文章

    2120

    浏览量

    56025

原文标题:自制游戏机,这个小伙办到了!

文章出处:【微信号:AndroidPush,微信公众号:Android编程精选】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    量子计算即将彻底改变AR和VR游戏领域

    开发者可以引入量子计算,以改进游戏机制,通过增强现实 (AR) 和虚拟现实 (VR) 技术提供更沉浸式的体验,并拓展游戏中艺术与音乐的边界。
    的头像 发表于 04-17 10:19 458次阅读

    单片分类及应用

    MCU。 目前,国内MCU应用市场最广泛的是消费电子领域,其次是工业领域、和汽车电子市场。消费电子包括家用电器、电视、游戏机和音视频系统等。工业领域包括智能家居、自动化、医疗应用及新能源生成与分配等。汽车领域包括汽车动力总成和安全控制系统等。
    发表于 01-13 08:25

    在Termux环境下实现康威生命游戏

    你想要在Termux环境下实现康威生命游戏,并专门展示经典的“滑翔”模式,构建一个能持续运行的二维世界,同时需要完整的程序代码和调试说明。 一、实现思路康威生命游戏的核心是遵循4条规则:1. 活
    发表于 12-21 18:36

    合粤铝电解电容于游戏机主机电源管理电路的应用

    在现代游戏机主机中,铝电解电容的核心作用是 “高效储能” 与 “极致滤波” ,为CPU、GPU等核心芯片提供瞬间的“爆发式”能量,并确保电源的纯净度,是保障游戏性能稳定释放、防止画面卡顿或系统崩溃
    的头像 发表于 10-30 15:50 610次阅读
    合粤铝电解电容于<b class='flag-5'>游戏机</b>主机电源管理电路的应用

    广州唯创电子WT588F02B-8S语音芯片:重塑射击游戏体验

    随着科技发展,射击游戏机已成为现代娱乐生活的重要组成部分。然而,传统设备在音效方面往往表现单一,难以营造沉浸式体验。针对这一痛点,广州唯创电子推出高性能语音芯片WT588F02B-8S,为CS战枪
    的头像 发表于 09-08 08:23 643次阅读
    广州唯创电子WT588F02B-8S语音芯片:重塑射击<b class='flag-5'>游戏</b>体验

    AI Coding + TuyaOpen,1小时快速打造AI女友和2048游戏

    七夕快到了,涂鸦本次准备教大家用AI给自己做个虚拟女友,它能根据对话情绪显示不同表情;在你游戏瘾上来的时候,还能秒变2048游戏机,让你一边玩游戏,一边和AI虚拟女友聊天。成本100元出头,借助
    的头像 发表于 08-21 18:53 2001次阅读
    AI Coding + TuyaOpen,1小时快速打造AI女友和2048<b class='flag-5'>游戏</b>

    我造了一台‘迷你 Switch’,还能自己写游戏

    打造一台“掌上游戏机”?简单到你意想不到!提到掌上游戏机,大家的第一反应可能是——Switch:经典耐玩,但价格不友好。SteamDeck:性能怪兽,但钱包会哭泣。这些设备一个共同点:不便宜。那么
    的头像 发表于 08-12 18:05 836次阅读
    我造了一台‘迷你 Switch’,还能自己写<b class='flag-5'>游戏</b>!

    RK3568自制底板狂丢包?教你5分钟用Delayline一键复活网口

    在使用飞凌嵌入式RK3568核心板搭配自制底板时,由于PCB走线与参考设计存在差异,常导致RGMII接口时序异常,进而出现网口不通或频繁丢包的情况。本文将为大家提供一套简单高效的调试方案,通过三步操作即可解决此类问题。
    的头像 发表于 07-25 17:15 1830次阅读
    RK3568<b class='flag-5'>自制</b>底板狂丢包?<b class='flag-5'>教你</b>5分钟用Delayline一键复活网口

    【VisionFive 2单板计算机试用体验】VisionFive 2复古游戏机改造

    SD卡 ,同时保留Debian(日常使用)与Batocera(游戏专用) QEMU虚拟 :在Debian中安装QEMU,虚拟化运行Batocera(需4GB内存版本) 总结:RISC-V游戏主机
    发表于 07-22 20:58

    【VisionFive 2单板计算机试用体验】2、打造复古游戏机(Batocera镜像+FBNeo虚拟, 多款游戏ROM分享)

    衷心感谢电子发烧友论坛! 1、基本知识 制作一个游戏机系统,需要3个关键步骤: Linux游戏系统发行版 游戏模拟器 游戏ROM 下面分别介绍: 2、Linux
    发表于 07-17 21:58

    【项目分享】Xii-Boy-Ultra 无线便携式 Wii 游戏机

    Xii-Boy Ultra 是一款小型便携式 Wii 游戏机,采用垂直布局设计。该系统允许用户无需使用焊锡,仅用螺丝刀就能轻松组装和拆卸。 Xii-Boy Ultra 是一款采用垂直布局、小巧
    发表于 07-14 17:27

    【VisionFive 2单板计算机试用体验】VisionFive 2一个霸气的游戏机

    这次的测试活动,每人人手送一个游戏机,非常的好啊!!! 很高兴收到赛昉科技发放的VisionFive 2开发板,VisionFive 2是全球首款集成了3D GPU的高性能量产RISC-V
    发表于 07-13 20:41

    单片实例项目:FC小霸王游戏手柄资料

    单片实例项目:FC小霸王游戏手柄资料,推荐下载!
    发表于 06-03 21:04

    用 Lakka 和 树莓派 打造终客厅游戏机

    尽管现代树莓派单板计算机(SBC)的规格有了大幅提升,但它们的性能仍不足以在4K分辨率下以60帧每秒(FPS)的速度运行3A级PC游戏。不过,那些老派游戏——尤其是为老式游戏机设计的游戏
    的头像 发表于 05-27 15:35 1344次阅读
    用 Lakka 和 树莓派 打造终客厅<b class='flag-5'>游戏机</b>!

    游戏手柄振动马达:沉浸式游戏体验的核心

    游戏手柄振动马达是现代游戏设备中不可或缺的一部分,它为玩家提供了更加沉浸式的游戏体验。通过精确的振动反馈,游戏手柄振动马达能够将游戏中的动作
    的头像 发表于 05-17 00:05 1097次阅读