Differences

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

Link to this comparison view

pm:prj2024:mdinica:andrei.boieriu [2024/05/25 21:46]
andrei.boieriu [Descriere generală]
pm:prj2024:mdinica:andrei.boieriu [2024/05/27 20:50] (current)
andrei.boieriu [Rezultate Obţinute]
Line 30: Line 30:
  
 **Implementare fizică:** **Implementare fizică:**
-{{ :​pm:​prj2024:​mdinica:​whatsapp_image_2024-05-18_at_18.49.43.jpeg?​nolink&​600 |}}+{{ :​pm:​prj2024:​mdinica:​implementare_fizica.jpeg?​nolink&​600 |}}
  
 ===== Software Design ===== ===== Software Design =====
  
 +** Link Github: ** \\
 +https://​github.com/​andreiboieriu/​Minichess
  
-<note tip> +** Mediu de dezvoltare: ** \\ 
-Descrierea codului aplicaţiei (firmware):​ +Visual ​Studio ​Code + avr-g++ / avrdude pentru compilare / uploadare cod pe microcontroller
-  ​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 =====+** Biblioteci și surse 3rd party: ** \\ 
 +- https://​github.com/​monoclecat/​avr-millis-function pentru funcția millis() \\ 
 +- laboratoarele de UART, ADC si I2C \\
  
 +** Descrierea implementării:​ ** \\
 +Codul a fost scris în C++, folosind următoarele clase pentru componentele importante: \\
 +  * Uart
 <note tip> <note tip>
-Care au fost rezultatele obţinute în urma realizării proiectului vostru.+  * Folosit pentru debugging 
 +  * Conține funcții pentru trimiterea prin uart a unui caracter/​șir de caractere și a unui număr de tip uint8_t/​uint16_t 
 +</​note>​ 
 +  * Twi 
 +<note tip> 
 +  * Folosit pentru comunicarea cu display-ul 
 +  * Conține funcții pentru pornirea comunicării i2c, scrierea unui octet și oprirea comunicării. 
 +  * De asemenea conține și o funcție pentru găsirea adreselor modulelor i2c conectate, folosită pentru găsirea adresei display-ului 
 +</​note>​ 
 +  * Adc 
 +<note tip> 
 +  * Folosit pentru citirea apăsării butoanelor 
 +  * Conține o funcție pentru citirea valorii de pe un pin 
 +</​note>​ 
 +  * Display 
 +<note tip> 
 +  * Conține o reprezentare internă pe biți a display-ului,​ folosind un array de 1024 de octeți (128 * 64 / 8) 
 +  * Expune funcții pentru afișare, golirea ecranului, desenarea unui pixel și schimbarea unui octet din buffer-ul intern 
 +  * Pentru inițializare,​ se trimit prin I2C valori conform datasheetului pentru configurarea și aprinderea display-ului 
 +  * Pentru afișare se trimit prin I2C pe rând la adresa 0x40 toți cei 1024 de octeți din buffer-ul intern 
 +</​note>​ 
 +  * ButtonManager 
 +<note tip> 
 +  * Conține o funcție care returnează butonul apăsat 
 +</​note>​ 
 +  * TextRenderer 
 +<note tip> 
 +  * Conține funcții pentru afișarea pe display a unui caracter/​șir de caractere 
 +  * Caracterele sunt de 8x8 pixeli 
 +</​note>​ 
 +  * Minichess 
 +<note tip> 
 +  * Jocul în sine, conține funcția run(), care pornește loop-ul principal 
 +</​note>​ 
 +  * ChessBoard 
 +<note tip> 
 +  * Conține reprezentarea internă a tablei de șah și expune funcții pentru interacțiunea cu aceasta
 </​note>​ </​note>​
  
 +Jocul este structurat sub forma unui state machine, cu următoarele stări:
 +  * MAIN_MENU
 +  * SELECTING_PIECE
 +  * SELECTING_MOVE
 +  * END_SCREEN
 +
 +Din meniul principal la apăsarea butonului de start, se va începe jocul, trecând în starea SELECTING_PIECE. Jucătorul selectează apoi o piesă folosind cele 4 butoane din stânga ecranului pentru a naviga prin ele și butonul ​
 +de start pentru a efectua selecția, trecând în starea SELECTING_MOVE. În această stare jucătorul poate naviga prin mutările posibile și selecta o mutare, sau se poate întoarce în starea anterioara, pentru a selecta altă piesă. După efectuarea unei mutări, jocul trece în starea SELECTING_PIECE,​ de data aceasta pentru celălalt jucător. Când se ajunge la un șah mat sau o egalitate, jocul trece în starea END_SCREEN, unde este afișat rezultatul jocului.
 +===== Rezultate Obţinute =====
 +
 +Youtube: https://​www.youtube.com/​watch?​v=fld-aEfBZQY
 ===== Concluzii ===== ===== Concluzii =====
  
Line 59: Line 108:
 </​note>​ </​note>​
  
-===== Jurnal ===== 
  
-<note tip> 
-Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. 
-</​note>​ 
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
  
 <​note>​ <​note>​
-Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**.+  * https://​docs.arduino.cc/​retired/​hacking/​hardware/​building-an-arduino-on-a-breadboard/ \\ 
 +  ​https://​berryarray.itch.io/​chess-pieces-16x16-one-bit pentru design-ul pieselor de șah \\ 
 +  ​https://​github.com/​damianvila/​font-bescii pentru font \\
 </​note>​ </​note>​
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
pm/prj2024/mdinica/andrei.boieriu.1716662805.txt.gz · Last modified: 2024/05/25 21:46 by andrei.boieriu
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