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:
-
-
-
1 x 74HC595
-
Rezistențe, condensatoare, fire
Sursă de alimentare - TBA
Diagramă circuit:
Componente
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