ESP32 VGA街机游戏和操纵杆

 

简介:ESP32 VGA街机游戏和操纵杆


 


 


 

在本教程中我将展示如何使用ESP32VGA监视器的输出来重现四个街机游戏,例如俄罗斯方块突围轰炸机

分辨率为320 x 200像素,有8种颜色。我以前用Arduino Uno做过一个版本(请参阅此处),但分辨率仅为120 x 60像素,4种颜色,并且Arduino内存几乎已满。由于ESP32具有更高的性能,因此分辨率和可玩性都更高。此外,仍然有足够的可用内存,因此将来添加新游戏将非常简单。

我还将展示如何通过一条RS232电缆连接简单的操纵杆我使用的是Commodore 64的相同引脚排列。

由Fabrizio Di Vittorio编写的超棒ESP32 VGA库使该项目成为可能。有关更多详细信息,请参见此处

 

步骤1:ESP32开发板,Arduino IDE安装和VGA库配置。


 



 



 

首先,您需要购买ESP32版本1或更高版本。有许多可用的版本,但我建议选择一个带多个引脚的引脚,最好是此类图中带有38个引脚的型号。我正在使用此版本,但我认为其他很多也可以。在ebay上,您可以找到不到7欧元的这种型号,包括运费。

一旦获得董事会,就需要继续以下三个子步骤:

  1. 安装最后的Arduino IDE
  2. 在IDE中配置ESP32
  3. 下载并安装VGA库

子步骤1.
有多种方法可以对ESP32进行编程,但是在这里您需要使用Arduino IDE(顺便说一下,我使用的是1.8.9版)。要安装它,您可以转到Arduino IDE页面并按照说明进行操作。

子步骤2。
完成上一个操作后,您需要在Arduino IDE中配置ESP32。这不是小菜一碟,因为ESP32还不是原生的。您可以按照教程或以下步骤进行操作。

1)打开Arduino IDE

2)打开“首选项”窗口,“文件/首选项”,或者按“ Ctrl +逗号”

3)转到“其他委员会经理网址”,复制并粘贴以下文本:

https://dl.espressif.com/dl/package_esp32_index.js ...

然后单击确定按钮。

4)打开董事会经理。转到工具/板/板管理器...

5)搜索ESP32,然后按“ Espressif Systems的ESP32”的安装按钮:

6)此时,当您首次连接ESP32时,应在可用的ESP32板子长清单中选择合适的型号(请参阅此步骤中的图片)。如果对模型有疑问,请选择通用模型,即第一个模型。这个对我有用。

7)系统还应该选择正确的USB(COM)端口和上载速度(通常为921600)。此时,应在PC和ESP32板之间建立连接。

子步骤3.
最后,您必须安装FabGL VGA库单击此处下载完整的压缩文件。解压缩它,然后将结果文件夹(FabGL-master)复制到Arduino IDE库文件夹中,如下所示:

“ ... \ arduino-1.8.12 \ libraries”。

 

步骤2:上传“ ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0”

在此步骤的底部下载ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0.zip
解压并使用Arduino IDE打开它,然后将其上传到您的ESP32。如果没有错误消息,则该代码应该已经在运行,您只需要连接VGA端口和按钮(或操纵杆)即可。

 

步骤3:连接VGA端口


 

您需要以下部分:

  • 一个DSUB15连接器,即,一个VGA阴连接器或VGA电缆进行切割。
  • 三个270欧姆电阻

通过270欧姆电阻将ESP32 GPIO引脚2、15和21分别连接到VGA红色,绿色和蓝色。

将VGA Hsync和Vsync分别连接到ESP32 GPIO引脚17和4。

将DSUB15连接器的引脚5、6、7、8和10连接到ESP32 GND。

有关VGA DSUB15连接器引脚的定义,请参见此步骤中的图片。注意,这是母连接器的焊接面。

 

步骤4:连接四个按钮


 


 


 

如果没有C64游戏杆,则可以在此步骤之后连接四个按钮。如果您有操纵杆,则可以跳过此步骤并跳至下一个步骤,但是无论如何都可以将按钮和操纵杆连接在一起(无论如何它们都是“并行”的)。

此步骤中的示意图显示了如何将+ 5V的单个按钮(常开)连接到ESP32给定的引脚。

请注意,您还需要通过1至5 kOhm的电阻将ESP给定的引脚连接至GND。这样,当释放(打开)按钮时,ESP引脚正好为零伏。更具体地说,您需要按以下顺序连接四个按钮:

  • 将12针固定到右键
  • 将25针固定到“向上”按钮
  • 将14针固定到“向左”按钮
  • 将35针固定到“向下”按钮

 

步骤5:连接操纵杆


 


 


 

C64操纵杆的插脚如该步骤的第一张图片所示。要将其连接到ESP32,您需要一个9针DSUB公连接器(即插座),如第二张图片所示。我从旧的电子板上卸下了裸露的引脚。您可以使用热风枪将其移除(但要在室外进行!)。

您需要按照这些图片中的数字顺序连接引脚。请注意,该示意图是指操纵杆一侧,因此代表其母插头的连接。连接到ESP32的插座(公头)的插针带有“镜像”布置。如有疑问,请记住,总是在公连接器和母连接器上报告引脚号,如第三张图片所示。

如果只想用操纵杆控制游戏,请将其公共引脚(9)连接到ESP32 + 5V,并将操纵杆引脚1、2、3、4和6连接到ESP给定的引脚,如下所示。

  • ESP针12到右键(RS232针4)
  • ESP针14到左按钮(RS232针3)
  • ESP针35到向下按钮(RS232针2)
  • ESP针25到“向上”按钮(RS232针1和6,即操纵杆点火)

注意,ESP引脚12、14、25和35还必须通过1至5 kOhm的电阻器连接到GND。这样,当释放按钮(打开)时,ESP引脚正好为零伏。

NB2操纵杆UP位置和火警按钮连接到ESP针25-

我已经连接了PC板上的四个按钮,因此不需要操纵杆(尽管操纵杆更有趣)。同样,RS232引脚9必须连接到+5 V,并且操纵杆引脚与按钮平行。

 

步骤6:结论和确认


 

如果一切正常,只需连接VGA显示器,您就可以享受一些旧风格的游戏!

您还可以绘制分辨率为640 x 350像素Mandelbrot集,以测试VGA库功能。

请注意,代码的编写方式是将来可以轻松添加其他游戏(ESP32有足够的空间!)。如果这个项目引起了足够的兴趣,我可能会做...

最后,我想向Fabrizio Di Vittorio展示我的坦克,以感谢他出色的ESP32 VGA库(http://www.fabglib.org/index.html)有关更多详细信息,示例和...太空侵略者,请访问他的网站。

 


FAQ:

5条留言

伯恩·克里恩第6步

嗨,当我编译草图时,找不到“ vgacontroller.h”!谁能帮忙?

辛托平症

Roberto Melsi的另一个又大又神奇的项目!可惜我没有任何ESP32 ...(他们不喜欢与带有Atom x86的旧EEEPC一起使用...)

PioD1

很棒,但是我更喜欢您的Arduino,因为它有“ PONG”,而且复古控件更容易隐藏在咖啡桌中:)
我想知道我是否可以使用enouth端口来添加电位计并获得pong代码并将其添加到其中另一部分

版权说明

ESP32 VGA街机游戏和操纵杆
本文遵循CC BY-SA版权协议,转载请附上原文出处链接及本声明。
链接:https://chandianzi.cn/esp32-vga-arcade-games-and-joystick.html
作者:Rob+Cai
版权协议:CC BY-NC-SA
分类名称:arduino-10
资源标识:ESP32-VGA-Arcade-Games-and-Joystick

生成海报
点赞 0

Rob+Cai

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

LVGL学习之初始化和屏幕旋转

背景 手里有一块ESP32-S2-HMI-DevKit-1开发板,是乐鑫基于ESP32-S2模组开发的HMI人机交互方案开发板; 一边学习ESP32开发的过程中,也顺带学习一下LVGL图形库&#xff

ESP32学习记录<四>ADC和DAC

ESP32学习记录ADC和DAC 前言 ADC和DAC是单片机比较常用的,ESP32具有12位的ADC和8位的DAC。今天我就简单地记录它们的使用。 一、ADC ADC也就是我们通常所说的模数转换,模拟信号

PCM开发板模块指令详解--功能指令1

功能指令: 10         串口指令 编号         指令名     参数1      参数2      参数3      参数4     参数5         说明 1               serial