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