找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2377|回复: 2
收起左侧

基于ESP32制作的掌上游戏机

  [复制链接]
ID:948900 发表于 2022-2-4 01:59 | 显示全部楼层 |阅读模式
简介

一个基于ESP32制作的开源游戏掌机,可以运行标准的NES(日版为FC)游戏,支持单声道音频。让你随时回味儿时的时光。

固件基于乐鑫官方和moononournation二次开发的项目,Github地址:

https://github.com/moononournation/esp32-nesemu

▌版本更新

【V1.1-200807】

  • 现在可以通过在开机时按方向键来选择不同的游戏。最多支持5个内置游戏。(需要重新烧写固件,游戏下载方法详见章节“下载游戏”)


特性
  • 低成本:仅一片ESP32-WROOM-32模块就实现了所有的功能,无需外部Flash、SRAM和DAC。

  • 易于制作:阻容元件使用0805封装,易于焊接。外壳的3D文件制作时已经考虑了低端3D打印机的公差问题,提高外壳制作成功率。

  • 兼容性好:经测试绝大多数的NES游戏可完美运行

  • 可方便地下载游戏:无需重新编译源码即可下载游戏,内置ESP32自动下载电路,下载时无需手动复位。

  • 内置电池:内置了锂电池充电电路和低电量指示电路。

  • 低功耗:400mAh的电池可持续运行约3小时。

  • 多功能:板子上引出了ESP32的全部可用IO,可作为ESP32的开发板使用。

  • 三个指示灯:红色:电量低;蓝色:充电中;绿色:电池电量满。

  • [2020/08/07]可以一次性下载5个游戏


注意事项
  • 下载游戏时一定要打开电源开关!

  • 游戏ROM大小不要超过1M

  • 默认的充电电流约为400mA,如果自己制作时使用了不同容量的电池,请自行根据TP4056充电管理IC的datasheet修改R19的值来重新设置充电电流。


▌键位图

▌IO映射FunctionIOComments

LCD-SCLK

GPIO18



LCD-MOSI

GPIO23



LCD-DC

GPIO17



LCD-CS

GOIO5



LCD-RST

GPIO4



KEY-UP

GPIO14

With 4.7k ohm pullup resistor


KEY-DOWN

GPIO32

With 4.7k ohm pullup resistor


KEY-RIGHT

GPIO33

With 4.7k ohm pullup resistor


KEY-LEFT

GPIO27

With 4.7k ohm pullup resistor


KEY-A

GPIO35

With 4.7k ohm pullup resistor


KEY-B

GPIO34

With 4.7k ohm pullup resistor


KEY-START

GPIO16

With 4.7k ohm pullup resistor


KEY-SELECT

GPIO13

With 4.7k ohm pullup resistor


▌示例运行Contra游戏

作为ESP32开发板运行例程(LittleVGL)

▌如何制作?准备材料

以下商品需要在第三方平台购买

  • 屏幕:以下两个均可,注意,选择9341版本的

    • (已验证)2.4寸tft液晶屏显示屏ILI9341SPI串口屏

    • (未验证,需要检查PCB封装,可能需要修改PCB)中景园2.4寸液晶屏320x240 TFT LCD SPI串口TFT彩色液晶屏9341


  • M3*12螺丝x4


其他元件按照BOM表格在立创商城购买即可,其中电池链接:锂电池 700mA

准备外壳

使用第三方3D打印服务或自行打印外壳,外壳的模型文件在附件中。


打样PCB


开始制作

1,焊接PCB正面元件(不要焊接屏幕)

2,焊接PCB反面元件(不要焊接电池)

3,通过红框位置为PCB供电,供电电压为3.3V,同时通过USB将PCB连接至电脑

4,在电脑上通过串口助手软件查看ESP32是否正常输出启动Log,如果没有,请重新检查元器件焊接是否有误(不用关心Log内容,只要正常输出log了即可)

5,关闭串口助手,下载附件中的“ESP32-FLASH下载工具-已设置好.zip”

6,运行工具

7,选择ESP32 Download Tool

8,检查关键设置是否与如下图片中一致(下载的工具是已经设置好的,正常情况下不需要做任何变动)

9,选择正确的COM口,点击Start开始下载

10,正常情况下下载应该会自动开始,进度条会开始走动,如图:

11,如果下载长时间未自动开始,按住“下载”键不丢后按一下“复位”,然后再次点击下载工具上的“START”

12,如果按照第11步操作后,依然报错,则可能是元件损坏或焊接不良,请重新检查焊接。

13,等待程序正常下载完毕后,断开USB连接和供电,下图为下载正常结束

14,焊接屏幕,但是先不要固定屏幕。

15,确保电源开关处于关闭状态(拨动杆在上方为关闭),然后焊接电池


16,打开电源开关,如果无异常,应该会出现“TANK”的游戏画面。如果白屏或者屏幕不亮。请在断开电池后从第一步开始重新检查焊接、下载是否有误。


17,使用直径2.5mm钻头扩展螺丝孔,如果没有相关工具,也可以使用自攻螺丝

18,撕去液晶屏保护膜(按照自己的习惯来,不想撕可以不撕)。使用液晶屏自带的双面胶或者自行打胶固定屏幕(千万不要固定歪了!),将PCB放入底壳,放置好按键,盖上顶壳,拧好螺丝。

19,大功告成,开始玩耍~

▌下载新游戏

1.准备好游戏的ROM文件(*.nes)

2.运行附件中的“ESP32-Flash下载工具-下载多个游戏”

3.点击红框中按钮,在弹出的文件选择对话框中选择文件类型为“所有文件”,然后选择你要下载的游戏ROM文件

4.打开游戏机电源(重要!!!),将游戏机通过USB连接至电脑,然后选择正确的COM口,点击START开始下载

5.下载完成后,按一下游戏机的“复位”键,默认运行第一个游戏。

6.按住方向键不丢,然后打开电源(开机状态下为按复位键),会自动根据按下的方向键启动不同的游戏。对照如下

游戏序号方向键

1

默认(不按任何按键)


2

方向键-上


3

方向键-下


4

方向键-左


5

方向键-右


▌图赏


esp32游戏机.zip

18.62 MB, 下载次数: 51, 下载积分: 黑币 -5

评分

参与人数 2黑币 +30 收起 理由
lxh0587 + 15 很给力!
liang1981 + 15 很给力!

查看全部评分

回复

使用道具 举报

ID:76044 发表于 2022-4-22 15:53 | 显示全部楼层
看按键有些硬,改进一下
回复

使用道具 举报

ID:685462 发表于 2022-4-23 13:07 | 显示全部楼层
lxm41577 发表于 2022-4-22 15:53
看按键有些硬,改进一下

应该用软的那种,这个看psp的按键或是手柄按键。要是用8266,应该可以点对点连接的可能

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表