Gry na matrycy LED


Nasz projekt rekrutacyjny polegał na wykorzystaniu matrycowego wyświetlacza LED do stworzenia gry Snake oraz wyścigów sterowanymi przyciskami, a następnie stworzenia obudowy do całego układu, aby cały projekt choć trochę przypominał stare konsole do gier. Oto jak powstawał nasz Snake.

Do projektu użyliśmy:

  • Wyświetlacza LED 8×8
  • Rejestr przesuwny z zatrzaskiem
  • Atmega32
  • Przyciski
  • Rezystorów i kondensatorów do sprawnego działania procka.

Podłączanie

Zaczęliśmy od sprawdzenia, które dwa piny wyświetlacza odpowiadały diodom na wyświetlaczu, a następnie pogrupowanie ich w wiersze i kolumny tak, aby następnie łatwo było podłączyć je do rejestrów przesuwnych. Następnie podłączyliśmy rejestry szeregowo, aby używać jak najmniej nóżek naszej Atmegi.

Programowanie w C

Do przesyłu bitów do rejestrów użyliśmy wbudowanej funkcji AVRów do komunikacji – SPI . Wysyłaliśmy za każdym razem 2 bajty, gdzie pierwszy bajt ustawiał, które wiersze na matrycy mają być zapalone, a drugi robił dokładnie to samo z kolumnami. Potem nadszedł czas na multipleksowanie, które wykonaliśmy używając 8-bitowego Timer0 do odświeżania całego obrazu.

Programowanie Snake

Zaczęliśmy od wprowadzenia do naszego projektu przycisków oraz kolejnego timera (16-bitowego), który miał za zadanie na bieżąco sprawdzać stan wciśnięcia przycisków, a następnie na podstawie ich stanu i interwału w nim ustawionego, zapalać lub gasić odpowiedni piksel na matrycy.