![Konsola Arduino VGA z pięcioma grami: 4 kroki Konsola Arduino VGA z pięcioma grami: 4 kroki](https://i.howwhatproduce.com/images/001/image-213-86-j.webp)
Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-23 15:03
![Image Image](https://i.howwhatproduce.com/images/001/image-213-88-j.webp)
![](https://i.ytimg.com/vi/imrxg6VMllc/hqdefault.jpg)
![Konsola Arduino VGA z pięcioma grami Konsola Arduino VGA z pięcioma grami](https://i.howwhatproduce.com/images/001/image-213-89-j.webp)
![Konsola Arduino VGA z pięcioma grami Konsola Arduino VGA z pięcioma grami](https://i.howwhatproduce.com/images/001/image-213-90-j.webp)
W moich poprzednich Instructables odtworzyłem uproszczone wersje niektórych z najpopularniejszych klasycznych gier zręcznościowych, za pomocą samego Arduino i kilku innych komponentów. Później połączyłem pięć z nich w jeden szkic. Tutaj pokażę, jak zbudować prostą konsolę do gry w Pong, Breakout, Bomber, Tetris oraz zabawkę do rysowania inspirowaną Etch-a-Sketch. Na tej konsoli można również zagrać w Snake i dwie inne gry napisane przez innych autorów: Bit Ninja Sandro Maffiodo aka „Smaffer” i Stacker Nikity Kurylev.
Główną cechą jest generowanie sygnału VGA, dzięki bibliotece VGAx, stąd konsola potrzebuje monitora VGA. Moim celem, jak zwykle, jest uniknięcie jakichkolwiek „specjalnych elementów” do budowy, nie potrzebujesz wtedy żadnych wspierających układów scalonych ani osłon! Jedyne elementy to dwa potencjometry, pięć przycisków, kilka rezystorów i złącze DSUB15 (VGA). Głośnik piezoelektryczny jest opcjonalny. Możesz zobaczyć, jak te gry wyglądają na zdjęciach na tej stronie.
Biblioteka VGAx pozwala na użycie czterech kolorów o rozdzielczości 120 x 60 pikseli, niewiele, ale wystarcza na tę retro konsolę do gier. Grafika jest surowa, ale dzięki zastosowaniu potencjometrów gry działają płynnie. Dostępne są również proste efekty dźwiękowe.
Krok 1: Jak zbudować własną konsolę Arduino VGA?
![Jak zbudować własną konsolę Arduino VGA? Jak zbudować własną konsolę Arduino VGA?](https://i.howwhatproduce.com/images/001/image-213-91-j.webp)
![Jak zbudować własną konsolę Arduino VGA? Jak zbudować własną konsolę Arduino VGA?](https://i.howwhatproduce.com/images/001/image-213-92-j.webp)
Najpierw pobierz kody ArduinoVGAgame.ino i/lub Snake.ino na dole tej strony i skopiuj je na swój komputer w katalogu o tej samej nazwie. Pobierz bibliotekę VGAx z tego łącza na GitHub. Najprostszym sposobem jest skopiowanie go do podfolderu oprogramowania Arduino o nazwie „biblioteki”, aby był natychmiast rozpoznawany.
WAŻNE: ta biblioteka działa dla Arduno IDE 1.6.4, ale nie jest w pełni kompatybilna ze starszymi lub nowszymi wersjami.
Prześlij kod na swoją płytkę Arduino (testowałem zarówno Uno, jak i Nano). Ostrzeżenie o małej ilości dostępnej pamięci jest normalne. Jeśli nie masz innych błędów wszystko jest w porządku i możesz od razu zacząć budować własną konsolę.
Do tego potrzebujesz:
- Arduino Uno Rev. 3 lub Arduino Nano 3.x (ATmega328)
- złącze DSUB15, tj. złącze żeńskie VGA lub kabel VGA do przecięcia.
- rezystory: 2 x 68 Ohm i 2 x 470 Ohm oraz 5 x 1 do 2 kOhm
- dwa potencjometry liniowe 10 kOhm (podobne wartości też są w porządku)
- pięć przycisków
- kawałek kabla
- jedno lub dwa ładne pudełka do umieszczenia wszystkich komponentów.
Fakultatywny:
- deska do krojenia chleba lub stripboard
- głośnik piezo
Schemat znajduje się na początku tego kroku wraz z przykładem gotowej „konsoli”.
schemat pokazuje jak podłączyć przycisk i potencjometr. Dokładniej, musisz podłączyć pięć przycisków odpowiednio do pinów 5, 10, 11, 12 i 13. Akcja wykonywana przez każdy przycisk jest opisana w prawej górnej tabeli na schemacie. Po lewej pokazano jak podłączyć potencjometr (potrzebne są dwa potencjometry do pinów A1 i A2). Głośnik należy podłączyć do analogowego pinu A0.
Płytkę Arduino ze złączem VGA umieściłem w drewnianym pudełku, w którym znajduje się również potencjometr pierwszego gracza i cztery przyciski, podczas gdy potencjometr drugiego gracza i przycisk startu znajdują się w osobnym, mniejszym pudełku.
Jeśli podoba Ci się ta zabawka i zdecydujesz się ją odtworzyć, doceniam, że napiszesz komentarz lub wyślesz zdjęcie w sekcji komentarzy poniżej.
Krok 2: Gry od innych autorów
Sandro Maffiodo niedawno opublikował grę BitNinja. Więcej informacji znajdziesz tutaj i pobierz kod tutaj.
Aby korzystać z mojej konsoli, wystarczy zremapować przycisk w jego kodzie w następujący sposób:
#define BTN_UP 11 (zamiast 13)
#define BTN_LEFT 10 (zamiast 12)
#define BTN_RIGHT 12 (zamiast 11)
Stacker od Nikity Kurylowa jest dostępny tutaj. Więcej informacji tutaj.
Ponownie, musisz przemapować jeden przycisk, w innej części kodu: po prostu zamień digitalRead(2) na digitalRead(13)
Krok 3: Dodatek 1: Więcej szczegółów na temat budowania kontrolerów
![Załącznik 1: Więcej szczegółów na temat budowania kontrolerów Załącznik 1: Więcej szczegółów na temat budowania kontrolerów](https://i.howwhatproduce.com/images/001/image-213-93-j.webp)
![Załącznik 1: Więcej szczegółów na temat budowania kontrolerów Załącznik 1: Więcej szczegółów na temat budowania kontrolerów](https://i.howwhatproduce.com/images/001/image-213-94-j.webp)
![Załącznik 1: Więcej szczegółów na temat budowania kontrolerów Załącznik 1: Więcej szczegółów na temat budowania kontrolerów](https://i.howwhatproduce.com/images/001/image-213-95-j.webp)
![Załącznik 1: Więcej szczegółów na temat budowania kontrolerów Załącznik 1: Więcej szczegółów na temat budowania kontrolerów](https://i.howwhatproduce.com/images/001/image-213-96-j.webp)
Możesz zrealizować kontroler na wiele różnych sposobów, w zależności od dostępnego materiału i Twojego gustu.
Lubię je realizować za pomocą drewnianych pudełek (patrz zdjęcia na tej stronie). Skrzynka główna dla Arduino, złącze VGA oraz przyciski pierwszego odtwarzacza i potencjometr; drugi (mniejszy) tylko na przycisk i koło drugiego gracza (potrzebne do Ponga i zabawki do rysowania). Inną możliwością jest umieszczenie wszystkiego w jednym większym pudełku.
Najpierw polecam podłączyć port VGA. Na pierwszym i drugim zdjęciu widać pewne szczegóły: zwróć uwagę na dwa rezystory 470 Ohm dla czerwonego i zielonego podłączone odpowiednio do pinów 6 i 7 oraz dwa 68 Ohm do pinów 3 i 9 dla sygnału synchronizacji poziomej i pionowej.
Możesz wybrać różne kombinacje kolorów w zależności od pinów podłączonych do złącza VGA DSUB15, piny 1, 2 i 3 reprezentują odpowiednio czerwony, zielony, niebieski (RGB). Podłączyłem piny 1 i 2, więc mam następującą kombinację kolorów: (0, 0) = czarny; (1, 0) = czerwony; (0, 1) = zielony; (1, 1) = żółty.
W przypadku wszystkich różnych możliwości proponuję zapoznać się ze szczegółami na stronie, z której pobierasz biblioteki VGAx.
Jak tylko złącze VGA będzie gotowe, możesz przygotować wszystkie inne kable do przycisków, kółek i głośnika (patrz rysunek 2).
Teraz po prostu złóż wszystko razem: pamiętaj, że każdy pin przycisku musi być podłączony do masy przez rezystor 1 lub 2 kOhm, w przeciwnym razie, gdy przycisk jest otwarty, stan pinu może być nieokreślony. Oznacza to, że jeśli pin pozostanie odłączony, możesz mieć na nim losowe (statyczne) napięcie, które może go aktywować. Zobacz więcej szczegółów na schemacie w drugim kroku tej instrukcji.
Ostatnim krokiem jest naprawienie wszystkiego na miejscu. Użyłem pistoletu do klejenia na gorąco, ale możesz użyć swojej ulubionej metody.
Krok 4: Dodatek 2: Niektóre uwagi dotyczące limitów pamięci
To niesamowite, że proste Arduino jest w stanie generować sygnał VGA i wszystkie te gry razem. Prawdziwym wąskim gardłem jest brak SRAM. Mikrokontroler AVR ma tylko 2048 bajtów dostępnych do przechowywania i manipulowania zmiennymi, a biblioteka VGAx przechowuje zmienne ekranowe w buforze ramki 120x60 pikseli, gdzie każdy piksel potrzebuje 2 bitów (4 kolory), co daje łącznie 1800 bajtów. Oznacza to, że na zmienne szkicu pozostało tylko 248 bajtów. Co więcej, z mojego doświadczenia wynika, że należy pozostawić co najmniej 100 bajtów wolnych, aby uniknąć niestabilności. Wykorzystując ponad 1950 bajtów pamięci dynamicznej, mikrokontroler zaczyna wykazywać dziwne i nieprzewidywalne zachowanie.
Oznacza to, że wszystkie zmienne muszą być współdzielone przez różne gry, a to sprawia, że kod jest nieczytelny i trudny do debugowania. To nie tylko kwestia „dodania nowej gry” do poprzedniego szkicu, ale cały kod musi być głęboko zmodyfikowany i zoptymalizowany.
Ponadto musiałem użyć minimalnego możliwego formatu zmiennej: na przykład dla wszystkich współrzędnych musiałem użyć „byte” zamiast „int” lub, w innych przypadkach, musiałem preferować „int” zamiast „float”.
Na koniec moje podziękowania kieruję do Sandro Maffiodo aka Smaffera, twórcy biblioteki VGAx i niesamowitej gry BitNinja. Bez tej biblioteki ten projekt nie mógłby zostać zrealizowany.
Dziękuję również Nikita Kurylev za prostą, ale zabawną grę Stacker.
Zalecana:
ArduBaby - Arduboy połowy rozmiaru z 500 grami na Serial Flash: 10 kroków
![ArduBaby - Arduboy połowy rozmiaru z 500 grami na Serial Flash: 10 kroków ArduBaby - Arduboy połowy rozmiaru z 500 grami na Serial Flash: 10 kroków](https://i.howwhatproduce.com/images/006/image-15699-24-j.webp)
ArduBaby - Arduboy Half Size z 500 grami na Serial Flash: Możesz obejrzeć ten film na YouTube, aby zobaczyć, jak stworzyłem ten mały domowy Arduboy z seryjną pamięcią flash, która może przechowywać aż 500 gier do grania w drodze . Podziękowania dla twórcy (Kevina Batesa), Arduboy jest bardzo
Mini konsola do gier Ardubaby z 500 grami: 10 kroków
![Mini konsola do gier Ardubaby z 500 grami: 10 kroków Mini konsola do gier Ardubaby z 500 grami: 10 kroków](https://i.howwhatproduce.com/images/006/image-15843-35-j.webp)
Ardubaby Mini Game Console Z 500 grami: Kredyty dla twórcy (Kevina Batesa), Arduboy to bardzo udana 8-bitowa konsola do gier. Były tysiące gier napisanych przez hobbystę, który udostępnił je swobodnie na forum społeczności Arduboy, dzięki czemu więcej osób może nauczyć się kodować.Sprz
Super Pitendo: Raspberry Pi 3b+ Retro Konsola Konsola: 6 kroków
![Super Pitendo: Raspberry Pi 3b+ Retro Konsola Konsola: 6 kroków Super Pitendo: Raspberry Pi 3b+ Retro Konsola Konsola: 6 kroków](https://i.howwhatproduce.com/images/001/image-313-59-j.webp)
Super Pitendo: Raspberry Pi 3b+ Retro Konsola Konsola: Witam! Podczas ostatniego sezonu wakacyjnego i ponownie w tym roku słyszałem, jak moje rodzeństwo opowiadało o tym, jak fajnie uważali, że wychodzą na rynek konsole retro. ALE słyszałem też o ich frustracjach związanych z tym, jak drogie były i trudno było je znaleźć
Nowe i ulepszone etui na iPoda z pięcioma gumami (dla NANO 3G): 5 kroków
![Nowe i ulepszone etui na iPoda z pięcioma gumami (dla NANO 3G): 5 kroków Nowe i ulepszone etui na iPoda z pięcioma gumami (dla NANO 3G): 5 kroków](https://i.howwhatproduce.com/images/004/image-11013-11-j.webp)
Nowe i ulepszone etui na iPoda z pięcioma gumami (DLA NANO 3G): Tomcat94 Ostatnio opublikował etui na iPoda wykonane z owijki z pięcioma gumami. Cóż, postanowiłem zrobić coś podobnego, ale dla iPoda Nano
Stwórz super konfigurowalny pokój kina domowego i pokój z filmami / grami wideo: 5 kroków
![Stwórz super konfigurowalny pokój kina domowego i pokój z filmami / grami wideo: 5 kroków Stwórz super konfigurowalny pokój kina domowego i pokój z filmami / grami wideo: 5 kroków](https://i.howwhatproduce.com/preview/how-and-what-to-produce/10966007-make-a-super-customizable-home-theatre-and-movievideogame-room-5-steps-j.webp)
Stwórz super konfigurowalny pokój kina domowego i pokój filmowy / gier wideo: Jak skonfigurować i zaplanować tani, niedrogi, prosty w konfiguracji system kina domowego