This is an old revision of the document!


Șah Interactiv pe Microcontroler (Console Chess)

Introducere

  • Ce face: Proiectul „Console Chess” este o consolă portabilă bazată pe ATmega328P, care permite jucarea unei partide de șah (Player vs. Player). Folosește un ecran TFT de 2.8” pentru afișarea tablei, un D-Pad fizic (5 butoane) pentru mutări, un LED RGB și un buzzer pasiv pentru feedback vizual și sonor în timp real.
  • Care este scopul lui: Implementarea logicii complexe a șahului pe un microcontroler pe 8 biți în C (bare-metal), optimizând utilizarea memoriei și gestionând eficient multiple periferice (comunicație SPI, generare semnale PWM, citire pini digitali).
  • Care a fost ideea de la care am pornit: Construirea unui sistem interactiv complet de tip „retro-console” de la zero, îmbinând un joc clasic de strategie cu provocările ingineriei hardware la nivel de regiștri.
  • De ce este util pentru alții și pentru mine: Pentru mine, este mediul ideal de a aprofunda interfațarea componentelor cu niveluri logice diferite (5V vs 3.3V) și lucrul avansat cu Timere și SPI. Pentru alți studenți, proiectul servește drept ghid practic și bază de cod (arhitectură software) pentru dezvoltarea de jocuri embedded pe arhitectura AVR.

Descriere generală

Arhitectura proiectului este structurată în patru mari blocuri funcționale (Alimentare, Input, Procesare și Output), care interacționează constant pentru a oferi o experiență de joc fluidă.

Descrierea modulelor și a modului de interacțiune:

  • Alimentare USB 5V: Reprezintă sursa de energie a întregului sistem. Tensiunea este preluată direct din portul USB (prin placa ATmega328P) și este distribuită către microcontroler și restul perifericelor de pe breadboard, asigurând funcționarea continuă.
  • Blocul de Input (Butoane D-Pad): Este format din 5 butoane tactile configurate direcțional (Sus, Jos, Stânga, Dreapta, Select). Microcontrolerul interoghează constant starea acestor pini digitali (citire pini) pentru a capta intențiile jucătorului, cum ar fi navigarea cursorului pe tablă și selectarea pieselor de șah.
  • Blocul de Procesare (Microcontroler ATmega328P): Reprezintă „creierul” consolei. La nivel software, acesta rulează întreaga logică a jocului: stochează matricea tablei de șah, validează mutările conform regulilor, gestionează rândul fiecărui jucător și declanșează evenimente (șah, șah-mat). El preia datele din Input, calculează noua stare a jocului și comandă perifericele din Output.
  • Blocul de Output: Este responsabil pentru feedback-ul vizual și auditiv oferit utilizatorului:
    • Convertor Nivel Logic & Ecran TFT 2.8 inch: Microcontrolerul trimite date grafice (coordonate, culori, imagini cu piese) folosind protocolul SPI la o tensiune de 5V. Deoarece ecranul funcționează strict la 3.3V, convertorul de nivel logic acționează ca o punte de siguranță, scăzând tensiunea semnalelor SPI fără a pierde viteza de transmisie a datelor.
    • Buzzer Pasiv: Comunică cu microcontrolerul prin intermediul timerelor hardware. Primește semnale PWM (Pulse Width Modulation) de diferite frecvențe pentru a genera sunete specifice la navigare, erori (mutări invalide) sau victorii.
    • LED RGB: Este controlat direct prin pinii digitali de ieșire (I/O). Software-ul schimbă starea acestor pini pentru a modifica culoarea LED-ului, oferind o indicație vizuală rapidă (de exemplu, roșu pentru Player 1 și albastru pentru Player 2).

Schema bloc a proiectului Console Chess

Hardware Design

Nume Componentă Cantitate
Placă de dezvoltare ATmega328P Xplained Mini 1
Ecran afișaj TFT LCD 2.8'' (Interfață SPI) 1
Modul Convertor de Nivel Logic Bidirecțional cu 8 canale (TXS0108E) 1
Breadboard 830 puncte 1
Butoane tactile (Microîntrerupătoare 6x6x6 mm) pentru D-Pad 5
Modul Buzzer Pasiv (suport semnal PWM) 1
LED RGB (pentru indicarea turei jucătorilor) 1
Rezistențe 220 Ohm (pentru protecția LED-ului RGB) 3
Set fire de conexiune Dupont (Tată-Tată și Tată-Mamă de 20 cm) 1
Cablu USB (pentru alimentare și programare) 1

Aici puneţi tot ce ţine de hardware design:

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/cezar.zlatea/marius.gaibu.1778320567.txt.gz · Last modified: 2026/05/09 12:56 by marius.gaibu
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