Andreea ALISTAR (67461) - "X & O" folosind led-uri bicolore

Autorul poate fi contactat la adresa: Login pentru adresa

INTRODUCERE

→ Ce face proiectul?

Proiectul consta in reproducerea jocului X si O (Tic-Tac-Toe) → playtictactoe.org

(1) Tabla va fi alcatuita din 9 led-uri bicolore (rosu sau verde), aliniate intr-o matrice de 3×3.

(2) Jocul va avea 2 protagonisti: fiecare jucator isi va alege o culoare a led-ului pe care o va folosi.

(3) Led-urile vor lumina in functie de fiecare jucator, pentru a reflecta starea jocului.

(4) Pentru a muta alternativ pe matricea de led-uri, se vor utiliza 4 butoane de selectie (sus ↑, jos ↓, stanga ←, dreapta →) ce vor simula deplasarea pe coloane si linii.

(5) Pentru aprinderea led-ului dorit se va folosi un buton de acceptare a selectiei - 'OK'.

(6) Cand jocul s-a terminat, se va lumina led-ul corespunzator castigatorului.

(7) Scopul jocului consta in completarea cu trei semne proprii (culori) pe o linie, coloana sau diagonala.

(8) Cand s-a ocupat toata matricea, respectiv unul dintre jucatori nu mai are unde sa puna un simbol, jocul va fi incheiat cu remiza.

→ Care este scopul proiectului ?

Utilizatorii sa se debaraseze de jocul pe hartie sau Internet si sa-si testeze abilitatile unul impotriva celuilalt intr-un mod mai ingenios - ingineresc.

→ De la ce idee am pornit ?

'Life's crazy enough so I like to keep things simple!' 8-)

Am ales sa merg pe simplitate si sa readuc jocul mult iubit din copilarie, “X & 0”, intrucat este cotat unul dintre cele mai cunoscute jocuri de logica (testeaza noi strategii pentru a castiga).

→ Ce utilitate are pentru utilizatori, dar pentru mine ?

[Mine]: familiarizarea cu jocul in alta forma decat cea actuala (pe placuta);
[Utilizatori]: entuziasmul de a dezbate noi strategii, respectiv aplicarea lor pentru a castiga jocul;

DESCRIERE GENERALA

→ Schema bloc

→ Descriere & interactiune module

1. BUTOANE : Cel mai simplu mod de interactiune al utilizatorului cu un microcontroller;

→ folosite pentru a naviga pe matricea de led-uri (4 butoane pentru selectie - sus ↑, jos ↓, stanga ←, dreapta →);
→ folosite la setarea led-ului ales de fiecare jucator (un buton pentru acceptarea selectiei - OK);

2. ATMEGA324A-PU: Preia semnalele primite de la butoane si pe baza unui algoritm, modifica starea matricii de led-uri - va realiza jocul de lumini pe led-uri;

3.MATRICE 3×3 DE LED-URI BICOLORE: Dispozitive de mici dimensiuni, ce emit lumina trecand un curent printr-un material semiconductor (jonctiune p-n);

→ compusa din 9 led-uri bicolore ce se aprind in functie de jucator (rosu - X & verde - O);
pastreaza led-urile alese de fiecare jucator aprinse;

HARDWARE DESIGN

1. Lista piese

NUME COMPONENTA CANTITATE
LED-URI Bicolore de 3 mm Rosu si Verde cu Catod Comun 9
Butoane (sus, jos, stanga, dreapta, selectie) 6x6x6 5
Placa de test 1
Rezistente 1kΩ (cate 2 rezistente pentru fiecare led - o rezistenta pentru fiecare culoare) 18
Fire colorate mama-mama (conectare placa de baza cu placa de test: 2 fire x led, 1 fir x buton, 1 fir alimentare leduri, 1 fir alimentare butoane) 25
Header de pini tata 40p (18p - 9 led-uri [2p pentru fiecare led], 5p - 5 butoane, 1p - alimentare leduri, 1p - alimentare butoane) 1
Placa de baza 1
Fire de legatura (2 fire x led (9 leduri) = 18 fire, 2 fire x buton (5 butoane) = 10 fire, 1 fir alimentare leduri, 4 fire aditionale, 1 fir alimentare butoane) 34

PA-uri + PB-uri + PC-uri pentru leduri, PD-urile pentru butoane;

2. Schema electrica

3. Software Design

Descrierea codului aplicaţiei (firmware):

  • mediu de dezvoltare: Programmer's Notepad
  • librarii + surse 3rd-party: util/delay.h si avr/io.h
  • algoritmul se baseaza pe aprinderea unui led independent de ceilalti
  • implementarea se bazeaza pe suportul oferit de laboratorul 0

Fiecare led a fost retinut intr-o structura “led” in care retin pinii si adresa porturilor atat pentru culoarea rosie, cat si pentru verde. Pentru a tine minte tabla dupa fiecare alegere a jucatorilor, ledurile au fost organizate intr-o matrice de 3×3. In momentul in care un jucator executa o miscare - se deplaseaza pe placa, led-ul, pe care se gaseste “cursorul”, va licari in culoarea jucatorului care trebuie sa selecteze, urmand a se colora si ramane aprins la apasarea butonului de “select”.

Jocul incepe mereu cu randul player-ului <fc #FF0000>rosu</fc>. Se va aprinde primul led liber de pe matricea 3×3, urmand sa fie mutat in punctul dorit de jucator. Matricea initiala are elementele egale cu 'N' (none). Cand primul jucator a selectat un element, acel element din matrice va deveni 'R', respectiv 'G' pentru al doilea jucator.

[EGALITATE] - jocul ingheata si raman afisate pe placa toate miscarile jucatorilor

[VICTORIE] (intorc index-ul combinatiei castigatoare) - led-urile de pe linia/coloana/diagonala castigatoare se vor aprinde pe rand in culorile player-ului invingator

Jocul este reluat la apasarea butonului de reset pe placuta de baza!

Rezultate obtinute

Joc basic de tip player-to-player :-D

Concluzii

Nivel de dificultate pentru proiect scazut. Timp mult alocat pentru lipirea corecta a componentelor pe placuta aditionala + gandirea implementarii.

Download

Jurnal

  1. Proiect 0 (saptamana 8): 1. Deprinderea cu modul de a lipi corect componente pe placuta, la laborator
  2. Proiect 1 (saptamana 9): 2. Procurarea pieselor necesare pentru placa de baza + prezentare tema proiect
  3. Proiect 2 (saptamana 10): 3. Finalizare placa de baza + testarea acesteia + procurare componente placuta aditionala
  4. Proiect 3 (saptamana 11): 4. Prezentare schema electrica + lipire componente placuta aditionala + testare
  5. Proiect 4 (saptamana 12): 5. Lipire componente aditionale + testare functionalitate led-uri, butoane
  6. Proiect 5 (saptamana 13): 6. Scris cod pentru placuta
  7. Proiect 6 (saptamana 14): 7. Prezentare proiect final

Bibliografie/Resurse

  • Laboratoare PM
  • Hall of fame
  • Documentația în format ⇒ PDF
pm/prj2017/rbarbascu/aalistar.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