如何使用ESP32和ATtiny861制作NES模拟器游戏控制台

电子说

1.2w人已加入

描述

步骤1:硬件准备

模拟器

模拟器

模拟器

模拟器

模拟器

模拟器

模拟器

模拟器

模拟器

ESP32开发板

这次我使用的是TTGO T8 ESP32开发板。该板内置Lipo充电和调节电路,可以帮助减少额外的元件。

显示

这次我使用的是2.4“IPS LCD。驱动控制器是ST7789V,分辨率为320 x 240.此分辨率最适合NES仿真器252 x 224分辨率。

电池

这次我使用的是454261 Lipo电池.4.5 mm是ESP32开发板的厚度,61 mm是板的宽度。

引脚接头

一个4针公头圆形针头和一个4针母头圆形针头用于连接I2C游戏手柄。

PETG板

用于支撑开发板和锂电池的小型PET/PETG板,您可以在产品包装中轻松找到它。

多用途PCB

需要2个PCB,1个0.4 mm厚用于支撑显示器,1个1.2 mm厚用于I2C游戏手柄。

按钮

A 5个方向按钮,2个用于选择和启动的小按钮,2个用于A和B按钮。

I2C游戏手柄控制器

这次我使用的是ATtiny8 61微控制器作为I2C游戏手柄控制器。

其他

1个SMD 12欧姆电阻,一个ISP编程器(例如TinyISP)

第2步:软件准备

模拟器

模拟器

模拟器

Arduino IDE

下载并安装Arduino IDE

ATTinyCore支持

按照安装步骤操作如果还没有添加ATTinyCore支持

ESP-IDF

关注ESP-IDF入门指南如果还没有设置开发环境

第3步:3D打印

模拟器

下载并打印案例:https://www.thingiverse.com/thing:3591170

第4步:LCD支持

模拟器

模拟器

切割24 x 27孔0.4 mm PCB以支持LCD。请记住为折叠LCD FPC预留一些空间。然后使用一些双面胶带将LCD固定在PCB上。

步骤5:准备PETG板

模拟器

模拟器

为开发板和Lipo电池支撑切出62 mm x 69 mm PETG板。

步骤6:修复ESP32开发板

模拟器

使用双面胶带将开发板固定在PETG板上。

步骤7:修复Lipo电池

模拟器

使用双面胶带修复除开发板外的Lipo电池。

步骤8:连接电池和电池;开发板

模拟器

步骤9:准备显示引脚

模拟器

LCD显示有很多变化形式不同供应商。请获取正确的数据表,并在任何补丁和连接之前阅读。

某些引脚保留用于触摸屏。由于这款LCD没有触摸屏,只需将这些引脚切断就可以减少干扰。

步骤10:连接GND引脚

模拟器

模拟器

在大多数情况下,很少有引脚需要连接到GND。为了减少焊接工作量,我切割铜带形状以到达所有GND引脚,然后完全焊接。

步骤11:连接Vcc引脚

模拟器

需要连接Vcc,LCD电源和LED电源的2个引脚。根据数据表,LCD电源可直接连接到开发板3.3 V引脚,但LED电源工作电压略低于3.3 V.因此最好在中间添加一个SMD电阻,例如12欧姆电阻。

步骤12:连接LCD&开发板支持

模拟器

使用磁带连接LCD支持和开发板支持。两个支持都应保留约5毫米的间隙进行折叠。

步骤13:连接SPI引脚

模拟器

以下是连接摘要:

LCD ESP32

GND -》 GND

RST -》 GPIO 33

SCL -》 GPIO 18

DC -》 GPIO 27

CS -》 GPIO 5

SDI -》 GPIO 23

SDO -》 not connected

Vcc -》 3.3 V

LED+ -》 12 Ohm resistor -》 3.3 V

LED- -》 GND

步骤14:Flash程序

模拟器

模拟器

模拟器

模拟器

模拟器

模拟器

模拟器

在GitHub下载源代码:https://github.com/moononournation/esp32-nesemu

在源代码文件夹下,运行“make menuconfig”

选择“Nofrendo ESP32特定配置”

选择“要运行的硬件” - 》“自定义硬件”

选择“LCD类型” - 》“ST7789V LCD”

填充引脚设置:MISO - 》 -1,MOSI - 》 23,CLK - 》 18,CS - 》 5,DC - 》 27,RST - 》 33,背光 - 》 -1,IPS - 》 Y

退出并保存

运行“make -j5 flash”

运行“sh flashrom.sh PATH_TO_YOUR_ROM_FILE”

步骤15:I2C连接器

模拟器

模拟器

模拟器

模拟器

模拟器

突破I2C引脚,ESP32默认I2C引脚为:

Pin 1 (SCL) -》 GPIO 22

Pin 2 (SDA) -》 GPIO 21

Pin 3 (Vcc) -》 3.3 V (no 5 V power while powered by Lipo battery)

Pin 4 (GND) -》 GND

Ste第16页:装配第1部分

按照视频步骤将所有部件折叠并挤压到外壳中。

步骤17:原型I2C游戏手柄

模拟器

模拟器

模拟器

模拟器

模拟器

I2C游戏手柄的程序非常简单,只有15个代码行。但是焊接后对ATtiny861进行重新编程有点困难,所以最好先在面包板上对它进行测试。

从GitHub下载,编译和刷新程序:https://github.com/moononournation/attiny861_i2c _.。.

步骤18:构建I2C游戏手柄

模拟器

模拟器

模拟器

模拟器

模拟器

以下是连接摘要:

ATtiny861 Button

GND -》 All buttons one pin

Pin 20 (PA0) -》 Up button

Pin 19 (PA1) -》 Down button

Pin 18 (PA2) -》 Left button

Pin 17 (PA3) -》 Right button

Pin 14 (PA4) -》 Select button

Pin 13 (PA5) -》 Start button

Pin 12 (PA6) -》 A button

Pin 11 (PA7) -》 B button

Pin 6 (GND) -》 I2C male pin header pin 4

Pin 5 (Vcc) -》 I2C male pin header pin 3

Pin 3 (SCL) -》 I2C male pin header pin 1

Pin 1 (SDA) -》 I2C male pin header pin 2

步骤19:装配第2部分

模拟器

按照视频步骤将封面和I2C游戏手柄安装到主体上。

步骤20:可选:音频突破引脚

模拟器

模拟器

模拟器

ESP32开发板引脚25和26输出模拟音频信号,很容易突破这两个引脚和电源引脚( 3.3 V和GND)在顶部。然后你可以修补一个耳机插上它。或者你甚至可以添加一个带扬声器的音频放大器模块来大声播放。

步骤21:下一步是什么?

模拟器

NES模拟器不是ESP32唯一有趣的事情。例如。你可以用它构建一个微型python控制台。您需要更改的唯一组件是从I2C游戏手柄到I2C键盘。我认为使用ATtiny88控制器制作它并不困难。您可以按我的推特查看状态。

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分