Differences

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

Link to this comparison view

pm:prj2023:adarmaz:joc_de_sah [2023/05/06 16:36]
victor.moldovan
pm:prj2023:adarmaz:joc_de_sah [2023/05/26 23:08] (current)
victor.moldovan
Line 2: Line 2:
 ===== Introducere ===== ===== Introducere =====
  
-<note tip> 
 Prezentarea pe scurt: Prezentarea pe scurt:
 Acest proiect doreste sa implementeze un joc de sah  Acest proiect doreste sa implementeze un joc de sah 
-</​note>​+
 ===== Descriere generală ===== ===== Descriere generală =====
  
-Jocul de sah este pornit in momentul in care cei 2 jucatori apasa "​○"​ **(select)**.+{{:​pm:​prj2023:​adarmaz:​microsoftteams-image.png|}}
  
 Jucatorii pot naviga cu butoanele "​←",​ "​↑",​ "​→",​ "​↓",​ care muta cursorul pe tabla. Cursorul fiecarui jucator nu poate fi mutat decat atunci cand este tura acelui jucator. Jucatorii pot naviga cu butoanele "​←",​ "​↑",​ "​→",​ "​↓",​ care muta cursorul pe tabla. Cursorul fiecarui jucator nu poate fi mutat decat atunci cand este tura acelui jucator.
Line 15: Line 14:
  
 In cazul in care este apasat **(select)** pe altceva decat un spatiu valid, mutarea se anuleaza si trebuie **(select)**ata din nou o piesa. In cazul in care este apasat **(select)** pe altceva decat un spatiu valid, mutarea se anuleaza si trebuie **(select)**ata din nou o piesa.
-Jucatorii pot, odata pe tura, selecta "​TIE"​ pentru a oferi o remiza. Asta ofera control celuilalt jucator, care poate accepta **(select)**and "​TIE" ​sau refuza ​**(select)**and ​orice altceva.+Jucatorii pot, odata pe tura, selecta "​TIE"​ pentru a oferi o remiza. Asta ofera control celuilalt jucator, care poate accepta ​apasand ​**(select)** sau refuza ​apasand ​orice altceva.
  
-Fiecare jucator are un timp fix pentru a realiza ​mutarea. In cazul in care nu se incadreaza in timp, jocul va executa o mutare la intamplare.+Fiecare jucator are un timp fix pentru a realiza ​mutarile. In cazul in care nu se incadreaza in timp, jocul va executa o mutare la intamplare.
  
 Un led este aprins de partea jucatorului activ pentru a indica a cui tura este. Un led este aprins de partea jucatorului activ pentru a indica a cui tura este.
Line 23: Line 22:
 Jucatorii pot **(select)**a "​CONCEDE"​ pentru a renunta si a oferi victoria oponentului. Jucatorii pot **(select)**a "​CONCEDE"​ pentru a renunta si a oferi victoria oponentului.
  
-In momentul in care un joc se incheie, ​jucatorii ​trebuie sa apese **(select)** simultan ​pentru a porni un nou joc.+In momentul in care un joc se incheie, ​jucatorul a carui led este aprins ​trebuie sa apese oricare buton pentru a porni un nou joc.
  
 {{https://​ocw.cs.pub.ro/​courses/​_media/​pm/​prj2023/​adarmaz/​pm_faculta_1_.png}} {{https://​ocw.cs.pub.ro/​courses/​_media/​pm/​prj2023/​adarmaz/​pm_faculta_1_.png}}
Line 29: Line 28:
 ===== Hardware Design ===== ===== Hardware Design =====
  
-<note tip> +Lista componentelor
-Aici puneţi tot ce ţine de hardware design+  * 2 LED 
-  * listă de piese +  * 1 placa Arduino UNO 
-  * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri,​ e.g. http://​www.captain.at/​electronic-atmega16-mmc-schematic.png) +  * 1 LCD 128x64 
-  * diagrame de semnal ​ +  * 10 butoane 
-  * rezultatele simulării +  * 10 rezistoare 
-</​note>​+  * Cabluri
  
-{{:​pm:​prj2023:​adarmaz:​microsoftteams-image.png|}}+Pinul 4 alimenteaza LED-ul jucatorului 1. 
 +Pinul 5 alimenteaza LED-ul jucatorului 2. 
 + 
 +{{https://​ocw.cs.pub.ro/​courses/​_media/​pm/​prj2023/​adarmaz/​led.png}} 
 + 
 +Pinul 2 alimenteaza butoanele jucatorului 1. 
 +Pinul 3 alimenteaza butoanele jucatorului 2. 
 + 
 +{{:​pm:​prj2023:​adarmaz:​butoane.png?200|}} 
 + 
 +Ambele circuite sunt conectate la pinul A2, de pe care se citeste tensiunea aferenta fiecarui buton. 
 +Fiecare din butoane scurtcircuiteaza un numar de rezistente pentru a modifica tensiunea de pe A2. 
 + 
 +Daca sunt apasate mai multe butoane deodata, butonul cel mai la stanga (din perspectiva jucatorului activ) are prioritate, deoarece sunt scurt-circuitate toate rezistentele de la dreapta butonului. 
 + 
 +Pinii 10 si 11 transmit date LCD-ului. 12 este clock-ul. 
 + 
 +Pinul GND al LCD-ului este conectat la GND-ul de pe Arduino. Pinul VCC al LCD-ului este conectat la 5V. 
 + 
 +Pinii BLA si BLK controleaza luminozitatea ecranului si sunt conectati la 3.3V si GND, respectiv. 
 + 
 +Codul (orientativ) de culoare pentru cabluri este: 
 +  * Verde pentru circuitele cu LEDuri 
 +  * Alb-galben-gri deschis pentru conexiunile butoanelor care scurtcircuiteaza rezistente 
 +  * Portocaliu pentru 3.3V 
 +  * Rosu pentru 5V 
 +  * Negru si maro pentru ground 
 +  * Maro pentru conexiunea cu A2
  
 ===== Software Design ===== ===== Software Design =====
  
 +Mediul de dezvoltare este IDE-ul Arduino.
  
-<note tip> +Datele care trebuiesc afisate pe ecran sunt reprezentate printr-un sir de 128x64 biti.
-Descrierea codului aplicaţiei (firmware):​ +
-  * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) +
-  * librării şi surse 3rd-party (e.g. Procyon AVRlib) +
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi +
-  * (etapa 3) surse şi funcţii implementate +
-</​note>​+
  
-===== Rezultate Obţinute =====+Tabla de sah este de dimensiune 64x64, fiecare patrat fiind 8x8. Programul are o matrice 
 +de 8x8 char pe care o foloseste pentru a calcula starile jocului.
  
-<note tip> +Bitii de pe ecran sunt setati prin aplicarea unor masti hardcodate care reprezinta fiecare element de UI.
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. +
-</​note>​+
  
-===== Concluzii =====+Jucatorii au un cursor, stocand o pozitie pe tabla de joc.
  
-===== Download =====+Se genereaza o intrerupere la fiecare masuratoare pe pin analogic pentru a detecta daca butoanele au fost apasate.
  
-<note warning>​ +Se genereaza ​intrerupere la fiecare secunda pentru a decrementa timerul jucatorului activ.
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului:​ surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna ​impresie bună ;-).+
  
-Fişierele se încarcă ​pe wiki folosind facilitatea **Add Images or other files**Namespace-ul în care se încarcă fişierele este de tipul **:​pm:​prj20??:​c?​** sau **:​pm:​prj20??:​c?:​nume_student** (dacă este cazul). **Exemplu:​** Dumitru Alin, 331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. +Am folosit biblioteca U8G2 pentru a scrie pe LCD.
-</​note>​+
  
-===== Jurnal ​=====+===== Rezultate Obţinute ​=====
  
-<note tip> +Un joc de sah cu ecran LCD
-Puteți avea și o secțiune ​de jurnal în care să poată urmări asistentul de proiect progresul proiectului+ 
-</note>+===== Download ===== 
 + 
 +<​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a>​</html>
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
-<​note>​ +https://​github.com/olikraus/​u8g2 - Biblioteca u8g2.
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. +
-</note>+
  
-<​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ 
pm/prj2023/adarmaz/joc_de_sah.1683380218.txt.gz · Last modified: 2023/05/06 16:36 by victor.moldovan
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