Konsola do gier

Transkrypt

Konsola do gier
Kraków 11.02.2014
Technika mikroprocesorowa
Konsola do gier
W yk on al i :
Prowadzący:
Paweł Fluder
Robert Sitko
Dr inż. Jacek Ostrowski
Opis projektu





sterowanie oraz wyświetlanie grafiki o rozdzielczości 800x600 w 1 bitowej palecie
kolorów na monitorze ze złączem VGA
sprite o dowolnym rozmiarze z wykorzystaniem techniki bit-banding
obsługa klawiatury z portem komunikacyjnym ps/2
biblioteka graficzna oraz biblioteka gui dla monitora
gra „Snake”
Po uruchomieniu układu na monitorze wyświetla się animowane (przesuwane) menu. Za
pomocą klawiszy strzałek klawiatury można zmieniać numer menu. Pod numerem 1 jest gra
„Snake”. W grze tej wężem steruje się za pomocą klawiszów strzałek. Grę rozpoczyna się
wciskając klawisz ENTER. Zasady gry są takie same jak standardowej gry „Snake”.
Spis użytych części



zestaw uruchomieniowy STM32F4DISCOVERY z mikrokontrolerem
STM32F407VGT6
przejściówka goldpin-gniazdo VGA
 styki do goldpinów wraz z wtyczkami
 skrętka UTP
 gniazdo DB15 żeńskie
 3 rezystory 270 Ohm
przejściówka goldpin-gniazdo ps/2
 styki do goldpinów wraz z wtyczkami
 przewód 6 żyłowy
 wtyczka ps/2
Środowisko programistyczne
µVision V5.1.0.0
Podłączenie przejściówek

przejściówka goldpin-VGA

przejściówka goldpin-ps/2
 pomarańczowy – 5V
 niebieski – GND
 żółty – clock PA1
 biały – data PA2
Podział kodu na bloki funkcjonalne (najważniejsze)







main – funkcja main() oraz wywołanie funkcji startowych
video – funkcje potrzebne do uruchomienia i synchronizacji peryferii do obsługi
monitora
ps2 – obsługa klawiatury
gl – biblioteka graficzna (niższego poziomu)
gui – biblioteka do gui (biblioteka graficzna wyższego poziomu)
start – ekran startowy
snake – gra „Snake”
Opis działania układu
Mikrokontroler działa z częstotliwością taktowania 168 MHz z zewnętrznym rezonatorem
kwarcowym o częstotliwości 8 MHz.

VGA
Timer 1 zapewnia synchronizację poziomą poprzez pin PA8. Timer 1 działa z częstotliwością
około 35,1 kHz. Poniżej przebieg z oscyloskopu
Timer 2 odpowiada za synchronizację pionową za pomocą pinu PB3. Timer 2 działa z
częstotliwością 56 Hz. Poniżej przebieg z oscyloskopu
Poniżej ilustracja przebiegów Timera 1 oraz Timera 2.
Transfer danych z bufora ekranowego fb do rejestru danych wyjściowych SPI zapewnia
sprzętowy kontroler DMA. SPI następnie wyrzuca dane poprzez pin PA7 (kolor zielony).
Dane z SPI pojawiają się na linii sygnałowej pomiędzy impulsami synchronizacji poziomej.
Poniżej przykładowe przebiegi z oscyloskopu (żółty przebieg – dane SPI, niebieski – sygnał
synchronizacji poziomej)
Poglądowy diagram pracy algorytmu VGA

klawiatura ps/2
Po naciśnięciu klawisza klawiatura generuje swój własny zegar wysyłając równocześnie
dane.
Poniżej przykładowa sekwencja dla klawisza ENTER
Pierwszy bit to bit startu, następnie 8 bitów danych, bit parzystości oraz bit stopu. Na pinie
PA1 ustawione jest zewnętrzne przerwanie na opadające zbocze zegara z klawiatury. To
uruchamia funkcję obsługi przerwania klawiatury, w której dekodowana jest sekwencja bitów
dostarczonych z klawiatury na kod ASCII.
Możliwości rozwoju
Zbudowaną konsolę do gier można rozszerzyć o





obsługę kart SD, z której byłaby możliwość odczytywania gier, obrazów oraz innych
plików
3 bitową paletę kolorów z możliwością regulacji jasności każdego z koloru za pomocą
przetwornika DAC
zaimplementowanie interpretowanego języka programowania CHIP-8, dzięki któremu
gry stałyby się uniwersalne
stworzenie biblioteki grafiki 3D
wykorzystanie akcelerometru, który znajduje się na płytce uruchomieniowej, do
sterowania obiektami w grze
Dodatkowe biblioteki
Biblioteka producenta: STM32F4DISCOVERY board firmware package http://www.st.com/web/en/catalog/tools/PF257904
Bibliografia





http://www.st.com/st-webui/static/active/en/resource/technical/document/reference_manual/DM00031020.pdf
http://www.javiervalcarce.eu/wiki/VGA_Video_Signal_Format_and_Timing_Specifications
http://edu.i-lo.tarnow.pl/inf/utils/002_roz/p017.php
http://edap.pl/artykuly/avr-i-klawiatura-ps2
http://www.atmel.com/Images/doc1235.pdf

Podobne dokumenty