Оглавление:

ESP32 VGA Аркадные игры и джойстик: 6 шагов (с изображениями)
ESP32 VGA Аркадные игры и джойстик: 6 шагов (с изображениями)

Видео: ESP32 VGA Аркадные игры и джойстик: 6 шагов (с изображениями)

Видео: ESP32 VGA Аркадные игры и джойстик: 6 шагов (с изображениями)
Видео: Arduboy - самая маленькая консоль 🎮 #retrogaming #gameboy #игры #8bit #16bit #arduboy #arduino 2024, Май
Anonim
Image
Image
ESP32 VGA Аркадные игры и джойстик
ESP32 VGA Аркадные игры и джойстик
ESP32 VGA Аркадные игры и джойстик
ESP32 VGA Аркадные игры и джойстик

В этом руководстве я покажу, как воспроизвести четыре аркадные игры - Tetris - Snake - Breakout - Bomber - с помощью ESP32 с выходом для монитора VGA.

Разрешение 320 х 200 пикселей, 8 цветов. Ранее я делал версию с Arduino Uno (см. Здесь), но разрешение было всего 120 x 60 пикселей, 4 цвета, а память Arduino была почти заполнена. Благодаря более высокой производительности ESP32 разрешение и играбельность выше. Кроме того, по-прежнему имеется много доступной памяти, поэтому добавление новых игр в будущем будет несложным.

Я также покажу, как подключить простой джойстик через кабель RS232. Я использую ту же распиновку, что и у Commodore 64.

Этот проект стал возможным благодаря великолепной библиотеке ESP32 VGA, написанной Фабрицио Ди Витторио. Подробнее см. Здесь.

Шаг 1. Платы ESP32, установка Arduino IDE и настройка библиотеки VGA

Платы ESP32, установка Arduino IDE и конфигурация библиотеки VGA
Платы ESP32, установка Arduino IDE и конфигурация библиотеки VGA
Платы ESP32, установка Arduino IDE и конфигурация библиотеки VGA
Платы ESP32, установка Arduino IDE и конфигурация библиотеки VGA
Платы ESP32, установка Arduino IDE и конфигурация библиотеки VGA
Платы ESP32, установка Arduino IDE и конфигурация библиотеки VGA

Прежде всего вам необходимо приобрести ESP32 ревизии 1 или выше. Доступно много версий, но я рекомендую выбрать одну с большим количеством контактов, предпочтительно модель, подобную той, что на этой картинке, с 38 контактами. Я использую эту версию, но думаю, что многие другие тоже подходят. На ebay вы можете найти эту модель менее чем за 7 евро, включая доставку.

Как только вы получите доску, вам нужно выполнить следующие три дополнительных шага:

  1. Установите последнюю IDE Arduino
  2. Настройте ESP32 в IDE и
  3. Загрузите и установите библиотеку VGA

Подшаг 1. Существуют разные методы программирования ESP32, но здесь вам нужно использовать IDE Arduino (кстати, я использую версию 1.8.9). Чтобы установить его, вы можете перейти на страницу Arduino IDE и следовать инструкциям.

Подшаг 2. После выполнения предыдущей операции вам необходимо настроить ESP32 в среде Arduino IDE. Это нетривиально, поскольку ESP32 не является (пока?) Родным для него. Вы можете следовать этому руководству или следующим шагам.

1) откройте IDE Arduino

2) откройте окно настроек, Файл / Предпочтения, или нажмите «Ctrl + запятая».

3) перейдите в «Дополнительные URL-адреса Board Manager», скопируйте и вставьте следующий текст:

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

и нажмите кнопку ОК.

4) Менеджер открытых досок. Перейдите в Инструменты / Доска / Менеджер плат…

5) Найдите ESP32 и нажмите кнопку установки для «ESP32 от Espressif Systems»:

6) На этом этапе, когда вы впервые подключаете ESP32, вы должны выбрать правильную модель из длинного списка доступных плат ESP32 (см. Рисунок в этом шаге). В случае сомнений по поводу модели, просто выберите общую, то есть первую. Меня устраивает.

7) система также должна выбрать правильный порт USB (COM) и скорость загрузки (обычно 921600). На этом этапе должно быть установлено соединение между вашим ПК и платой ESP32.

Подшаг 3. Наконец, вам нужно установить библиотеку FabGL VGA. Щелкните здесь, чтобы загрузить полный сжатый файл. Распакуйте его и скопируйте полученную папку (FabGL-master) в папку библиотек Arduino IDE, которая выглядит так:

«… / Arduino-1.8.12 / библиотеки».

Шаг 2. Загрузка "ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0"

Загрузите ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0.zip внизу этого шага. Разархивируйте и откройте его с помощью Arduino IDE, затем загрузите на свой ESP32. Если у вас нет сообщений об ошибках, код уже должен быть запущен, и вам просто нужно подключить порт VGA и кнопки (или джойстик).

Шаг 3: Подключение порта VGA

Подключение порта VGA
Подключение порта VGA

Вам потребуются следующие детали:

  • разъем DSUB15, т. е. гнездовой разъем VGA или кабель VGA, который необходимо обрезать.
  • три резистора на 270 Ом.

Подключите контакты 2, 15 и 21 GPIO ESP32 к VGA Red, Green и Blue соответственно через резисторы 270 Ом.

Подключите VGA Hsync и Vsync к контактам 17 и 4 GPIO ESP32 соответственно.

Подключите контакты 5, 6, 7, 8 и 10 разъемов DSUB15 к ESP32 GND.

Определение контактов разъема VGA DSUB15 см. На рисунке в этом шаге. NB, это сторона пайки гнездового разъема.

Шаг 4: соедините четыре кнопки

Подключите четыре кнопки
Подключите четыре кнопки
Подключите четыре кнопки
Подключите четыре кнопки
Подключите четыре кнопки
Подключите четыре кнопки

Если у вас нет джойстика C64, вы можете подключить четыре кнопки, выполнив этот шаг. Если у вас есть джойстик, вы можете пропустить этот шаг и перейти к следующему, но вы все равно можете подключить и кнопки, и джойстик (они в любом случае находятся «параллельно»).

Схема на этом шаге показывает, как подключить одну кнопку (нормально разомкнутую) от +5 В к заданному контакту ESP32.

Обратите внимание, что вам также необходимо подключить данный вывод ESP к GND через резистор от 1 до 5 кОм. Таким образом, когда кнопка отпускается (открывается), на выводе ESP будет ровно ноль вольт. Точнее, вам нужно соединить четыре кнопки в следующем порядке:

  • Контакт 12 к правой кнопке
  • Пин 25 к кнопке Вверх
  • Штырь 14 к левой кнопке
  • Пин 35 к кнопке "Вниз"

Шаг 5: Подключите джойстик

Подключите джойстик
Подключите джойстик
Подключите джойстик
Подключите джойстик
Подключите джойстик
Подключите джойстик

Распиновка джойстика C64 показана на первом рисунке этого шага. Чтобы подключить его к ESP32, вам понадобится 9-контактный штекерный разъем DSUB (т. Е. Розетка), как показано на втором рисунке. Я удалил один с открытыми контактами из старой электронной платы. Вы можете удалить его с помощью теплового пистолета (но только на улице!).

Вам необходимо соединить контакты, следуя порядку номеров на этих рисунках. Обратите внимание, что схема относится к стороне джойстика, поэтому она представляет собой соединение его розетки. Гнездо (папа) для подключения к ESP32 имеет контакты с «зеркальным» расположением. В случае сомнений помните, что номер контакта всегда указывается на штекерных и гнездовых разъемах, как показано на третьем рисунке.

Если вы хотите управлять играми только с помощью джойстика, подключите его общий контакт (9) к ESP32 + 5V, а контакты джойстика 1, 2, 3, 4 и 6 к контактам ESP, указанным в следующем списке.

  • Контакт 12 ESP к правой кнопке (RS232 контакт 4)
  • Вывод 14 ESP на левую кнопку (вывод 3 RS232)
  • Контакт 35 ESP к кнопке Вниз (контакт 2 RS232)
  • Контакт 25 ESP для кнопки Вверх (контакты 1 и 6 RS232, т.е. джойстик срабатывания)

Обратите внимание: контакты 12, 14, 25 и 35 ESP также должны быть подключены к GND через резистор от 1 до 5 кОм. Таким образом, когда кнопка отпускается (открывается), на выводе ESP будет ровно ноль вольт.

Положение джойстика NB2 ВВЕРХ и кнопка включения соединены вместе с контактом 25- ESP.

Я подключил четыре кнопки на плате, таким образом мне не нужен джойстик для игры (хотя с джойстиком намного веселее). Опять же, контакт 9 RS232 должен быть подключен к +5 В, а контакты джойстика просто параллельны кнопкам.

Шаг 6: Заключение и подтверждение

Заключение и признание
Заключение и признание

Если все работает правильно, просто подключите VGA-монитор, и вы сможете наслаждаться игрой в старинном стиле!

Вы также можете нарисовать набор Мандельброта с разрешением 640 x 350 пикселей, просто чтобы проверить возможности библиотеки VGA.

Обратите внимание, что код написан таким образом, что другие игры могут быть легко добавлены в будущем (ESP32 имеет много места!). Если этот проект вызывает достаточно интереса, я могу это сделать…

Наконец, я хотел бы выразить мою благодарность Фабрицио Ди Витторио за его потрясающую библиотеку ESP32 VGA. Для получения более подробной информации, примеров и… Space Invaders посетите его сайт.

Рекомендуемые: