Spisu treści:
- Krok 1: Płyty ESP32, instalacja Arduino IDE i konfiguracja biblioteki VGA
- Krok 2: Przesyłanie „ESP32_VGA_Tetris_Snake_Breakout_Bomber_V1.0”
- Krok 3: Podłączanie portu VGA
- Krok 4: Połącz cztery przyciski
- Krok 5: Podłącz joystick
- Krok 6: Wnioski i potwierdzenie
Wideo: ESP32 VGA Arcade Games i joystick: 6 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:28
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
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:
- Zainstaluj ostatnie Arduino IDE
- Skonfiguruj ESP32 w IDE i
- 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
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
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
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
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:
Wbudowany wyświetlacz LED Arduino Games: 7 kroków (ze zdjęciami)
Wbudowany wyświetlacz LED Arduino Games: znany również jako system gier z wyświetlaczem drabinkowym LED. Attiny-85 wyposażony w sprzęt i oprogramowanie do odtwarzania pełnego akcji „wideo”; gry, na wbudowanym wyświetlaczu LED. Posiada multipleksowany wyświetlacz drabinkowy z 12 diodami LED i obsługuje do 6 wejść przycisków oraz op
Zewnętrzne VGA / GPU dla laptopów z EXP GDC Beast: 15 kroków (ze zdjęciami)
Zewnętrzna karta VGA / GPU do laptopów przy użyciu EXP GDC Beast: Hi Guys.. To jest mój pierwszy samouczek dotyczący instrukcji. Angielski nie jest moim pierwszym językiem, więc proszę wybacz moje błędy gramatyczne. Zrobiłem to w oparciu o moje doświadczenie w ulepszaniu mojego laptopa. I nie będę Cię zanudzał długim wstępem, skoro nie wiem
Arduino Basic PC z wyjściem VGA: 5 kroków (ze zdjęciami)
Arduino Basic PC z wyjściem VGA: W moim poprzednim Instructable pokazałem, jak zbudować retro 8-bitowy komputer z systemem BASIC, za pomocą dwóch Arduino i z sygnałem wyjściowym czarno-białym dla ekranu telewizora. Teraz pokażę jak zbudować ten sam komputer, ale z sygnałem wyjściowym w
ESP8266 VGA Pong: 5 kroków (ze zdjęciami)
ESP8266 VGA Pong: W tej instrukcji pokażę, jak zbudować reprodukcję klasycznej gry Pong na monitor VGA, używając ESP8266 i kilku innych komponentów. Ta gra jest możliwa dzięki bibliotece EspVGAx opublikowanej niedawno na GitHub przez Sandro Maffiodo
Arduino Arcade Lego Games Box: 19 kroków (ze zdjęciami)
Arduino Arcade Lego Games Box: Jeśli masz dzieci, prawdopodobnie napotkasz te same problemy, co w przypadku zestawów Lego, które dla nich kupiłeś. Składają się i bawią się nimi, ale po chwili zestawy zamieniają się w jedną kupkę cegieł. Dzieci dorastają i nie wiesz, co