This is an old revision of the document!


Smart chessboard

Introducere

  • 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ă.
  • În plus, sistemul 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ă, cu scopul de a îmbunătăți experiența de joc și de a face șahul mai accesibil și interactiv..

Descriere generală

  • Circuitul propus are la bază un microcontroler ESP32, care acționează ca unitate centrală de control și coordonează interacțiunea dintre toate componentele sistemului.
  • Tabla de șah este acoperită de o matrice de switch-uri reed, câte unul pentru fiecare căsuță, pentru a detecta poziția pieselor. Pentru a 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).

Hardware Design

Componente necesare:

Diagramă circuit:

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-uri, fiecare 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 Intrare digitală (doar input)
COL1 GPIO35 Intrare digitală (doar input)
COL2 GPIO32 Intrare
COL3 GPIO33 Intrare
COL4 GPIO25 Intrare
COL5 GPIO26 Intrare
COL6 GPIO27 Intrare
COL7 GPIO14 Intrare
  • Butoane jucători
Pin Legătură ESP32 Notă
WHITE_BTN GPIO13 Întrerupere + rezistență de pull-down
BLACK_BTN GPIO16 Întrerupere + rezistență de pull-down

Testare componente

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

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

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

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 o 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.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

pm/prj2025/iotelea/alexandra.lache0802.1748276994.txt.gz · Last modified: 2025/05/26 19:29 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