Led Station 3

Introducere

Proiectul meu a constat in realizarea unui display de tip dotmatrix, cu dimensiunile 16×8.

Am utilizat 2 matrice de leduri bicolore, fiecare avand dimensiunea 8×8. Am ales sa utilizez acest tip de matrice in primul rand pentru faptul ca pot fi reprezentate mai multe culori (rosu / verde, si portocaliu prin combinarea celor doua), astfel paleta aplicatiilor ce pot folosi un astfel de display fiind mult mai variata (se pot reprezenta grafic simboluri mai complexe, prin utilizarea celor trei culori disponibile).

Am realizat mai departe, folosind acest tip de afisaj, un joc multiplayer - TRON LEDCYCLE (titlul original - TRON LIGHTCYCLE).

Regula jocului:

  • fiecare jucator porneste dintr-un colt al plansei, diametral-opus fata de oponent;
  • jucatorii trebuie sa evite coliziunea cu linia trasata de oponent, precum si cea cu limita plansei;
  • fiecare jucator dispune de o arma ce ii permite sa distruga portiuni din linia trasata de el insusi, evitand astfel blocarea;
  • castiga cel care reuseste sa isi blocheze oponentul;
  • remiza in cazul unei coliziuni frontale (cap in cap :D).

Descriere generală

Placuta realizata in prima etapa a proiectului este unitatea centrala a proiectului.

Pe porturile A si C ale acesteia sunt conectate 2 gamepad-uri, unul pentru fiecare jucator. Fiecare gamepad dispune de 6 butoane/comenzi: 4 pentru directie, si 2 action buttons (A - weapon, B - reset game).

Display-ul comunica prin SPI cu microcontroller-ul. Datorita conectorilor utilizati si modului dispunerii porturilor/pinilor pe placa centrala, nu am putut utiliza numai portul B pentru comunicatia seriala /latch / reset, am fost nevoit sa ocup si portul D pentru doar 2 pini. Nu a fost un neajuns totusi, numarul total de pini disponibili a fost mai mult decat suficient.

Hardware Design

Schema electrica: (pentru a mentine schema la un grad acceptabil de claritate, nu am mai reprezentat conectarea celui de-al doilea gamepad, nici conectarea ultimelor doua shift registers la coloanele cu leduri rosii)

Lista de piese:

Nume componenta Cantitate
matrice led 8×8 bicolora TBA23-11EGWA 2
74HC595 shift register 4
ULN2803 eight darlington array 1
4022 johnson counter 1
conectori panglica 2×10 8
cablu panglica 2m
socluri, barete pini mama/tata -
cablu utp -

Detalii implementare:

  • catozii corespunzatori liniilor matricelor au fost legati impreuna, pentru fiecare rand in parte, apoi la iesirea din ULN2803;
  • ULN2803 este comandat de catre IC-ul 4022 (care are rolul de a realiza row-scanning: aprinderea pe rand a fiecarei linii din matrice, in timp ce acestea primesc datele pentru coloane);
  • coloanele matricelor (anozii) sunt conectate in ordine (culoarea verde, apoi rosu), la cate un 74HC595;
  • shift register-ele sunt legate in cascada (iesirea primului devine intrarea celui de-al doilea, etc.);
  • clock-ul de latch comanda atat avansarea liniei (4022), cat si trimiterea datelor catre pinii de output a 74HC595.

Alte detalii:

  • nu am utilizat rezistente, intrucat stiam ca matricele sunt suficient de fiabile, si ledurile lor sunt de calitate superioara; in plus, un led sta aprins un interval foarte scurt de timp (aprox. 2 ms), intr-un raport de 1:8; totusi, aceasta practica nu este posibila intotdeauna, si este considerata bad practice - in general o rezistenta de 200ohm ar fi fost ideala.
  • ULN2803 este utilizat pentru sink - daca un rand intreg de leduri ar fi aprins, curentul de 16x20mA (total 320mA) ar depasi cu mult capacitatea de sink a unui pin de microcontroller (20 mA), caz in care acesta s-ar “praji”.

Software Design

Necesar: suita WINAVR.

Am utilizat librariile libusb pentru windows pentru a genera driver-ul pentru placuta, pentru sistemul meu de operare (windows 7 x64)

Printre facilitatile oferite de codul/sursele mele, se numara un text-scroller scalabil si versatil, capabil de a afisa caractere alfa-numerice de latime variabila, precum si o selectie de simboluri / semne de punctuatie.

Am realizat un pixel-font de dimensiune 5×4 (5×5 pe alocuri), ce contine setul de caractere mai sus mentionat.

Implementarea jocului poate fi inteleasa mai usor urmarind comentariile din cod.

Rezultate Obţinute

Timp de realizare placuta display: 2-3 zile

Timp realizare aplicatie software: aprox. 3-4 zile, in mai multe etape.

Totul functioneaza conform planului initial. O demonstratie poate fi vizionata in clipul urmator:

Concluzii

Un proiect nu foarte solicitant, dar care m-a ajutat sa inteleg multe lucruri, prin simplul fapt ca am fost nevoit sa caut si sa ma documentez singur.

Download/Bibliografie/Resurse

pm/prj2011/dloghin/ledstation.txt · Last modified: 2021/04/14 17:07 (external edit)
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0