[PROJEKT] Gra Snake na STM32F429I-DISC1
W artykule przedstawiamy implementację projektu, który zaciekawi wielu czytelników pamiętających stare telefony komórkowe: jest to gra Snake zaimplementowana na płytce STM32F429I-DISC1.
Do uruchomienia gry potrzebne są:
Fot. 1. Zestaw STM32F429I-DISC1
STM32F429I-DISC1 to znany i popularny zestaw deweloperski z mikrokontrolerem STM32F429ZIT6. Oprócz niego na płytce znajdują się także m.in. 3-osiowy żyroskop, wyświetlacz LCD o przekątnej 2,4″ oraz interfejs USB OTG. Z dwóch ostatnich elementów korzystać będzie implementacja gry Snake napisana przez Tilena Majerle i opublikowana na stronie stm32f4-discovery.net. Na stronie znajduje się opis gry w języku angielskim oraz kod projektu (W przypadku problemów ze stroną paczkę z kodem można znaleźć też w sekcji „do pobrania”). W paczce (oprócz niezbędnych bibliotek) znajduje się kod projektu w formie przygotowanej do edycji w środowisku Keil μVision oraz plik binarny w formacie .hex, który można bezpośrednio załadować do pamięci mikrokontrolera.
W celu zaprogramowania mikrokontrolera, należy ściągnąć program STM32 ST-Link utility (wymagana rejestracja). Po uprzednim podłączeniu płytki do komputera (za pomocą przewodu MiniUSB – USB), trzeba połączyć się z urządzeniem. W tym celu należy nacisnąć przycisk connect to the target z czarną wtyczką (czerwona ramka – rysunek 1). Jeśli płytka jest podłączona, pokaże się tabela z bajtami, które aktualnie wypełniają pamięć. W przeciwnym wypadku program zgłosi błąd. Aby wgrać kod binarny z projektem należy z menu Target wybrać program (niebieska ramka – rysunek 1).
Rys. 2. Obsługa programu STM32 ST-Link Utility
W nowo otwartym oknie w polu FilePath należy znaleźć (lub wpisać) ścieżkę do pliku .hex. Aby rozpocząć wgrywanie programu należy nacisnąć przycisk Start.
Rys. 3. Obsługa programu STM32 ST-Link Utility – wskazanie pliku hex
Gra sterowana jest za pomocą klawiatury USB, którą należy podłączyć do płytki przez przejściówkę. Gdy klawiatura jest podłączona i system zauważa jej obecność, świeci się zielona dioda (LD3). Następujące przyciski odpowiadają za sterowanie:
- ’w’, ’a’, ’s’, ’d’: ruch węża
- ’r’: reset gry
- ’m’: zmiana trybu gry (możliwość „przenikania” węża przez ściany lub jej brak)
- ’u’, 'i’: zmiana szybkości poruszania się węża
- ’p’: zatrzymuje grę
Działanie gry zostało zaprezentowane na poniższym wideo: