Differences

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

Link to this comparison view

pm:prj2025:iotelea:alexandra.lache0802 [2025/05/11 08:56]
alexandra.lache0802 [Hardware Design]
pm:prj2025:iotelea:alexandra.lache0802 [2025/05/26 21:55] (current)
alexandra.lache0802 [Hardware Design]
Line 4: Line 4:
  
   * Proiectul meu își propune implementarea unei table de șah inteligentă,​ capabile să detecteze mutările pieselor și să evidențieze mutările valide pentru piesa selectată.   * Proiectul meu își propune implementarea unei table de șah inteligentă,​ capabile să detecteze mutările pieselor și să evidențieze mutările valide pentru piesa selectată.
-  * De asemeneaproiectul ​va conține și un display LCD care va arăta timpul ​rămas ​fiecărui ​jucător și va atenționa jucătorii atunci când s-a efectuat o mutare invalida+  * În plussistemul ​va integra ​un display LCD dedicat afișării timpului ​rămas ​pentru fiecare ​jucător, precum ​și semnalării erorilor în cazul efectuării unor mutări invalide
-  * Ideea proiectului provine din experiența personală. Jucând șah cu fratele meu mai mic atât pe platforma chess.com, cât și pe o tablă fizică, am observat cât de folositoare este funcționalitatea de a vedea toate mutările posibile ale unei piese. Așadar, îmi propun să fac și o implementare fizică, ​care să faciliteze jocul de șah.+  * Ideea proiectului provine din experiența personală. Jucând șah cu fratele meu mai mic atât pe platforma chess.com, cât și pe o tablă fizică, am observat cât de folositoare este funcționalitatea de a vedea toate mutările posibile ale unei piese. Așadar, îmi propun să fac și o implementare fizică, ​cu scopul de a îmbunătăți experiența ​de joc și de a face șahul mai accesibil și interactiv..
  
 ===== Descriere generală ===== ===== Descriere generală =====
  
-<note tip> +  * Circuitul propus are la bază un microcontroler ESP32care acționează ca unitate centrală de control școordonează interacțiunea dintre toate componentele sistemului. 
-O schemă bloc cu toate modulele proiectului vostruatât software cât şhardware însoţită de o descriere ​acestora precum şi modului în care interacţionează.+  * Tabla de șah este acoperită de o matrice de switch-uri reed, câte unul pentru fiecare căsuță, pentru ​detecta poziția pieselor. Pentru ​economisi pini de pe ESP32, această matrice este controlată cu ajutorul unui registru de deplasare 74HC595. 
 +  * ESP32 interacționează ​cu o bandă adresabilă de led-uri, utilizate pentru a evidenția mutările valide ale pieselor selectate. 
 +  * Se utilizează două butoane pentru a schimba jucătorul activ. 
 +  * În plus, este folosit un display pentru a afișa mesaje relevante(timpul rămas, atenționare în cazul unei erori).
  
-Exemplu de schemă blochttp://www.robs-projects.com/​mp3proj/​newplayer.html + 
-</​note>​+{{ :pm:prj2025:​iotelea:​smartchessboard_diagrama_lache_alexandra.png?​nolink&​500 |}}
  
 ===== Hardware Design ===== ===== Hardware Design =====
  
 **Componente necesare**: **Componente necesare**:
-  * microcontroler ESP32+  * [[https://​www.optimusdigital.ro/​ro/​placi-cu-bluetooth/​4371-placa-de-dezvoltare-esp32-cu-wifi-i-bluetooth-42.html?​search_query=esp32&​results=28]|microcontroler ESP32]]
   * 64 x [[https://​www.optimusdigital.ro/​ro/​butoane-i-comutatoare/​3899-comutator-magnetic-reed-normal-deschis-2-x-14-mm.html|switch-uri reed magnetic]]   * 64 x [[https://​www.optimusdigital.ro/​ro/​butoane-i-comutatoare/​3899-comutator-magnetic-reed-normal-deschis-2-x-14-mm.html|switch-uri reed magnetic]]
   * [[https://​www.optimusdigital.ro/​ro/​optoelectronice-lcd-uri/​2894-lcd-cu-interfata-i2c-si-backlight-albastru.html|LCD 1602 cu Interfata I2C si Backlight Albastru]]   * [[https://​www.optimusdigital.ro/​ro/​optoelectronice-lcd-uri/​2894-lcd-cu-interfata-i2c-si-backlight-albastru.html|LCD 1602 cu Interfata I2C si Backlight Albastru]]
   * 11 x [[https://​sigmanortec.ro/​Banda-LED-adresabila-RGB-WS2812-60led-m-IP67-10cm-p166125661|Banda programabila led-uri RGB]]   * 11 x [[https://​sigmanortec.ro/​Banda-LED-adresabila-RGB-WS2812-60led-m-IP67-10cm-p166125661|Banda programabila led-uri RGB]]
 +  * 1 x 74HC595N
   * 2 x [[https://​www.optimusdigital.ro/​ro/​butoane-i-comutatoare/​1114-buton-cu-capac-rotund-rou.html|Buton]]   * 2 x [[https://​www.optimusdigital.ro/​ro/​butoane-i-comutatoare/​1114-buton-cu-capac-rotund-rou.html|Buton]]
-  * Rezistențe, ​1 x condensator(?), fire +  * Rezistențe, ​condensatoare,​ fire 
-  * (Baterie externa?)+  * Sursă de alimentare - TBA 
 + 
 +**Diagramă circuit**:​ 
 + 
 +{{ :​pm:​prj2025:​iotelea:​circuit_image_2_.png?nolink&​700 |}} 
 + 
 +**Explicare cablaj** 
 +  * 74HC595N 
 + 
 +^ Pin  ^ Legătură ESP32 ^ Notă | 
 +| DS   | GPIO17 ​        | Date (serial input      | 
 +| SHCP | GPIO18 ​        | Ceas (shift clock) ​       | 
 +| STCP | GPIO19 ​        | Latch (stochează ieșirea) | 
 + 
 +Ieșirile O0-O7 sunt conectate la matricea de switch-urifiecare ieșire corespunzând unui rând. 
 + 
 +  * Bandă led 
 + 
 +^ Pin ^ Legătură ESP32 ^ Notă | 
 +| DIN | GPIO15 ​        | Semnal date LED (neopixel
 + 
 +Banda led are nevoie de alimentare VCC de 5V. 
 + 
 +  * LCD I2C 
 + 
 +^ Pin ^ Legătură ESP32 ^ Notă | 
 +| SDA | GPIO21 ​        | I2C - date | 
 +| SCL | GPIO22 ​        | I2C - ceas | 
 + 
 +  * Matrice switch-uri reed 
 + 
 +^ Pin  ^ Legătură ESP32 ^ Notă | 
 +| COL0 | GPIO34 ​        | doar input     | 
 +| COL1 | GPIO35 ​        | doar input     | 
 +| COL2 | GPIO32 ​        ​| ​                           | 
 +| COL3 | GPIO33 ​        ​| ​                           | 
 +| COL4 | GPIO25 ​        ​| ​                           | 
 +| COL5 | GPIO26 ​        ​| ​                           | 
 +| COL6 | GPIO27 ​        ​| ​                           | 
 +| COL7 | GPIO14 ​        ​| ​    | 
 + 
 + 
 +  * Butoane jucători 
 + 
 +^ Pin        ^ Legătură ESP32 ^ Notă                                 | 
 +| WHITE_BTN | GPIO13 ​        | Întrerupere + rezistență de pull-down | 
 +| BLACK_BTN | GPIO16 ​        | Întrerupere + rezistență de pull-down | 
 + 
 + 
 +**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/​1a6xs2k5m4d7LkpFWmB1pGvC11KmW6UEW/​view?​usp=sharing| Testare funcționalitate 74HC595N]] 
 +  * [[https://​drive.google.com/​file/​d/​1Qw_CxFBaAX7rj3JhEk1cNrkVJc_pHWwu/​view?​usp=sharing|Suport reed-uri]]
  
-{{ :​pm:​prj2025:​iotelea:​circuit_image_alexandra_lache.png?​nolink&​700 |}} 
 ===== Software Design ===== ===== Software Design =====
 +
 +  * mediu de dezvoltare: Arduino IDE
 +  * 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
 +  * github repo: https://​github.com/​alex2004-l/​smart-chessboard
 +
 +**Implementare**
 +
 +  * Aplicația este structurată ca o mașină de stări: BEGINNING, READY, PICK, MOVE, CAPTURE, END;
 +
 +  * 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.
 + 
 +  * 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ă
 +
  
  
Line 61: Line 142:
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
- 
-<​note>​ 
-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>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
pm/prj2025/iotelea/alexandra.lache0802.1746942995.txt.gz · Last modified: 2025/05/11 08:56 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