logo elektroda
logo elektroda
X
logo elektroda
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak zbudować projekt gry PONG na Arduino Pro Mini? Załączam opis kroków.

sanfran 16 Lut 2020 15:07 3786 6
  • Chciałem trochę wciągnąć syna w Arduino i zbudować z nim projekt gry PONG oparty na: https://michaelteeuw.nl/post/87381052117/building-pong

    Okazało się, że syn się dosyć szybko wykolegował z projektu twierdząc że XBOX jest ważniejszy, a jednak postanowiłem poświęcić kilka wieczorów i projekt dokończyć. W tym czasie oryginalny projekt ewoluował na tyle, że pozwoliłem go sobie zamieścić w tym dziale. Pan Michael Teeuw odwalił kawał dobrej roboty z programowaniem silnika gry, więc pozwoliłem sobie go zaadaptować na swoje potrzeby.

    Oto jak wygląda gotowe pudełko z grą w różnych wariantach gry:
    Jak zbudować projekt gry PONG na Arduino Pro Mini? Załączam opis kroków. Jak zbudować projekt gry PONG na Arduino Pro Mini? Załączam opis kroków. Jak zbudować projekt gry PONG na Arduino Pro Mini? Załączam opis kroków. Jak zbudować projekt gry PONG na Arduino Pro Mini? Załączam opis kroków.

    A tak wygląda w środku:
    Jak zbudować projekt gry PONG na Arduino Pro Mini? Załączam opis kroków. Jak zbudować projekt gry PONG na Arduino Pro Mini? Załączam opis kroków.

    A tak schemat połączeń:
    Jak zbudować projekt gry PONG na Arduino Pro Mini? Załączam opis kroków.

    Opis konstrukcji.
    Zamówiłem ekran OLED 0.96. W stosunku do pięcio-pionowych ekranów należało zmienić port adresacji i zaskoczyło na stole. Wyświetlacz ten jest bardzo malutki. Domówiłem więc OLED 1.3” (podobno kompatybilny), ale nie do końca. Mniejszy jest zbudowany na układzie SSD1306 a większy na SSH1106. Powoduje to, że należało zastosować zupełnie inną bibliotekę - U8g2lib.h - i trochę przetłumaczyć program. Potencjometry 22k które miałem okazały się nieliniowe, co było bardzo uciążliwe, więc należało kupić liniowe. Należy zwrócić na to uwagę podczas budowy swojego urządzenia.
    W tym czasie zakiełkowała myśl aby zbudować urządzenie jak najbardziej przypominające stare gry telewizyjne. Dodałem więc pięć przełączników bistabilnych i jeden astabilny.
    Pierwszy przełącznik to zasilanie. Użyłem baterii 6F22. Ponieważ chińskie klony ProMini słyną ze słabego stabilizatora, który nie dość, że nie wystarczy na zasilanie czegokolwiek więcej niż samej płytki to jeszcze lubi się przepalać przy przypadkowym zwarciu, więc dorzuciłem stabilizator 7805.
    Drugi przełącznik to odcinanie masy głośniczka. Bez żadnych programowych sztuczek. Głośniczek jest głośny, więc się przydaje.
    Trzy kolejne podłączone są do pinów 10, 11 i 12.
    Odpowiadają za zmniejszanie paletek, zmianę na Tenis - Piłka Nożna oraz trzeci uruchamia Squash dla jednej osoby (nie działa gdy wybieramy Piłkę Nożną).
    Moim celem była możliwość zmiany rodzaju gry w każdym momencie, a nie tylko podczas startu, więc przełączniki są sprawdzane w głównej pętli.
    Pętla sprawdza przełączniki, oblicza położenie piłki, paletek po czym kasuje ekran i rysuje go na nowo.

    Ostatni przycisk astabilny zwiera do masy linię RST.

    W stosunku do oryginału wyrzuciłem stronę startową z napisami. Wyświetlacz SSH1106 wymaga zadeklarowania fontów, które zajmują dużo miejsca w pamięci. Aby oszczędzić pamięć wrzuciłem okrojone fonty (tylko cyferki) do wyświetlania wyników.
    Pierwsza modyfikacja to Squash. Polegała na przesunięciu prawej paletki do brzegu, zwiększeniu jej rozmiaru do 64 punktów, zlikwidowaniu środkowej linii i gotowe.
    Nieco więcej zabawy wymagała Piłka Nożna. Należało wprowadzić drugą parę paletek; zaimplementować „przepuszczanie” piłki przez napastników w kierunku bramki, zaimplementować odbijanie się piłeczki od pionowych ścianek. Nawet jakoś wyszło.

    W pracach artystycznych nigdy nie byłem mistrzem, więc pudełko wyszło, jak wyszło.

    Dodaje poniżej skrypt programu. Oryginalny do ściągnięcia z pierwszego linku.

    Kod: C / C++
    Zaloguj się, aby zobaczyć kod

    Fajne? Ranking DIY
    O autorze
    sanfran
    Specjalista Sieci, Internet
    Offline 
    Specjalizuje się w: sieci komputerowe zawodowo; mechanika prywatnie
    sanfran napisał 8694 postów o ocenie 2521, pomógł 845 razy. Mieszka w mieście Aberdeen. Jest z nami od 2015 roku.
  • #2 18474862
    khoam
    Poziom 42  
    Wpuszczą do samolotu z taką zabawką w bagażu podręcznym? ;) Zawsze to byłaby rozrywka w czasie lotu :)
    Jak długo na tej baterii można pograć?
  • #3 18474937
    sanfran
    Specjalista Sieci, Internet
    Pobór prądu to 28mA. Wychodzi, że alkaliczna zasili to przez ok 20 godzin.
    Do samolotu wpuszczą, dlaczego nie. Przepuszczą przez rentgena, jak będą chcieli to przetrą papierkami i sprawdza na obecność podejrzanych chemikaliów.
  • #4 18474998
    khoam
    Poziom 42  
    Trochę to wygląda, jak zdalny detonator :please: Chociaż obudowa i sama koncepcja podoba mi się.
  • #5 18476230
    Stanley_P
    Poziom 27  
    Witam
    Ehhhh, gdzie te czasy Radioamatora i Krótkofalowca bodaj 11/1978... Skleciłem toto (tzn. klona Ponga), wówczas jeszcze nie posiadając dowodu osobistego... ;-) Zawierało około 20 układów scalonych TTL, które niełatwo było wtedy zdobyć... Tak, tak, wiem, że to wręcz niewyobrażalne, ale kiedyś naprawdę były czasy, gdy nie istniały Alledrogo, TME, Aliexpress ;-)
    A jakaż była radość i duma gdy pajęczyna ruszyła (tzn. elektronika znajdowała się na kilku połączonych ze sobą modułach-płytkach, wykonanych wg. schematów i PCB w RiK). Potem jakaś zmajstrowana w naprędce a'la obudowa, chyba ze sklejki... i potencjometry bodaj w mydelniczkach. Całą klasą chodziło się w przerwach na świetlicę, podłączyć do szkolnego tv "grę telewizyjną" (tak się wtedy mówiło, nazwa Pong chyba była jeszcze powszechnie nieznana). Choć na ekranie wyświetlane były tylko dwie paletki i piłeczka, żadnych liczników punktów, itp. - zabawom i turniejom nie było końca ;-)
    Teraz jak widzę schemat niewiele bardziej skomplikowany od żelazka z bimetalem... Choć wiem, że elektronika (+software...) de facto na zupełnie innym, nieporównywalnym poziomie. Jednak jak wynika ze wstępu Autora, wypieki na twarzy u młodzieży żadne... :-|

    EDIT. Najważniejsze, zapomniałem (znów ten Niemiec na A. czy jakoś tak ;-) ). Ode mnie brawo dla Autora za chęci.
  • #6 18505127
    AdiGital
    Poziom 11  
    Ogólnie fajny projekcik. Mam tylko jedno „ale”
    sanfran napisał:
    Potencjometry 22k które miałem okazały się nieliniowe, co było bardzo uciążliwe, więc należało kupić liniowe.

    Cały projekt to głównie program. Nie byłoby prościej i wygodniej „zlinearyzować” potencjometry w programie?
  • #7 18505176
    sanfran
    Specjalista Sieci, Internet
    Zastanawiałem się nad tym i w gruncie rzeczy by to nie było trudne. Założyć wskazówkę na ośkę, oznaczyć ze 20 punktów na obwodzie, zmierzyć wartości, dobrać odpowiednią funkcję i niech komputer liczy.
    Ale zdecydowałem się na nowe potencjometry, bo stare trochę "trzeszczały" i żadne zabiegi rewitalizacyjne nie przynosiły zadowalających efektów.
REKLAMA