Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2021:avaduva:xsi0 [2021/05/22 21:20]
cristina.balasoiu
pm:prj2021:avaduva:xsi0 [2021/05/22 21:56] (current)
cristina.balasoiu
Line 7: Line 7:
  
 ===== Descriere generala ===== ===== Descriere generala =====
-Ledurile, ecranul LCD, potentiometrul folosit pentru LCD si butonul sunt conectate la breadboard pentru a se putea folosi de VCC si GND.  Ledurile sunt conctate la placuta la pinul 12 pentru a primi input. Potentiometrul e conectat la LCD iar LCD-ul e conectat la placuta la  pinii A0-A5 si la o rezistenta pozitionata pe breadboard. Keypad-ul e conectat la placuta la pinii 2-9 (2-5 pentru coloane si 6-9 pentru linii) catre care trimite simbolul butonului apasat. Butonul e conectat la pinul 10, avand ca output state-ul sau (HIGH daca a fost apasat si LOW in caz contrar).+Ledurile, ecranul LCD, potentiometrul folosit pentru LCD si butonul sunt conectate la breadboard pentru a se putea folosi de VCC si GND.  Ledurile sunt conctate la placuta la pinul 12 pentru a primi input. Potentiometrul e conectat la LCD iar LCD-ul e conectat la placuta la  pinii A0-A5 si la o rezistenta pozitionata pe breadboard. Keypad-ul e conectat la placuta la pinii 2-9 (2-5 pentru coloane si 6-9 pentru linii) catre care trimite simbolul butonului apasat. Butonul e conectat la pinul 10, avand ca output state-ul sau (HIGH daca a fost apasat si LOW in caz contrar). Cei doi jucatori vor uca apasand pe rand cate un buton de pe keypad.
  
 ==== Schema bloc ==== ==== Schema bloc ====
Line 21: Line 21:
   * Keypad 4*4   * Keypad 4*4
   * LCD   * LCD
-  * Rezistenta+  * 2 rezistente
   * Potentiometru   * Potentiometru
   * Pushbutton   * Pushbutton
Line 37: Line 37:
       - LiquidCrystal.h (pentru ecranul LCD)       - LiquidCrystal.h (pentru ecranul LCD)
   * algoritmul: ​   * algoritmul: ​
-    Algoritmul creeaza o mapare intre butoanele 1-9 ale keypad-ului si cele 9 leduri conectate pentru a simula tabla de joc. Fiecare apasare a unuia dintre butoanele mentionate reprezinta o mutare. Se utilizeaza o variabila player initiata cu 1 pentru a retine jucatorul curent. Aceasta poate avea valorile 1 sau -1. La fiecare mutare se face switch intre jucatori (player *= -1) pentru a aprinde ledul corespunzator butonului apasat in culoarea jucatorului corespunzator si se verifica daca s-a creat un sir consecutiv de 3 culori identice pe oricare linie, coloana sau diagonala sau, in caz contrar, daca tabla este plina (remiza). Daca s-a detectat oricare dintre cele 3 rezultate posibile de finalizare a jocului (X castiga, 0 castiga sau remiza), acesta va fi afisat pe ecranul LCD impreuna cu scorul. Exista posibilitatea de incepere a unui joc nou prin apsarea butonului de reset, moment in care ledurile se vor intoarce la culoarea default (alb), matricea folosita pentru retinerea apasarilor efctuate de jucatori e reinitiata iar rezultatul jocului anterior este sters de pe ecranul LCD.  +    Algoritmul creeaza o mapare intre butoanele 1-9 ale keypad-ului si cele 9 leduri conectate pentru a simula tabla de joc. Fiecare apasare a unuia dintre butoanele mentionate reprezinta o mutare. Se utilizeaza o variabila player initiata cu 1 pentru a retine jucatorul curent. Aceasta poate avea valorile 1 sau -1. La fiecare mutare se face switch intre jucatori (player *= -1) pentru a aprinde ledul corespunzator butonului apasat in culoarea jucatorului corespunzator si se verifica daca s-a creat un sir consecutiv de 3 culori identice pe oricare linie, coloana sau diagonala sau, in caz contrar, daca tabla este plina (remiza). Daca s-a detectat oricare dintre cele 3 rezultate posibile de finalizare a jocului (X castiga, 0 castiga sau remiza), acesta va fi afisat pe ecranul LCD impreuna cu scorul. Exista posibilitatea de incepere a unui joc nou prin apsarea butonului de reset, moment in care ledurile se vor intoarce la culoarea default (alb), matricea folosita pentru retinerea apasarilor efctuate de jucatori e reinitiata iar rezultatul jocului anterior este sters de pe ecranul LCD. 
 +==== Functii folosite ==== 
 +      * setup  
 +          - pornirea LCD-ului 
 +          - configurarea LCD-ului 
 +          - afisarea pe LCD a mesajului default 
 +          - initializarea led-urilor 
 +      * loop 
 +          - primirea datelor de la keypad si de la butonul de reset 
 +          - setarea culorilor ledurilor 
 +          - afisarea mesajului corespunzator in functie de rezultatul jocului 
 +      * checkWin  
 +          - verifica stateul jocului dupa fiecare mutare (daca a castigat X sau 0 sau daca e remiza sau daca jocul continua)
  
 ===== Rezultate obtinute ===== ===== Rezultate obtinute =====
Line 49: Line 61:
 ===== Concluzii ===== ===== Concluzii =====
  
-===== Download ​=====+==== Download ====
 {{:​pm:​prj2021:​avaduva:​balasoiu_cristina_ioana_333cc_resurse.zip|}} {{:​pm:​prj2021:​avaduva:​balasoiu_cristina_ioana_333cc_resurse.zip|}}
-===== Jurnal ​=====+==== Jurnal ====
   * Etapa 1:   * Etapa 1:
     Dezvoltarea codului de baza si a circuitului pe platforma [[https://​www.tinkercad.com/​]] pentru a putea realiza mai usor o lista cu piesele necesare pentru ideea de proiect aleasa.     Dezvoltarea codului de baza si a circuitului pe platforma [[https://​www.tinkercad.com/​]] pentru a putea realiza mai usor o lista cu piesele necesare pentru ideea de proiect aleasa.
Line 59: Line 71:
     Asamblarea efectiva a partii hardware, adaptarea codului si testarea rezultatului final     Asamblarea efectiva a partii hardware, adaptarea codului si testarea rezultatului final
  
-===== Bibiliografie/​Resurse ​=====+==== Bibiliografie/​Resurse ====
 [[https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​avaduva/​xsi0]] [[https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​avaduva/​xsi0]]
 [[https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​avaduva/​xsi0?​do=export_pdf]] [[https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​avaduva/​xsi0?​do=export_pdf]]
pm/prj2021/avaduva/xsi0.1621707636.txt.gz · Last modified: 2021/05/22 21:20 by cristina.balasoiu
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