ESP32|爷青回!ESP32(单片机) NES模拟器

前言

在这里插入图片描述

小时候我们都喜欢玩FC,现在仍有很多人想做出属于自己的游戏机(模拟器),玩上几把小时候最喜欢玩的游戏,而nes模拟器正是不二之选,通过制作模拟器我们能学习到软硬件各方面的知识,可谓是很多程序员走向编程开发道路上不可缺少的一环。
好处有那么多,但是从零开始制作一台游戏到底难不难呢?

需求分析

制作一台游戏机我希望是不用涉及太多的硬件方面的知识,如果要自己动手画一个电路板并且焊接元件上去,就太麻烦了!我只想凭自己现有的能力,使用常见的硬件模块搭建出一台游戏机,而且后面这些硬件可以用于到其他的实验或者项目就更好了!

上面的演示视频已经满足了我们的需求,所有的硬件我们都是像搭建积木那样搭建起来,所有的功能都可以通过配置文件进行裁剪!

硬件选择

  • 开发板:如果板子能连接互联网或者局域网,我们就可以通过外网下载我们所需的文件或者进行固件升级;通过局域网可建立面对面对面加入游戏,就像真的玩游戏机那样的体验。而选择搭载了WROOM-32D模组的乐鑫公板ESP32-DevKitC v4开发板是比较理想的选择。
  • 存储部分:所有文件保存在SD卡中读取存储起来非常方便,这需要使用到SPI SD卡模块
  • 显示部分:FC游戏机的显示分辨率是256x224,我们使用2.2寸(240x320)的显示屏就足够了,这里我选择常见的2.2寸(240x320)ILI9341显示屏。
  • 音频输出部分:为了方便接耳机或者音响,选择3.5mm的音频座模块是最理想的
  • 最后为了能将这些硬件连接起来,还需要用到面包板和一些面包线或者杜邦线。

硬件概览

在这里插入图片描述

名称 数量
ESP32主板 1
MicroUSB数据线 1
面包板+面包线 2
TFT ILI9341屏幕(240x320) 1
SPI TF卡模块 1
16GB TF卡 1
NES游戏手柄+转接板 1
CJMCUTRRS 3.5mm音频座模块 1

ESP32 NES模拟器

效果图

控制方法有三种,大家可以在源码里面配置:

  • 使用PCF8574模块,直接接按键肝(要接很多线,玩起来一点都不方便、没有手感)
  • 使用九针或者七针的NES游戏手柄控制游戏(手柄玩起来很有手感,但接口比较奇葩,要接五根线:VCC、GND、LATCH、CLOCK、DATA)
  • 使用(MINI、Micro)USB接口的游戏手柄控制游戏(手柄玩起来很有手感,而且常见接口,使用通过转接板非常方便,要接5根线:VCC、GND、ID、D+、D-)

在这里插入图片描述

项目介绍

硬件组合合理,成本低、可DIY性高,模块化的硬件可重复利用到其他项目或者实验,本项目功能特点:

项目使用 VScode+platformio插件开发,以上功能均可在 ./platformio.ini 文件裁剪。
请将NES游戏文件存放在sd卡中的 /nes 文件夹。

源码、硬件获取

https://item.taobao.com/item.htm?id=642291784020
在这里插入图片描述

视频教程

待续。。。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐