Differences

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

Link to this comparison view

pm:prj2025:iotelea:alexandra.lache0802 [2025/05/26 21:41]
alexandra.lache0802 [Software Design]
pm:prj2025:iotelea:alexandra.lache0802 [2025/05/26 21:55] (current)
alexandra.lache0802 [Hardware Design]
Line 78: Line 78:
  
 **Realizare tablă de șah** **Realizare tablă de șah**
-[[https://​drive.google.com/​file/​d/​1VPy6rCzRrRd5N0nA_zXQbXTYwYyt8QC6/​view?​usp=sharing|Bandă led pe suportul inferior al tablei]] 
  
 +  * [[https://​drive.google.com/​file/​d/​1VPy6rCzRrRd5N0nA_zXQbXTYwYyt8QC6/​view?​usp=sharing|Bandă led pe suportul inferior al tablei]]
 +  * [[https://​drive.google.com/​file/​d/​1a6xs2k5m4d7LkpFWmB1pGvC11KmW6UEW/​view?​usp=sharing| Testare funcționalitate 74HC595N]]
 +  * [[https://​drive.google.com/​file/​d/​1Qw_CxFBaAX7rj3JhEk1cNrkVJc_pHWwu/​view?​usp=sharing|Suport reed-uri]]
  
 ===== Software Design ===== ===== Software Design =====
Line 86: Line 88:
   * librării : Adafruit_NeoPixel.h pentru programarea bandei led adresabile, LiquidCrystal_I2C.h și Wire.h pentru LCD   * librării : Adafruit_NeoPixel.h pentru programarea bandei led adresabile, LiquidCrystal_I2C.h și Wire.h pentru LCD
   * noțiuni de laborator folosite: I2C, timer, întreruperi   * noțiuni de laborator folosite: I2C, timer, întreruperi
 +  * github repo: https://​github.com/​alex2004-l/​smart-chessboard
  
-  ​* Aplicația este structurată ca o mașină de stări: +**Implementare** 
-   + 
-  typedef enum states { +  ​* Aplicația este structurată ca o mașină de stări: BEGINNING, READY, PICK, MOVE, CAPTURE, END;
-  ​BEGINNING, READY, PICK, +
-  ​MOVE, CAPTURE, END } STATES;+
  
   * Pentru a urmări pozițiile pieselor pe tablă se folosesc doi vectori: board și previous_board.   * Pentru a urmări pozițiile pieselor pe tablă se folosesc doi vectori: board și previous_board.
   * press_button_white() și press_button_black() sunt ISR-uri (Interrupt Service Routines) care schimbă starea jocului când jucătorul apasă butonul.   * press_button_white() și press_button_black() sunt ISR-uri (Interrupt Service Routines) care schimbă starea jocului când jucătorul apasă butonul.
    
 +  * Detectarea mutărilor pieselor prin comparația board vs previous_board
 +
 +  * Validarea mutărilor pe baza tipului de piesă (folosind funcțiile din moves.h)
 +
 +  * Implementarea unui sistem de cronometru (folosind hardware timer)
 +
 +  * Detectarea capturilor și actualizarea stării jocului (CAPTURE, END)
 +
 +  * Afișarea mutărilor și timpului pe LCD
 +
 +  * Controlul LED-urilor în funcție de mutările făcute sau starea curentă
 +
  
  
pm/prj2025/iotelea/alexandra.lache0802.1748284914.txt.gz · Last modified: 2025/05/26 21:41 by alexandra.lache0802
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