Gra elektroniczna Snake

Gra elektroniczna Snake
Pobierz PDF Download icon
Niegdyś budowanie konsol do gier było zarezerwowane tylko dla potentatów branży rozrywki. Wymagało bowiem użycia podzespołów, które albo były niedostępne dla przeciętnego użytkownika, albo podzespoły i/lub oprogramowanie niezbędne do wykonania urządzenia tego typu były koszmarnie drogie przy zakupie do celów pojedynczego projektu. Współcześnie każdy elektronik konstruktor, który zna się na programowaniu i aplikacjach mikrokontrolerów i ma pomysł na grę elektroniczną, może sam zbudować własną "konsolę" do gier z komponentów, które są niedrogie i powszechnie dostępne.

Konsola jest jednocześnie tanią platformą do realizacji własnych pomysłów - nic nie stoi na przeszkodzie, aby samodzielnie zaprogramować inną grę i podzielić się jej implementacją na łamach EP lub na naszym forum.

Schemat ideowy elektronicznej gry „Snake” pokazano na rysunku 1. Jak można zauważyć, jest to nieskomplikowane urządzenie zbudowane z użyciem mikrokontrolera ATmega8, wyświetlacza graficznego ze sterownikiem PCD8544 (znanym z telefonów komórkowych) oraz 5 przycisków wraz z wyświetlaczem pełniących funkcję interfejsu użytkownika. Za ich pomocą sterujemy wężem „pełzającym” na wyświetlaczu. Naszym celem jest „zjadanie” owoców, od których – co naturalne – wąż rośnie. Trzeba jednocześnie uważać, aby nie zjeść przy tym własnego ogona, bo od tego wąż „umiera”. Jedynym przeciwnikiem węża są jego rozmiary, ponieważ może on bezproblemowo uciekać poza ekran wyświetlacza. Trzeb jednak mieć przy tym na uwadze, że jednocześnie głowa węża pojawi się po przeciwnej stronie i uważać, aby wąż nie „zjadł” przez to własnego ogona.

Zasada działania

Po uruchomieniu urządzenia wyświetla się ekran startowy z logo gry i animacją węża machającego ogonem i mrugającego do nas. Zabawa zaczyna się po wciśnięciu przycisku „OK”, który ma drugą funkcję – uruchamia grę oraz włącza w trakcie jej działania.

Po uruchomieniu gry na wyświetlaczu jest pokazywany jedynie wąż i owoc, który musimy „zjeść”. W przypadku zderzenia się z częścią naszego węża przegrywamy – ekran miga kilkakrotnie i przechodzi do animacji startowej.

Pole gry jest podzielone na „segmenty” o wymiarach 6×6 pikseli. Wyświetlacz ma rozdzielczość 84×48 piksele, więc mamy 14 segmentów w poziomie i 8 w pionie. Dlatego też nasz wąż może maksymalnie składać się ze 112 segmentów. Jeśli uda nam się do tego doprowadzić, a nie jest to wcale łatwym zadaniem, to taki wąż zapełni cały ekran i gra się zakończy.

Program podzielono na sekcje: obsługi przycisków, logiki gry oraz wyświetlania. Rozmiar planszy, po której porusza się wąż, wielkość segmentów – wszystko jest definiowane za pomocą makr, dzięki czemu można przenieść grę na inną platformę, zmieniając jedynie funkcje związane z obsługą wyświetlania. Można pokusić się o uruchomienie tego np. na kolorowym wyświetlaczu z różnymi obrazkami, zamiast pikselowych segmentów.

Inne wykorzystanie układu

Mimo że na płytce przewidziano miejsce dla rezonatora kwarcowego o częstotliwości 16 MHz, to zrobiono to niejako „na wyrost”, dla potrzeb innych gier lub innych aplikacji, na przykład, przy użyciu płytki w roli zestawu uruchomieniowego lub testowego. Z tego samego powodu dodano również złącze JP1, na którym są wyprowadzone nieużywane piny mikrokontrolera. Ułatwia to zastosowanie urządzenia jako bazy do innych projektów wykorzystujących wyświetlacz graficzny oraz przyciski. Może to być panel do sterowania jakimś innym urządzeniem.

Opisywany program działa przy użyciu taktowania rdzenia za pomocą wbudowanego oscylatora RC o częstotliwości 8 MHz – większa częstotliwość taktowania nie jest potrzebna.

Montaż i uruchomienie

Schemat montażowy gry elektronicznej „Snake” zamieszczono na rysunku 2. Montaż jest typowy i nie powinien nastręczać większych trudności. Problematyczne może być jedynie przylutowanie mikrokontrolera ATmega mającego obudowę TQFP32. Wyprowadzenia – piny wyświetlacza należy lutować po jego zamontowaniu. Jeśli zrobimy to wcześniej, to jest duże prawdopodobieństwo, że zrobimy to krzywo, a wyświetlacz nie będzie pasował idealnie do tulei dystansowych na płytce.

W handlu są dostępne różne wersje wyświetlaczy z kontrolerem PCD8544. Przed zakupem warto sprawdzić kolejność wyprowadzeń, czy jest ona zgodna ze schematem.

Do programowania jest używane 6-pinowe AVR-ISP, zgodne ze standardem wprowadzonym przez Atmela. Aby zmienić oprogramowanie lub samodzielnie zaprogramować mikrokontroler, musimy mieć także programator zgodny ze standardem CMOS 3,3 V, aby nie uszkodzić wyświetlacza. Wyprowadzenia do komunikacji są współdzielone z programatorem. Jeśli dysponujemy programatorem pracującym poprawnie jedynie przy napięciu 5 V, to na czas programowania należy odłączyć zasilanie za pomocą USB oraz wyjąć wyświetlacz. Sam mikrokontroler może pracować zarówno przy zasilaniu napięciem 5 V, jak i 3,3 V.

Przemek Michalak
thedambo1@gmail.com

Artykuł ukazał się w
Elektronika Praktyczna
listopad 2016
DO POBRANIA
Pobierz PDF Download icon
Materiały dodatkowe
Zobacz też
Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik styczeń 2020

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio styczeń 2020

Świat Radio

Magazyn użytkowników eteru

APA - Automatyka Podzespoły Aplikacje styczeń 2020

APA - Automatyka Podzespoły Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna styczeń 2020

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Praktyczny Kurs Elektroniki 2018

Praktyczny Kurs Elektroniki

24 pasjonujące projekty elektroniczne

Elektronika dla Wszystkich styczeń 2020

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów