Spisu treści:

ESP32 VGA Arcade Games i joystick: 6 kroków (ze zdjęciami)
ESP32 VGA Arcade Games i joystick: 6 kroków (ze zdjęciami)

Wideo: ESP32 VGA Arcade Games i joystick: 6 kroków (ze zdjęciami)

Wideo: ESP32 VGA Arcade Games i joystick: 6 kroków (ze zdjęciami)
Wideo: ESP32 VGA four games & joystick 2024, Lipiec
Anonim
Image
Image
Gry zręcznościowe VGA ESP32 i joystick
Gry zręcznościowe VGA ESP32 i joystick
Gry zręcznościowe VGA ESP32 i joystick
Gry zręcznościowe VGA ESP32 i joystick

W tej instrukcji pokażę, jak odtworzyć cztery gry zręcznościowe - Tetris - Snake - Breakout - Bomber - za pomocą ESP32, z wyjściem na monitor VGA.

Rozdzielczość to 320 x 200 pikseli, w 8 kolorach. Wcześniej robiłem wersję z Arduino Uno (patrz tutaj), ale rozdzielczość wynosiła tylko 120 x 60 pikseli, 4 kolory, a pamięć Arduino była prawie pełna. Dzięki większej wydajności ESP32 zarówno rozdzielczość, jak i grywalność są wyższe. Co więcej, wciąż jest dużo dostępnej pamięci, więc dodawanie nowych gier w przyszłości będzie proste.

Pokażę też hot do podłączenia prostego joysticka przez kabel RS232. Używam tego samego pinouta co Commodore 64.

Ten projekt jest możliwy dzięki niesamowitej bibliotece VGA ESP32 napisanej przez Fabrizio Di Vittorio. Więcej szczegółów znajdziesz tutaj.

Krok 1: Płyty ESP32, instalacja Arduino IDE i konfiguracja biblioteki VGA

Płyty ESP32, instalacja Arduino IDE i konfiguracja biblioteki VGA
Płyty ESP32, instalacja Arduino IDE i konfiguracja biblioteki VGA
Płyty ESP32, instalacja Arduino IDE i konfiguracja biblioteki VGA
Płyty ESP32, instalacja Arduino IDE i konfiguracja biblioteki VGA
Płyty ESP32, instalacja Arduino IDE i konfiguracja biblioteki VGA
Płyty ESP32, instalacja Arduino IDE i konfiguracja biblioteki VGA

Przede wszystkim musisz kupić ESP32 w wersji 1 lub wyższej. Dostępnych jest wiele wersji, ale polecam wybrać taką z wieloma pinami, najlepiej model taki jak na zdjęciu, z 38 pinami. Używam tej wersji, ale myślę, że wiele innych też jest w porządku. W serwisie eBay możesz znaleźć ten model za mniej niż 7 Euro, wliczając dostawę.

Po zdobyciu tablicy musisz wykonać następujące trzy kroki podrzędne:

  1. Zainstaluj ostatnie Arduino IDE
  2. Skonfiguruj ESP32 w IDE i
  3. Pobierz i zainstaluj bibliotekę VGA

Podpunkt 1. Istnieją różne metody programowania ESP32, ale tutaj musisz użyć Arduino IDE (przy okazji używam wersji 1.8.9). Aby go zainstalować, możesz przejść do strony Arduino IDE i postępować zgodnie z instrukcjami.

Podkrok 2. Po wykonaniu poprzedniej operacji należy skonfigurować ESP32 w środowisku Arduino IDE. Nie jest to trywialne, ponieważ ESP32 nie jest (jeszcze?) w nim natywny. Możesz śledzić ten samouczek lub następujące kroki.

1) otwórz Arduino IDE

2) otwórz okno preferencji, Plik/Preferencje, alternatywnie naciśnij „Ctrl+przecinek”

3) przejdź do „Additional Board Manager URLs”, skopiuj i wklej następujący tekst:

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

i kliknij przycisk OK.

4) Menedżer otwartych tablic. Przejdź do Narzędzia/Płyty/Menedżer tablic…

5) Wyszukaj ESP32 i naciśnij przycisk instalacji dla „ESP32 by Espressif Systems”:

6) W tym momencie, kiedy podłączasz swój ESP32 po raz pierwszy, powinieneś wybrać odpowiedni model z długiej listy dostępnych płyt ESP32 (patrz zdjęcie w tym kroku). W przypadku wątpliwości co do modelu wystarczy wybrać ten rodzajowy, czyli pierwszy. Mi to pasuje.

7) system powinien również wybrać odpowiedni port USB (COM) i prędkość wysyłania (zwykle 921600). W tym momencie powinno zostać nawiązane połączenie między komputerem a płytą ESP32.

Krok 3. Na koniec musisz zainstalować bibliotekę FabGL VGA. Kliknij tutaj, aby pobrać cały skompresowany plik. Rozpakuj go i skopiuj powstały folder (FabGL-master) do folderu bibliotek Arduino IDE, który wygląda tak:

„…\arduino-1.8.12\biblioteki”.

Krok 2: Przesyłanie „ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0”

Pobierz ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0.zip na dole tego kroku. Rozpakuj i otwórz go za pomocą Arduino IDE, a następnie prześlij go do swojego ESP32. Jeśli nie masz żadnych komunikatów o błędach, kod powinien już działać i wystarczy podłączyć port VGA i przyciski (lub joystick).

Krok 3: Podłączanie portu VGA

Podłączanie portu VGA
Podłączanie portu VGA

Potrzebujesz następujących części:

  • złącze DSUB15, tj. złącze żeńskie VGA lub kabel VGA do przecięcia.
  • trzy rezystory 270 Ohm.

Podłącz piny 2, 15 i 21 GPIO ESP32 do odpowiednio czerwonego, zielonego i niebieskiego VGA przez rezystory 270 Ohm.

Podłącz VGA Hsync i Vsync do odpowiednio pinów 17 i 4 ESP32 GPIO.

Podłącz styki 5, 6, 7, 8 i 10 złącza DSUB15 do ESP32 GND.

Aby zapoznać się z definicją styków złącza VGA DSUB15, zobacz rysunek w tym kroku. Uwaga, jest to strona lutownicza złącza żeńskiego.

Krok 4: Połącz cztery przyciski

Połącz cztery przyciski
Połącz cztery przyciski
Połącz cztery przyciski
Połącz cztery przyciski
Połącz cztery przyciski
Połącz cztery przyciski

Jeśli nie masz joysticka C64, możesz podłączyć cztery przyciski, wykonując ten krok. Jeśli masz joystick, możesz pominąć ten krok i przejść do następnego, ale i tak możesz połączyć oba przyciski i joystick (i tak są „równolegle”).

Schemat w tym kroku pokazuje jak podłączyć pojedynczy przycisk (Normalnie Otwarty) od +5V do danego pinu ESP32.

Zauważ, że musisz również podłączyć podany pin ESP do GND przez rezystor 1 do 5 kOhm. W ten sposób, gdy przycisk jest zwolniony (otwarty), pin ESP ma dokładnie zero woltów. Dokładniej, musisz połączyć cztery przyciski w następującej kolejności:

  • Przypnij 12 do prawego przycisku
  • Przypnij 25 do przycisku w górę
  • Przypnij 14 do lewego przycisku
  • Przypnij 35 do przycisku w dół

Krok 5: Podłącz joystick

Podłącz joystick
Podłącz joystick
Podłącz joystick
Podłącz joystick
Podłącz joystick
Podłącz joystick

Joystick C64 ma pinout pokazany na pierwszym zdjęciu tego kroku. Aby podłączyć go do ESP32, potrzebne jest 9-pinowe złącze męskie DSUB (tj. gniazdo), jak pokazano na drugim zdjęciu. Usunąłem jeden z odsłoniętymi pinami ze starej płytki elektronicznej. Możesz go usunąć opalarką (ale rób to na zewnątrz!).

Piny należy połączyć zgodnie z kolejnością numeryczną na tych zdjęciach. Zwróć uwagę, że schemat odnosi się do strony joysticka, dlatego przedstawia połączenie żeńskiej wtyczki. Gniazdo (męskie) do podłączenia do ESP32 posiada wyprowadzenia z rozmieszczeniem „lustrzanym”. W razie wątpliwości należy pamiętać, że numer pinu jest zawsze podawany na złączach męskich i żeńskich, jak pokazano na trzecim rysunku.

Jeśli chcesz sterować grami tylko za pomocą joysticka, podłącz jego wspólny pin (9) do ESP32 +5V, a piny 1, 2, 3, 4 i 6 joysticka do pinów podanych przez ESP zgodnie z poniższą listą.

  • ESP pin 12 do prawego przycisku (RS232 pin 4)
  • ESP pin 14 do lewego przycisku (RS232 pin 3)
  • ESP pin 35 do przycisku Down (RS232 pin 2)
  • ESP pin 25 do przycisku Up (RS232 pin 1 i 6, tj. Joystick fire)

Uwaga: piny ESP 12, 14, 25 i 35 muszą być również podłączone do GND przez rezystor 1 do 5 kOhm. W ten sposób, gdy przycisk jest zwolniony (otwarty), pin ESP ma dokładnie zero woltów.

Pozycja GÓRA joysticka NB2 i przycisk ognia są połączone ze sobą do styku ESP 25-

Podłączyłem cztery przyciski na płytce PC, w ten sposób nie potrzebuję joysticka do grania (choć z joystickiem jest o wiele śmieszniej). Ponownie, pin 9 RS232 musi być podłączony do +5 V, a piny joysticka są po prostu równoległe do przycisków.

Krok 6: Wnioski i potwierdzenie

Wnioski i potwierdzenie
Wnioski i potwierdzenie

Jeśli wszystko działa poprawnie, po prostu podłącz monitor VGA i powinieneś cieszyć się grą w starym stylu!

Możesz również narysować zestaw Mandelbrota w rozdzielczości 640 x 350 pikseli, aby przetestować możliwości biblioteki VGA.

Zwróć uwagę, że kod jest napisany w taki sposób, aby inne gry można było łatwo dodawać w przyszłości (ESP32 ma dużo miejsca!). Jeśli ten projekt cieszy się wystarczającym zainteresowaniem, mogę to zrobić…

Na koniec chciałbym przekazać moje czołgi Fabrizio Di Vittorio za jego niesamowitą bibliotekę VGA ESP32. Więcej szczegółów, przykładów i… Space Invaders znajdziesz na jego stronie.

Zalecana: