Spisu treści:
- Krok 1: Lista materiałów
- Krok 2: Prześlij bibliotekę i szkic
- Krok 3: Podłączanie części: złącze VGA
- Krok 4: Podłączanie części: potencjometry i przycisk
- Krok 5: Wnioski i podziękowania
Wideo: ESP8266 VGA Pong: 5 kroków (ze zdjęciami)
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
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 (aka Smaffer) i, o ile wiem, jest to pierwsza gra, która ją wykorzystuje.
Biblioteka implementuje rozdzielczość 512 x 480 pikseli, przechowywaną w buforze ramki wewnątrz pamięci RAM, który wymaga 30720 bajtów. Rozdzielczość jest ogromna w porównaniu do Arduino TVout czy VGAx (odpowiednio 128 x 96 i 120 x 60 pikseli). Mam nadzieję, że ta gra zainspiruje innych programistów do tworzenia lub odtwarzania bardziej złożonych gier.
Krok 1: Lista materiałów
Biblioteka EspVGAx wymaga ESP8266 z wyeksponowanymi wszystkimi GPIO, takimi jak ESP-12E, płyta NodeMCU-12E lub dowolna płyta, która ujawnia GPIO5 (D1), GPIO4 (D2) i GPIO13 (D7)
W szczególności użyłem:
- ESP8266 NodeMCU-12E (link tutaj)
- złącze DSUB15 (tj. złącze żeńskie VGA)
- Rezystor 330 Ohm
- inny rezystor (około 1 do 3 kOhm)
- dwa potencjometry 10 kOhm
- Przycisk (n.o.)
- dwie diody (takie jak 1N4007s)
- deska do krojenia chleba
- przewody
Dostałem złącze DSUB15 ze starej karty VGA PC. Alternatywnie można również przeciąć stary kabel VGA i podłączyć przewody bezpośrednio do płytki stykowej.
Krok 2: Prześlij bibliotekę i szkic
Istnieją różne metody programowania i ESP8266; Użyłem Arduino IDE do napisania Ponga i przesłania kodu.
Należy pamiętać, że biblioteka EspVGAx działa dla Arduino IDE 1.8.1. Jeśli masz inne wersje, najlepiej pobrać pliki.zip i rozpakować je w dedykowanym folderze. Wersja dla systemu Windows jest tutaj. Wersje dla innych systemów operacyjnych są tutaj.
Następnie należy pobrać bibliotekę EspVGAx ze strony GithHub tutaj (bezpośredni link do wersji zip tutaj) i rozpakować ją w bibliotekach folderów w oprogramowaniu Arduino.
NB W pliku espvgax_draw.h jest mały błąd. Aby to poprawić, wystarczy zastąpić wiersz 17:
while (x0%32) { z while (x0%32 && sw > 32) {
Na koniec możesz pobrać ESP8266_Pong.rar na końcu tego kroku.
Po rozpakowaniu, aby przesłać go na ESP8266, musisz skonfigurować Arduino IDE.
Jeśli nigdy tego nie robiłeś, możesz znaleźć wszystkie potrzebne instrukcje w tej instrukcji, w szczególności w kroku 2.
Po skonfigurowaniu wszystkiego ustawienia ESP8266 powinny wyglądać jak te pokazane na powyższym obrazku.
Jeśli możesz wgrać kod bez błędów, możesz zacząć montować części.
Krok 3: Podłączanie części: złącze VGA
Polecam najpierw podłączyć port VGA, jak pokazano na zdjęciach powyżej. Należy pamiętać, że łącząc ze sobą trzy styki, czerwony, zielony i niebieski (tj. styki 1, 2 i 3 na złączu DSUB15), na ekranie pojawi się czarno-biały obraz. Możesz także mieć różne kombinacje kolorów. Zobacz szczegóły na stronie biblioteki GitHub.
Ponadto należy podłączyć rezystor 330 Ohm między pinami RGB i D7 (GPIO13) w ESP8266. Dało mi to nieco szarawy obraz na monitorze, więc po kilku próbach postanowiłem go w ogóle wyeliminować.
W tym momencie, jeśli wszystko działa poprawnie, możesz już podłączyć monitor i zobaczyć początkowy ekran gry, z banerem „ESP8266 VGAx Pong”.
Krok 4: Podłączanie części: potencjometry i przycisk
Przycisk należy podłączyć pomiędzy 3,3V a pin D0 (GPIO16). Podłącz również rezystor 1 do 3 kOhm z D0 do masy. Dzięki temu D0 nie będzie w nieokreślonym stanie, gdy przycisk jest otwarty.
Połączenie dwóch potencjometrów jest mniej trywialne, tak naprawdę ESP8266 ma tylko analogowy port wejściowy A0 (ADC0)! Sztuczka polega na tym, aby podłączyć oba wyjścia pot.s do tego samego portu i „zmultipleksować” je. Multipleksowanie oznacza po prostu, że włączysz potencjometr, odczytasz go, a następnie wyłączysz i przejdziesz do drugiego.
Jeśli chcesz dowiedzieć się więcej o tej metodzie, możesz przeczytać tę instrukcję.
Podłącz jeden koniec potencjometru do GND, drugi biegun do D5 dla potencjometru lewego odtwarzacza i D6 dla potencjometru prawego odtwarzacza.
Każdy środkowy pin potencjometru należy podłączyć do pojedynczej diody, a pozostałe strony diod należy podłączyć do A0 (ADC0), z polaryzacją pokazaną na powyższym rysunku.
Krok 5: Wnioski i podziękowania
Jestem wdzięczny Sandro Maffiodo - SMAFFER - za bibliotekę ESPVGAX. Bez tego ta gra nie byłaby możliwa.
Mam nadzieję, że ten Instructable będzie inspiracją dla innych programistów do tworzenia reprodukcji bardziej złożonych klasycznych gier zręcznościowych za pomocą ESP8266, który ma znacznie mniejsze ograniczenia niż Arduino.
Na koniec napisałem tę instrukcję, aby przesłać ją do konkursu zabawek: jeśli podoba ci się lub powielasz, poświęć chwilę, aby na nią zagłosować!
Zalecana:
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
Stwórz własną grę 1D Pong: 5 kroków (ze zdjęciami)
Stwórz własną grę ponga 1D: W tym projekcie pokażę, jak połączyłem płytę MDF z przyciskami brzęczyka, diodami LED i Arduino Nano, aby stworzyć grę w ponga 1D, w którą gra się naprawdę fajnie. Po drodze pokażę Ci, jak stworzyć układ elektroniczny i jak różni
ESP32 VGA Arcade Games i joystick: 6 kroków (ze zdjęciami)
ESP32 VGA Arcade Games 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 zrobiłem wersję z
Tenis Pong z matrycą LED, Arduino i joystickami: 5 kroków (ze zdjęciami)
Pong Tennis z matrycą LED, Arduino i joystickami: Ten projekt jest przeznaczony zarówno dla początkujących, jak i doświadczonych majsterkowiczów. Na podstawowym poziomie można to zrobić za pomocą płytki stykowej, drutów połączeniowych i przykleić do kawałka złomu (użyłem drewna) za pomocą Blu-Tack i bez lutowania. Jednak z większym wyprzedzeniem
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