Digital Chess Clock

Introducere

  • Prezentarea pe scurt a proiectului: Proiectul consta intr un ceas de sah digital bare metal, dezvoltat pe placa ATmega328P Xplained Mini. Sistemul contorizeaza timpul jucatorilor pe display uri cu 7 segmente, permite selectarea modurilor de joc (Blitz, Rapid, Clasic) de pe un ecran LCD si ofera feedback sonor si tactil folosind un buzzer si butoane fizice.
  • Scopul proiectului: Obiectivul principal este realizarea unui cronometru hardware precis si complet independent. Prin preluarea comenzilor prin intreruperi hardware, sistemul garanteaza un timp de raspuns instantaneu si elimina complet latenta intalnita in solutiile software obisnuite.
  • Ideea de la care am pornit: Initiativa a plecat de la nevoia unui dispozitiv fizic si fiabil care sa suporte nativ controlul de timp Fischer (adaugarea unui increment in secunde dupa fiecare mutare). Spre deosebire de aplicatiile mobile, un dispozitiv hardware dedicat asigura atat feedback ul tactil necesar apasarilor rapide, cat si durabilitatea dorita la tabla de joc.
  • Utilitate: Pentru pasionati, produsul este un echipament stabil si exact, util in orice meci competitional la nivel de amatori sau profesionisti. Pentru mine, proiectul reprezinta cadrul ideal sa aplic practic cunostintele de programare in C si sa lucrez direct cu registrii microcontrollerului pentru configurarea timerelor, intreruperilor externe si a protocoalelor SPI si I2C.

Descriere generală

Schema bloc:

Descrierea modulelor:

Module Hardware

  • Microcontroller (ATmega328P): Creierul sistemului, calculeaza logica si ofera semnalul de ceas.
  • Intrari (Butoane): Prelucreaza mecanic interactiunea jucatorilor.
  • Iesiri Vizuale (Ecrane): Modulele MAX7219 afiseaza cronometrele, iar ecranul LCD prezinta meniul de setari.
  • Iesire Audio (Buzzer): Ofera o confirmare auditiva la mutari sau la final de joc.

Module Software

  • Masina de stari: Gestioneaza fluxul principal (Joc in desfasurare, Meniu, Pauza).
  • Intreruperi Externe: Preiau semnalele de la butoane cu zero intarziere.
  • Timere: Contorizeaza exact scurgerea secundelor si orchestreaza frecventa pentru buzzer.
  • Comunicatie: Controleaza protocoalele SPI si I2C pentru a trimite date spre ecrane.

Cum interactioneaza:

  • Input: Utilizatorii actioneaza butoanele tactile pentru mutari si navigare. Semnalele declanseaza imediat intreruperi externe pe pinii procesorului ATmega328P asigurand o preluare instantanee a comenzilor.
  • Procesare: Logica software actualizeaza starea partidei. Microcontrollerul contorizeaza precis secundele folosind un timer hardware intern si adauga automat incrementul de timp Fischer la fiecare schimbare de tura.
  • Output Vizual: Datele actualizate sunt distribuite rapid catre afisaje. Timpul ramas ajunge prin protocolul SPI direct la ecranele MAX7219 iar optiunile de meniu sunt actualizate pe ecranul LCD folosind protocolul I2C.
  • Feedback Audio: Un alt timer intern genereaza semnal PWM catre buzzerul pasiv emitand tonuri scurte de confirmare la mutari si o alarma la finalul jocului.

Hardware Design

Lista componente:

  • 1 x Placa ATmega328P Xplained Mini: Microcontrollerul principal. Ruleaza aplicatia, contine timerul pentru ceas si programatorul integrat.
  • 1 x Modul MAX7219 cu afisaj 7 segmente (8 cifre): Afiseaza timpul ramas pentru fiecare jucator. Protocol de comunicatie: SPI.
  • 1 x Ecran LCD 16×2: Afiseaza meniul de start si modurile de joc selectabile.
  • 1 x Modul adaptor PCF8574: Conectat la ecranul LCD pentru a reduce numarul de fire. Protocol de comunicatie: I2C.
  • 4 x Butoane tactile push: Prelucreaza mutarile si navigarea in meniu. Conectate direct la pini GPIO (utilizand Intreruperi Externe).
  • 1 x Buzzer pasiv: Emite alertele sonore la mutari si la final de partida. Controlat prin timer intern (semnal PWM).
  • 1 x Breadboard: Platforma utilizata pentru asamblarea fizica a circuitului electric fara a necesita lipituri.
  • 1 x Set fire Dupont tata tata: Folosite pentru a realiza conexiunile electrice directe pe breadboard.
  • 1 x Set fire Dupont mama tata: Necesare pentru a trage legaturile intre pinii tata de pe placa de dezvoltare si componentele de pe breadboard.

Software Design

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

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2026/tarik_ilhan.omer/alexandru.serban04.txt · Last modified: 2026/05/09 20:47 by alexandru.serban04
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