Zegar z grą snake na matrycy LED

Witam.
Chciałbym przedstawić konstrukcję zegara z wyświetlaczem w postaci matrycy składającej się z 56 diod LED. Diody tworzą wyświetlacz o rozdzielczości 8 x 7 pikseli. Wyświetlacz powstał z diod zalegających w szefce. Najpierw zbudowałem wyświetlacz a potem zastanawiałem się co można na nim wyświetlić.

Matryca LED Matryca LED

Na pierwszy ogień poszła gra Snake, która powstała na płytce stykowej. Następnie postanowiłem zbudować zegar, więc skonstruowałem moduł RTC.

Moduł RTC Moduł RTC

Program Snake’a zajmował 976 bajtów, a zegara 1298 bajtów. W Attiny2313 mamy do dyspozycji 2kB pamięci Flash, więc postanowiłem to wykorzystać i scalić oba programy w jeden, tworząc zegar matrycowy LED z wbudowaną opcją gry w Snake’a. Niestety wiązało się to z wieloma kompromisami, miedzy innymi nie starczyło już miejsca na czyszczenie ekranu i rozpoczynanie wyświetlania od początku po przegranej grze w snake’a.

Anody diod LED są podłączone do tranzystorów BC556 sterowanych przez demultiplekser 74155.
Tranzystory BC556 załączają kolejne linie wyświetlacza. Katody diod LED są podłączone przez rezystory 220 omów do portu mikrokontrolera. Komunikacja z RTC odbywa się poprzez programową magistralę I2C.
Sterowanie realizowane jest za pomocą 4 przycisków umieszczonych z tyłu obudowy. W trybie zegara naciśnięcie przycisku „w lewo” powoduje przejście do trybu nastawiania czasu. Przyciskami „w górę” i „w dół” można ustawić kolejne cyfry. Długie przyciśnięcie (ok. 1,6s) klawisza „w prawo” powoduje zmianę trybu pracy z Zegara na Snake’a i odwrotnie.

Obudowa wykonana jest ze sklejki i plastiku, sklejonych, skręconych i zaszpachlowanych. Pomalowana została farbą akrylową przy pomocy aerografu.
Obudowa nie była projektowana jako urządzenie przenośne, jednak bardzo dobrze leży w rękach i może służyć jako pad.

Kod zegara z grą snake:
GitHub

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *