
Peter Holmes
0
5068
1450
Pong była pierwszą grą wideo, która trafiła na rynek masowy. Po raz pierwszy w historii koncepcja “gra wideo” został wprowadzony do domu rodzinnego dzięki Atari 2600 - więc słusznie składamy mały hołd temu historycznemu klejnotowi. Teraz możesz przeżyć to ponownie (co prawda nieco nudna rozgrywka) za pomocą Arduino i niektórych popularnych komponentów.
Nie będę kłamał - jest mało prawdopodobne, że twoja córka zrezygnuje z Nintendo DS, a to nie zapewni godzin zabawy dla całej rodziny - ale to niesamowity i łatwy projekt, aby poprawić kodowanie Arduino. A jeśli dopiero zaczynasz, nie zapomnij zapoznać się z naszym przewodnikiem Arduino dla początkujących.
Zrobimy dwa podstawowe kontrolery, a wideo będzie przesyłane do telewizora za pomocą standardowego kabla wideo kompozytowego.
Aby przenieść ten projekt na wyższy poziom, możesz wydrukować obudowę w 3D. Właśnie to zrobił użytkownik YouTube PotentPrintables!
Wymagania dotyczące Arduino Pong
- 470 rezystor omowy x1
- 1 tys rezystor omowy x1
- Potencjometr 10 kΩ (rezystor zmienny) x2
- Arduino x1 (dowolna wersja)
- RCA wtyczka x1 (jeśli masz więcej niż jeden, możesz także podłączyć dźwięk. Jeden dla filmu to absolutne minimum)
- Naciśnij przycisk przełącznik x1
- 10 tys rezystor omowy x1
Możesz także pobrać bibliotekę TV Out Arduino stąd - pobierz TVoutBeta1.zip, najnowsza wersja. Umieść wszystkie powstałe foldery w swoim / arduino / libraries i zrestartuj Arduino IDE, jeśli jest już otwarte.
Testowanie wyjścia telewizyjnego
Wyjmij wtyczkę RCA i zdejmij zewnętrzną warstwę. Zbierz osłonę, przekręć i odłóż na bok. To jest twoja ziemia. Na środku powinien znajdować się kolejny kabel z plastikowym ekranem - ponownie zdejmij go, aby uzyskać linię sygnałową.
Przylutuj rezystory 470 Ω i 1 kΩ do środkowej linii sygnałowej wtyczki RCA - zapewnia to sygnał synchronizacji i rzeczywisty sygnał wideo, połączone w celu wytworzenia analogowego wejścia wideo. Rezystor 470 Ω powinien wejść w cyfrowe złącze IO pin D07, a rezystor 1k om przechodzi w pin D09.
Te piny są ustawiane przez bibliotekę, którą importujemy, więc nie możesz ich zmienić. Jeden z pinów Arduino GND powinien przejść do ekranowania (na zewnątrz) RCA.
Teraz możesz iść naprzód i załadować przykład; chociaż zarówno PAL, jak i NTSC są dostarczane, to nie powinno tak naprawdę mieć znaczenia w nowoczesnych telewizorach cyfrowych - demo NTSC działało dla mnie dobrze, mimo że jestem w Wielkiej Brytanii. Podłącz do telewizora i powinieneś dostać piękną retro kostkę 3D. Oooooh tak - jesteś już podekscytowany? jestem.
Przetestuj analogowe wejścia potencjometru
Ok, mamy wyjście TV, teraz spróbujmy kontrolerów. Okablowanie “garnki” nie jest tak krytyczny - każdy powinien mieć 3 piny, a środkowy prawie zawsze wytwarza sygnał wyjściowy. Połącz to z A0 i A1 (po jednym dla każdej puli). Na jednym z bocznych pinów - nie ważne które - podłącz + 5 V. Drugi kołek po drugiej stronie powinien spaść na ziemię.
Tutaj umieściłem je obiema rękami na pojedynczej desce, ponieważ mam tylko krótkie przewody. W przypadku wypolerowanego produktu będziesz chciał użyć starego kabla sieciowego, aby dać ci trochę dystansu (dzięki czemu możesz faktycznie usiąść na kanapie, aby grać).
Następnie załaduj jeden z podstawowych przykładowych szkiców dostarczonych z Arduino - analogowy. Ta wersja demonstracyjna będzie flashować wbudowaną diodę LED szybciej lub wolniej, w zależności od wejścia na A0.
Nie testuje drugiej puli A1, ale jeśli masz poprawnie podłączone A0, nie widzę, jak popełnisz błąd na A1, więc załóżmy, że wszystko jest w porządku i przejdźmy dalej.
Dodaj przełącznik Start
Na koniec dodamy przełącznik uruchamiania w D02. Aby to zrobić, zapoznaj się ze schematem połączeń tutaj. Ten przełącznik zostanie użyty do uruchomienia gry w menu.
Kod Ponga
Używamy kodu napisanego przez Lamonica, modyfikowane przez duboisvb dla dwóch graczy i zaktualizowane przeze mnie do najnowszej wersji beta biblioteki TV out. Możesz wyświetlić i pobrać kod z tej pastebin.
Jest to dość długi, ale prosty kod, który nie powinien wymagać ode mnie żadnego wyjaśnienia. Podobnie jak większość gier, opiera się na stanie gry (menu, gra, zakończenie gry) i odczytuje wartości wejściowe obu kontrolerów oraz przełącznika przy każdej iteracji pętli. Poza tym są metody rysowania ekranu, piłki, łopatek i logiki gry.
Pamiętaj, że kod obejmuje wyjście audio też: nie mogłem znaleźć żadnych wtyczek RCA do przetestowania tego, ale jeśli masz, podłącz przewód sygnałowy bezpośrednio do D11, a powinieneś uzyskać przyjemne dźwięki retro.
Szczerze mówiąc, nie wiedziałem, że Arduino mógłby nawet wyprowadzić telewizję bez niezwykle złożonego kodowania; biblioteka wyjścia telewizyjnego sprawia, że jest to naprawdę łatwe. Nawet jeśli nie interesujesz się grami retro, skorzystanie z tego podstawowego wyjścia telewizyjnego to świetny sposób na wykorzystanie istniejącego sprzętu jako taniego urządzenia monitorującego. Możesz oczywiście również wydrukować kolor.
Myślisz, że wypróbujesz Arduino Pong, czy może stworzysz własny remake retro? Powiedz nam w komentarzach, jeśli masz!