MIKROKONTROLERY ARM DOKUMENTACJA WSTĘPNA PROJEKTU GRA PONG

Podobne dokumenty
Pong to dwuwymiarowy symulator tenisa sportowego. Gracz, poruszając prostokątem symulującym paletkę, stara się zdobyć punkt poprzez posłanie piłki

WASM AppInventor Lab 3. Rysowanie i animacja po kanwie PODSTAWY PRACY Z KANWAMI

Mikrokontrolery wytyczne do projektów

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 3

1) Naciśnij i przytrzymaj przez 2 sekundy ikonę z menu głównego, następnie naciśnij Potwierdź.

DOKUMENTACJA PROJEKTU

Podstawy programowania, Poniedziałek , 8-10 Projekt, część 1

Ping-Pong. Gra dla dwóch graczy.

Warsztaty dla nauczycieli

PROJEKT UCYF. Specyfikacja wstępna. 1. Informacje o grze: TEMAT: Sprzętowa realizacja gry Arkanoid przy pomocy języka opisu sprzętu VHDL.

Dokumentacja projektu Makao karciana gra sieciowa

FINCH PONG. Realizator: Partner: Patronat:

Sprawozdanie z projektu MARM. Część druga Specyfikacja końcowa. Prowadzący: dr. Mariusz Suchenek. Autor: Dawid Kołcz. Data: r.

EU Trek Podróż pełna odkryć. Jak grać

Spadające jabłuszka. licencja CC-BY-SA Uznanie autorstwa Na tych samych warunkach 3.0 Polska. Strona 51

Zajęcia z aplikacją ScratchJr mogą zostać przeprowadzone na dwa sposoby:

Technika mikroprocesorowa. Konsola do gier

Sieciowe Technologie Mobilne. Laboratorium 2

Projekt Śnieżna wojna

SKRÓCONA INSTRUKCJA OBSŁUGI

REKLAMA INTERNETOWA WYMAGANIA TECHNICZNE

Projekt wprowadzający Tester umiejętności z wykorzystaniem zestawu ewaluacyjnego EVK1100

Opcja szyby dokumentów

INSTRUKCJA OBSŁUGI DIODOWEGO WYŚWIETLACZA TEKSTÓW PIEŚNI STEROWANEGO Z TABLETU 10,1 '

Internetowe Ko³o M a t e m a t yc z n e

Podstawy technologii cyfrowej i komputerów

Projekt MARM. Dokumentacja projektu. Łukasz Wolniak. Stacja pogodowa

Komputery I (2) Panel sterowania:

TCHOUKBALL PLAŻOWY PRZEPISY GRY

AN ON OFF TEMPERATURE CONTROLLER WITH A MOBILE APPLICATION

Tworzenie nowego rysunku Bezpośrednio po uruchomieniu programu zostanie otwarte okno kreatora Nowego Rysunku.

Podręcznik użytkownika programu. Ceremonia 3.1

1. Opis okna podstawowego programu TPrezenter.

Opcja szyby dokumentów

Propozycje tematów zadań

Miernik poziomu cieczy MPC-1

KONSTRUKCJA TRÓJKĄTA 1 KONSTRUKCJA TRÓJKĄTA 2 KONSTRUKCJA CZWOROKĄTA KONSTRUKCJA OKRĘGU KONSTRUKCJA STYCZNYCH

Instrukcja obsługi Sterownik pompy ciepła Vikersønn Bjørn w.1

Aneks dotyczący modelu T. Aneks 1. Model e360t. i e360t+

Instrukcja obsługi programu

Zestaw do gry Retro Ping Pong. Instrukcja obsługi. Nr produktu:

gra Chińczyk dla 6 osób

PRUS. projekt dokumentacja końcowa

PRZEŻYJ WYJĄTKOWĄ PRZYGODĘ W TRYBIE KOOPERACJI

KAMERA INSPEKCYJNA MODEL: TV-EC2M INSTRUKCJA OBSŁUGI

PyGame Gra w Ponga. Spis treści

LABORATORIUM 7 Cel: 1_1

#UczymyDzieciProgramować #ZadanieWprogramie

Przed skonfigurowaniem tego ustawienia należy skonfigurować adres IP urządzenia.

Wstęp wszystkich uczniów klas niższych, doskonalić swoje umiejętności matematyczne.

COPYRIGHT BY ARTA.BIZ.PL

Aplikacja RACS Point. Instrukcja obsługi

PROJECT OF FM TUNER WITH GESTURE CONTROL PROJEKT TUNERA FM STEROWANEGO GESTAMI

Laboratorium Programowanie urządzeń mobilnych

Politechnika Wrocławska

Wykład VII PASCAL - grafika;

INSTRUKCJA. Gra dla 2-5 graczy w wieku lat

1 Podstawowe informacje 2. 2 Tworzenie gry Rejestracja do gry Lista gier 7. 4 Gry Archiwalne 8. 5 Lista Graczy 9

LITEcompLPC1114. Zestaw ewaluacyjny z mikrokontrolerem LPC1114 (Cortex-M0) Sponsorzy:

Sieciowe Technologie Mobilne. Laboratorium 4

ELEMENTY GRY. 21 kart prezentów. 7 płytek gejsz. 7 żetonów przychylności gejsz. 8 znaczników akcji (po 4 znaczniki dla każdego gracza)

WACOM MULTI-TOUCH: UŻYWANIE FUNKCJI DOTYKOWYCH W PRODUKTACH WACOM

ELEMENTY GRY. 21 kart prezentów. 7 płytek gejsz. 7 żetonów przychylności gejsz. 8 znaczników akcji (po 4 znaczniki dla każdego gracza)

DZIEWCZĘTA - SIATKÓWKA

Electronic Infosystems

PODRĘCZNIK UŻYTKOWNIKA. Trzecia generacja dla systemu Android / ios

INSTRUKCJA DO GRY TRAIN DRIVER 2


Układ scalony UL 1111

REGUŁY GRY FooBaSKILL

IINSTRUKCJA. Gra dla 2-4 graczy w wieku lat

Wstęp Teoretyczna część dziewięć tematów Alfabet Liczby, kolory i kształty Liczydło Zwierzęta Owoce i warzywa Rzeczy wokół nas Ludzkie ciało

Gra logiczna dla 2 5 osób Czas rozgrywki około 45 minut Wiek od 7 lat

Uwagi dotyczące produktu

Ćwiczenia z systemu operacyjnego WINDOWS

2.2 Opis części programowej

1. Logowanie do Systemu BCW

Gra Labirynt Zajęcia 1. Cel zajęć: Stworzenie świata i postaci gry. Zaprogramowanie głównej postaci gry.

SPIS TREŚCI Specyfikacja ogólna Ekran startowy Przyciski nawigacji 1. Ustawienia regulacji 1.1 Regulacja cos 1.2 Regulacja przekładni transformatora

Instrukcja użytkownia Alfred24 TAB

GRA NR 1: autor: Manu Palau ELEMENTY GRY. 54 karty: 18 stworków. rewers. 36 fragmentów stworków: 12 x góra 12 x środek 12 x dół.

Kl-1-3 Szkoła Podstawowa

3.4. Opis konfiguracji layoutów.

REGULAMIN. I Amatorskiego Turnieju Tenisa Stołowego Osób z Niepełnosprawnościami Wyszków 2015 pod patronatem Starosty Powiatu Wyszkowskiego

Szkolenia specjalistyczne

1. Opis aplikacji. 2. Przeprowadzanie pomiarów. 3. Tworzenie sprawozdania

HP Workspace. Instrukcja obsługi

Notowania Mobilne wersja BlackBerry. Instrukcja obsługi programu

Scenariusz zajęć. Moduł V. Projekt Gra zręcznościowa odbijanie piłeczki

Instrukcja obsługi ekranu dotykowego ruchome dno (tryb MANAGER)

ROZDZIAŁ 1: Instrukcja obsługi oprogramowania VMS

Instrukcja do oprogramowania ENAP DEC-1

INSTRUKCJA MONTAŻU I OBSŁUGI PRZENOŚNEGO PANELU KONTROLUJĄCEGO

Dodatek do Podręcznika Szybkiego Startu ZoomText 10.1

Windows XP Wiersz polecenia

TESTY SELEKCYJNE DO SZKOŁY MISTRZOSTWA SPORTOWEGO W LIPINACH O PROFILU PIŁKA NOŻNA

Gra rodzinna dla 2-4 osób w wieku od 7 do 99 lat

Jednostka treningowa dla dzieci U8 - U10; wersja 3

Atak szybki kompleks ćwiczeń, gier i zabaw

REFERAT PRACY DYPLOMOWEJ

Transkrypt:

MIKROKONTROLERY ARM DOKUMENTACJA WSTĘPNA PROJEKTU GRA PONG Prowadzący: dr inż. Mariusz Jarosław Suchenek Opracował: Maciej Michał Piegza Nr indeksu: 281397

1. Cel projektu Celem projektu jest stworzenie gry typu Pong z wykorzystaniem mikrokontrolera z rdzeniem ARM. 2. Opis gry Gra symuluje rozgrywkę w tenisa stołowego. Gracz porusza w lewo lub prawo paletką umieszczoną w dolnej części ekranu i za jej pomocą próbuje odbić poruszającą się piłkę w stronę paletki przeciwnika. Celem gracza jest zdobycie większej liczby punktów od przeciwnika. Punkty zdobywane są poprzez zetknięcie się piłki z dolną lub górną częścią ekranu. Koniec gry następuje, gdy jeden z graczy osiągnie założoną wcześniej liczbę punktów. Rys. 2.1. Rysunek poglądowy gry typu Pong 3. Sposób realizacji 3.1. Elementy sprzętowe Do realizacji projektu zostanie wykorzystana płytka uruchomieniowa STM32F429I DISCO.

Rys. 3.1.1. Płytka uruchomieniowa STM32F429I DISCO. STM32F429I DISCO Panel dotykowy I2C STM32F429ZIT6 LI9341 LCD Controller SPI Rys. 3.1.2. Schemat blokowy płytki uruchomieniowej STM32F429I DISCO. 3.2. Opis działania Komunikacja z aplikacją: interfejs dotykowy. Gra jednoosobowa: gracz-człowiek kontra komputer. Po włączeniu aplikacji gracz widzi ekran startowy. Gra rozpoczyna się po dotknięciu ekranu. Dotknięcie przez gracza prawej lub lewej połowy ekranu dotykowego skutkuje przesunięciem jego paletki w odpowiednią stronę. Paletka przesuwa się dopóki gracz nie zabierze palca z ekranu lub gry paletka dotknie krawędzi ekranu.

Paletki składają się z 7 segmentów. Kierunek, w którym będzie przemieszczać się piłka po odbiciu od paletki zależy od dotkniętego segmentu. Przykładowo, segment 4 (środkowy) odbije piłkę pod kątem 90 o, inne segmenty pod kątem większym lub mniejszym. Zetknięcie się piłki z górną lub dolną krawędzią ekranu skutkuje zdobyciem punktu przez gracza (góra) lub komputer (dół). Po każdym zdobytym punkcie gra jest przerywana, następuje wyświetlenie tablicy wyników. Aby wznowić grę należy dotknąć ekranu. Gra kończy się, gdy gracz lub komputer zdobędzie wcześniej określoną liczbę punktów. Aplikacja wyświetla informację o wyniku meczu, po czym wraca do ekranu startowego. 3.3. Szczegóły implementacyjne Logika aplikacji znajduje się w pliku main.c. Zaimplementowano funkcje: ball_collision_player() funkcja odpowiada za detekcję kolizji piłki z paletką gracza oraz odbicie piłki pod odpowiednim kątem (w zależności od segmentu paletki, z którym zetknęła się piłka). ball_collision_kom() odpowiednik funkcji ball_collision_player(), odpowiada za detekcję kolizji piłki z paletką komputera. move_player() funkcja odpowiadająca za poruszanie paletką gracza i komunikację między mikrokontrolerem a panelem dotykowym STMPE811 za pomocą interfejsu I2C; dotknięcie prawej lub lewej połowy panelu dotykowego decyduje o kierunku przesuwania paletki gracza. move_kom() funkcja odpowiadająca za poruszanie paletką komputera. Zaimplementowany ruch polega na przesuwaniu paletki komputera w takim, kierunku, żeby środek paletki znajdował się w jednej linii z piłką. scored() funkcja przerywająca grę po zdobyciu punktu przez któregokolwiek z graczy. Wyświetla wynik i czeka ze wznowieniem gry na dotknięcie ekranu. endgame() funkcja wyświetla ekran końcowy gry z informacją PRZEGRAŁEŚ lub WYGRAŁEŚ i wynikiem końcowym gry. ball() funkcja odpowiadająca za ruch piłki, odbicie od bocznych ścian, zdobycie punktu po kontakcie z dolną lub górną krawędzią ekranu. game_start_init() funkcja odpowiadająca za ustawienie parametrów startowych gry wielkości, pozycji i szybkości paletek, wielkości i szybkości piłki, ustalenie liczby punktów po zdobyciu której gra się kończy. game_play() główna funkcja gry. Przesyła do wyświetlacza ILI9341 dane przez interfejs SPI, dzięki którym wyświetlane są paletki oraz piłka. Funkcja wykonuje się dopóki któryś z graczy nie zdobędzie założonej liczby punktów.

game_reload() funkcja wyświetla ekran startowy, resetuje parametry gry. Główna pętla programu wykonuje funkcje game_reload(), game_play(), endgame(). Funkcje odpowiadające za komunikację z wyświetlaczem: TM_ILI9341_DrawFilledRectangle(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint32_t color) funcja rysuje na ekranie wypełniony prostokąt o zadanych współrzędnych rogów x0, y0, x1, y1 i wybranym kolorze. TM_ILI9341_DrawCircle(int16_t x0, int16_t y0, int16_t r, uint32_t color) funkcja rysuje na ekranie okrąg o współrzędnych środka x0, y0, promieniu r i wybranym kolorze. TM_ILI9341_SendData(uint8_t data) funkcja odpowiadająca za przesłanie do wyświetlacza danych do rysowania. Komunikacja za pomocą interfejsu SPI. Funkcje odpowiadające za komunikację z panelem dotykowym: TM_STMPE811_ReadTouch(TM_STMPE811_TouchData *structdata) funkcja obsługująca dotknięcie panelu. Zapisuje do struktury współrzędne x, y dotkniętego punktu ekranu oraz stan: pressed (dotknięcie) lub released (puszczenie). Przesyła strukturę za interfejsem I2C za pomocą kolejki FIFO. Opisane wyżej funkcje znajdują się w plikach tm_stm32f4_ili9341.c oraz tm_stm32f4_stmpe811.c. Do obsługi interfejsów SPI i I2C wykorzystano biblioteki standardowe STM. 4. Wnioski Zaimplementowany program spełnia wszystkie założenia opisane w punkcie 3.2. Podczas implementacji wystąpiły problemy ze środowiskiem implementacyjnym. W pewnym momencie prac wielkość kodu programu zaczęła przekraczać dopuszczalny rozmiar w darmowej wersji środowiska IDE Keil. Z tego powodu podjąłem próby wykorzystania alternatywych rozwiązań w postaci Coocox CoIDE. Niestety środowisko zaczęło sprawiać problemy z przeniesieniem projektu. W ostateczności zdecydowałem się na wykorzystanie próbnej wersji Keila, bez ograniczeń dotyczących wielkości kodu, ale działającej tylko przez tydzień. Ograniczony czas działania środowiska nie pozwolił na większe rozbudowanie programu, np. o menu, w którym można by wybrać czy chce grać się z drugą osobą czy z komputerem. W fazie konceptualnej projektu rozważałem możliwość gry przeciwko żywemu graczowi. Pomysł został porzucony z powodu braku pomysłu na sposób kontroli drugiej paletki. Dwaj gracze korzystający z panelu dotykowego zasłanialiby prawie cały ekran. Wykorzystanie żyroskopu wbudowanego w mikrokontroler do sterowania jedną z paletek przeszkadzałoby

graczowi korzystającemu z panelu dotykowemu oraz utrudniałoby dostrzeżenie co dzieje się na wyświetlaczu (ze względu na jego słabe kąty widzenia).