» Elektronika »Miniaturowa konsola do gier z grą Pong

Miniaturowa konsola do gier z grą Pong

Pozdrowienia mieszkańcy naszej strony!
Dziś mamy projekt z konsolą do mikro gier, który każdy może powtórzyć.


Niezbędne materiały i komponenty:








Niniejsza instrukcja pochodzi z kanału AlexGyver na YouTube. Mikrokontroler dla tego projektu potrzebuje tego:


To Attiny85 w pakiecie DIP, to nam wystarczy. Aby go nie lutować, bierzemy tak zwane gniazdo.

Potrzebujemy również wyświetlacza z Aliexpress, OLED o rozdzielczości 128 na 32 piksele.


Przydają się również szpilki.

Przyciski, których tutaj użyjemy to:

Oczywiście możesz wziąć klawiatury, ale będą musiały zostać sfinalizowane, ale tak naprawdę nie chcę wycinać i lutować. Komora baterii jest tego typu:

A my zmontujemy naszą konsolę do gry z płytką ścienną (jeśli chcesz, możesz samodzielnie zrobić deskę). Sflashujemy programator USBasp, ale zrobi to każdy AVR.

Schemat połączeń Składniki będą następujące:

Wyświetlacz łączy się ze stykami magistrali I2C mikrokontrolera. Łączymy przyciski z innymi bezpłatnymi pinami. Dodaj także przełącznik, aby włączyć / wyłączyć system. I w zasadzie to wszystko, pozostaje podłączyć zasilanie.
Oprogramowanie układowe jest ładowane do mikrokontrolera przez programistę zgodnie z następującym schematem:
Miniaturowa konsola do gier z grą Pong

Teraz zacznijmy od montażu i ułóż wszystkie elementy na płycie. Spróbujmy zebrać i zobaczyć, jak to wszystko wygląda.


Okazało się to dość ascetyczne. Nieźle Nadmiar części płyty chlebowej można odciąć.


Teraz naprawiamy wszystkie elementy po prostu lutując ich nogi.



Teraz musisz połączyć wnioski zgodnie ze schematem. W tym celu autor zaleca użycie cienkiego chińskiego drutu montażowego.

Dla wygody możesz użyć tego lustrzanego schematu połączeń.

Przewody te mają tak cienką izolację, że można je lutować bezpośrednio. Sama izolacja stopi się, a drut zostanie przylutowany.

Następnie przejdź do uszczelnienia komory baterii i przełącznika. Przedział musi być dodatkowo przymocowany za pomocą pistoletu do klejenia na gorąco.


Cóż, to wszystko, system jest zmontowany, pozostaje pobrać oprogramowanie. „Kamień” sflashujemy osobno, podłączając go do programatora na płycie chleba.


Oprogramowanie układowe, podobnie jak wszystkie projekty autora, jest własnością publiczną i można je pobrać z. Również na stronie projektu znajdziesz schemat i wszystkie inne niezbędne informacje na temat tego projektu.

Nie zastanowimy się szczegółowo nad pobraniem, jeśli coś jest niejasne, możesz zawsze spojrzeć na autora, aby uzyskać szczegółowe instrukcje.
W przypadku oprogramowania układowego wystarczy zainstalować Arduino ide, zainstaluj jądro do pracy z mikrokontrolerami serii Attiny, wybierz płytkę, wybierz programistę.


Następnie wybieramy częstotliwość 8 lub 16 MHz, otwieramy zakładkę „Narzędzia”, znajdujemy i wybieramy „Record Loader”.

Nie ma tam modułu ładującego, ale mikrokontroler zostanie dostrojony do wymaganej częstotliwości. Następnie wybierz zakładkę „Szkic” - „pobierz przez programator”. I czekamy, aż szkic zostanie załadowany do mikrokontrolera.

Teraz wyjmujemy „kamień” i wkładamy go do serca naszej mini konsoli do gier.


Jak widać, to działa! A teraz przyjrzyjmy się bliżej temu, co mamy w oprogramowaniu. ATtiny85 to mikrokontroler z 512 bajtami pamięci RAM, która jest bardzo mała. 99% bibliotek do pracy z takim wyświetlaczem używa bufora z boku mikrokontrolera, aby poprawnie przerysować obraz, ponieważ ten ekran nie może odczytać danych z własnego bufora, a on jest przy okazji.

Bufor dla tego wyświetlacza 128 * 32 pikseli zajmie 512 bajtów, jeśli chcemy zapamiętać stan każdego bitu, czyli piksela.
Oprócz bufora musimy również przechowywać inne dane, więc ta opcja z pewnością nie mieści się w pamięci o takim rozmiarze.

Dlatego postanowiono obniżyć rozdzielczość wyświetlacza do 64 * 16 pikseli przez buforowanie kwadratów 4 pikseli.

Autor bezpośrednio pracował z tym wyświetlaczem i udało mu się z powodzeniem wdrożyć swój pomysł. Szkic może się przydać komuś, kto chce pracować z tym wyświetlaczem za pomocą Attiny.


Teraz w odniesieniu do samej gry. Działa to po prostu. Piłka porusza się na oddzielnym zegarze, ruch polega na usunięciu punktu o tych samych współrzędnych i dodaniu nowego punktu na nowych współrzędnych.

Obliczanie współrzędnych polega po prostu na dodaniu wartości prędkości do współrzędnych w systemie wyświetlania.
Kiedy piłka wychodzi poza poziome ściany, po prostu odbija się od nich, zmieniając składową pionową prędkości na przeciwną, czyli ze znakiem minus (-).

Ponadto program sprawdza pionowe granice pola gry, jeśli piłka uderzy w rakietę (cóż, lub jakkolwiek prawidłowo ją nazwiesz), to odbije się, a kąt odbicia będzie losowy.
Jeśli piłka przebije ścianę za rakietą, gracz przegrywa bieżącą rundę, a przeciwnik otrzymuje punkt.

Ruch rakiety gracza jest realizowany w taki sam sposób, jak ruch piłki, to znaczy stara rakieta jest kasowana, a nowa jest rysowana, już z nowymi współrzędnymi. Współrzędne zmieniają się po kliknięciu przycisku.
Tak więc okazuje się znacznie szybsze niż czyszczenie całego wyświetlacza i ponowne renderowanie wszystkich elementów.


Teraz rakieta przeciwnika. Jest kontrolowany przez AI (sztuczną inteligencję).

Cóż, sztuczna inteligencja jest oczywiście głośno mówiona, ale jednak inteligencja ta robi bardzo prostą rzecz, a mianowicie sprawia, że ​​rakieta porusza się w kierunku, w którym jest teraz piłka, próbując wyrównać jej środek wzdłuż osi pionowej z pionową współrzędną piłki. Aby naprawdę pokonać takiego przeciwnika, autor zmusił go do zwolnienia, to znaczy, że oblicza swój następny ruch według timera, a zatem może nie mieć czasu na złapanie piłki i tym samym odepchnięcie go.

Również w grze zastosowano mechanikę o coraz większym stopniu złożoności. Co 10 punktów na korzyść gracza zwiększa się prędkość piłki. Wraz z tym rośnie także szybkość reakcji AI (przeciwnika).

W rezultacie oto taki prosty mały Pong. Nie bez powodu ta gra wideo została opracowana jako pierwsza, ponieważ nawet początkujący programista może ją napisać. Ale pomimo pozornej prostoty projektu, zamieszanie z chińskim wyświetlaczem zajęło autorowi około 20 godzin czystego czasu. Jednocześnie nie wziął pod uwagę czasu spędzonego na pisaniu kodu samej gry oraz innych procedur związanych z debugowaniem i konfigurowaniem obwodu.



W tym temacie sam szum jest procesem montażu, a nie aplikacją.Opracowywanie gier, nawet tych prostych, może być naprawdę bardzo interesujące. Zwłaszcza gdy próbujesz wepchnąć je do bardzo małego mikrokontrolera. A kiedy chiński wyświetlacz czeka na ciebie za rogiem ...

To wszystko. Dziękuję za uwagę. Do zobaczenia wkrótce!

Wideo autora:
6.5
5.5
5.5

Dodaj komentarz

    • uśmiechnij sięuśmiecha sięxaxaoknie wiemyahoonea
      szefiezadrapaniegłupiectaktak-takagresywnysekret
      przepraszamtańczyćdance2dance3przebaczeniepomocnapoje
      przestańprzyjacieledobrzegoodgoodgwizdaćomdlećjęzyk
      palićklaskanierakdeklarowaćdrwiącydon-t_mentionpobierz
      ciepłożałujęśmiech 1mdaspotkaniemoskingnegatywne
      niepopcornukaraćczytaćprzestraszyćstraszyszukaj
      drwinadziękujętoto_clueumnikostryzgadzam się
      źlepszczołablack_eyeblum3rumienić sięchwalić sięnuda
      ocenzurowaneuprzejmośćsekret2grozićzwycięstwoyusun_bespectacled
      shokrespektlolprevedwitamykrutoyya_za
      ya_dobryipomocnikne_huliganne_othodifludzakazzamknij
1 komentarz
keczup
zamiast plagiatować, lepiej byłoby wymyślić własne

Radzimy przeczytać:

Podaj go do smartfona ...