Spisu treści:

ESP8266 VGA Pong: 5 kroków (ze zdjęciami)
ESP8266 VGA Pong: 5 kroków (ze zdjęciami)

Wideo: ESP8266 VGA Pong: 5 kroków (ze zdjęciami)

Wideo: ESP8266 VGA Pong: 5 kroków (ze zdjęciami)
Wideo: Jak wejść w świat FPGA? – Rafał Bartoszak 2024, Lipiec
Anonim
Image
Image
Lista materiałów
Lista materiałów

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

Przesyłanie biblioteki i szkicu
Przesyłanie biblioteki i szkicu

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

Podłączanie części: złącze VGA
Podłączanie części: złącze VGA
Podłączanie części: złącze VGA
Podłączanie części: złącze VGA
Podłączanie części: złącze VGA
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

Podłączanie części: potencjometry i przycisk
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: