Differences

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

Link to this comparison view

pm:prj2026:alexandru.jipa2803:eusebiu.burtescu [2026/05/04 18:49]
eusebiu.burtescu [Descriere generală]
pm:prj2026:alexandru.jipa2803:eusebiu.burtescu [2026/05/11 14:25] (current)
eusebiu.burtescu
Line 1: Line 1:
 ====== TicTacToe++ ====== ====== TicTacToe++ ======
 ===== Introducere ===== ===== Introducere =====
-TicTacToe++ este o consolă de buzunar care mută clasicul joc "X și 0" de pe hârtie pe hardware propriu. Proiectul rezolvă o problemă simplă: dependența de ecrane tactile și software complex, oferind în schimb o experiență tactilă, cu butoane fizice și un sistem care funcționează oriunde, fără internet sau reclame. 
  
-Creierul sistemului ​este un microcontroler ​care gestionează singur regulile, afișează starea jocului ​pe un ecran OLED clar și oferă feedback sonor prin buzzerEste un gadget "​open-source"​ construit ​de la zerocare pune accent pe portabilitate și pe satisfacția de a te juca pe un dispozitiv asamblat chiar de tine.+TicTacToe++ ​este o consolă handheld ​care transformă jocul clasic de "X și 0" dintr-o activitate banală pe hârtie într-o experiență electronică interactivă. Dispozitivul utilizează un microcontroler pentru a gestiona logica de joc, afișând grila pe un ecran OLED de înaltă rezoluție ​și oferind control tactil ​prin cinci butoane fiziceFață ​de varianta tradiționalăproiectul aduce funcții avansate precum grile variabile (moduri ​de joc diferite), ​un sistem ​de memorare a scorului și feedback sonor polifonic, generat prin melodii 8-bit specifice pentru victorie sau remiză.
  
-Pe lângă distracție,​ proiectul ​este un exemplu practic de electronică aplicată. Demonstrează cum poți folosi componente ieftine ​și eficiente pentru ​crea un sistem ​de gaming funcționalfiind ideal pentru oricine vrea să vadă cum codul scris pe calculator prinde viață într-un obiect fizic pe care îl poțține în mână.+Scopul acestui proiect ​este crearea unui gadget autonom care să ofere divertisment rapid, punând în același timp în valoare puterea sistemelor embedded. Ideea pornit ​de la dorința de a digitaliza un joc retrodar cu un "​upgrade"​ tehnologic semnificativ:​ înlocuirea creionului cu un algoritm care arbitrează singur meciurile și eliminarea nevoii de ecrane tactile în favoarea butoanelor mecanice. Am vrut să creez ceva ce se simte ca o consolă de jocuri din anii '90, dar care rulează pe un hardware modern șeficient.
  
 ===== Descriere generală ===== ===== Descriere generală =====
-{{:​pm:​prj2026:​alexandru.jipa2803:​graph.png?200|}}+ 
 +{{ :​pm:​prj2026:​alexandru.jipa2803:​bloctictactoe252.png |}} 
 Componentele principale pe care le utilizez în proiect sunt: Componentele principale pe care le utilizez în proiect sunt:
  
 **Microcontroler ATmega328P (Xplained Mini)** **Microcontroler ATmega328P (Xplained Mini)**
  
-Este unitatea centrală de procesare a consolei, responsabilă pentru rularea logicii jocului și coordonarea tuturor perifericelor. +Este unitatea centrală de procesare a consolei, responsabilă pentru rularea logicii jocului și coordonarea tuturor perifericelor. Acesta citește semnalele de la matricea de butoane, procesează mutările jucătorilor și transmite datele vizuale către ​ecranul TFT prin protocolul SPI, precum ​și semnalele audio către buzzer. Placa permite programarea facilă prin interfața Micro-USB și oferă ​stabilitatea necesară ​pentru ​gestionarea unei interfețe grafice color.
-Acesta citește semnalele de la butoane, procesează mutările jucătorilor și transmite datele vizuale către ​ecran și semnalele audio către buzzer. +
-Placa permite programarea facilă prin interfața Micro-USB și oferă ​suficienți pini I/O pentru ​extinderi ulterioare.+
  
-**Display ​OLED 0.96 inch**+**Display ​TFT LCD 1.44 inch (Color)**
  
-Am utilizat un afișaj ​OLED cu rezoluție de 128x64 ​pixeli pentru a oferi interfațgrafică ​jocului TicTacToe++. +Am utilizat un afișaj ​TFT color cu rezoluție de 128x128 ​pixeli pentru a oferi interfață grafică ​modernă ​jocului TicTacToe++. Acesta comunică cu microcontrolerul prin protocolul ​SPI (Serial Peripheral Interface), oferind o viteză ​de refresh superioară. Ecranul este compatibil cu logica de 5V și afișează grila de joc, simbolurile "​X"​ și "​0" ​în culori diferite, cursorul de selecție și animații pentru ​mesajele de victorie ​sau remiză.
-Acesta comunică cu microcontrolerul prin protocolul ​I2C (Inter-Integrated Circuit), utilizând doar doi pini de date (SDA și SCL), ceea ce reduce complexitatea cablajului. +
-Ecranul ​afișează grila de joc, simbolurile "​X"​ și "​0",​ cursorul de selecție și mesajele de stare (victorieremiză ​sau rândul jucătorului).+
  
 **Butoane Push-Button (Input Control)** **Butoane Push-Button (Input Control)**
  
-Sistemul utilizează un set de butoane tactile pentru ​controlul interacțiunii: patru butoane pentru navigarea pe grilă (sus, jos, stânga, dreapta) ​și un buton central ​pentru confirmarea mutării (Select). +Sistemul utilizează un set de butoane tactile ​configurate ​pentru ​un control optim: patru butoane ​așezate în format "​D-Pad" ​pentru navigarea pe grilă (sus, jos, stânga, dreapta)un buton pentru confirmarea mutării (Select) și un buton pentru funcții suplimentare (Reset). Fiecare buton este configurat folosind rezistențele interne de tip pull-up ale microcontrolerului pentru a asigura citiri digitale stabile și pentru a simplifica circuitul electronic
-Fiecare buton este configurat folosind rezistențele interne de tip pull-up ale microcontrolerului pentru a asigura citiri digitale stabile și pentru a simplifica circuitul electronic ​pe breadboard.+ 
 +**LED-uri de Semnalizare (5mm)** 
 + 
 +Am integrat un set de LED-uri de 5mm (roșii și verzi) pentru a oferi feedback vizual suplimentar în afara ecranului. Acestea sunt utilizate pentru a indica rândul jucătorului curent sau pentru a semnaliza starea de "Game Over". Fiecare LED este conectat în serie cu o rezistență de 220$\Omega$ pentru a limita curentul și a proteja pinii microcontrolerului.
  
 **Buzzer Pasiv** **Buzzer Pasiv**
  
-Modulul buzzer pasiv este utilizat pentru a oferi feedback audio în timp real, îmbunătățind experiența de utilizare ​și accesibilitatea dispozitivului. +Modulul buzzer pasiv este utilizat pentru a oferi feedback audio în timp real, îmbunătățind experiența de utilizare. ​Acesta ​permite generarea de frecvențe variabile, oferind posibilitatea de a programa sunete distincte pentru ​navigare, avertizări în cazul mutărilor incorecte și melodii de tip "​8-bit"​ pentru finalul jocului, procesate prin semnale PWM
-Spre deosebire de un buzzer activ, acesta ​permite generarea de frecvențe variabile, oferind posibilitatea de a programa sunete distincte pentru ​mutări valide, avertizări în cazul mutărilor incorecte și melodii ​scurte ​de tip "​8-bit"​ pentru finalul jocului. + 
-Acest feedback auditiv permite utilizatorului să confirme acțiunile fără a fi necesară ​monitorizarea ​constantă a ecranului.+**Breadboard (1660 puncte) și Fire Jumper (Tată-Tată)** 
 + 
 +Pentru asamblarea prototipului am utilizat un breadboard de dimensiuni mari (1660 puncte), montat pe o bază rigidă, care oferă spațiu generos pentru organizarea celor 4 linii de alimentare și a cablajului complex. Comunicarea fizică între componente se realizează prin fire de conexiune de tip "​Tată-Tată",​ asigurând un sistem modular ce permite depanarea rapidă și o structură solidă a consolei. 
 + 
 +**Suport de baterii (6xAA - 9V)** 
 + 
 +Asigură alimentarea autonomă a consolei la o tensiune nominală de 9V, utilizând două suporturi de baterii conectate în serie. Această tensiune superioară este necesară ​pentru a menține luminozitatea ​constantă a ecranului ​TFT și pentru a asigura un curent stabil prin pinul VIN al plăcii de dezvoltare, oferind portabilitate și performanță sistemului pe durata utilizării. 
 +===== Hardware Design ===== 
 + 
 +<note tip> 
 +Aici puneţi tot ce ţine de hardware design: 
 +  * listă de piese 
 +  * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri,​ e.g. http://​www.captain.at/​electronic-atmega16-mmc-schematic.png) 
 +  * diagrame de semnal  
 +  * rezultatele simulării 
 +</​note>​ 
 + 
 +===== Software Design ===== 
 + 
 + 
 +<note tip> 
 +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 
 +</​note>​ 
 + 
 +===== Rezultate Obţinute ===== 
 + 
 +<note tip> 
 +Care au fost rezultatele obţinute în urma realizării proiectului vostru. 
 +</​note>​ 
 + 
 +===== Concluzii ===== 
 + 
 +===== Download ===== 
 + 
 +<note warning>​ 
 +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**. 
 +</​note>​ 
 + 
 +===== Jurnal ===== 
 + 
 +<note tip> 
 +Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. 
 +</​note>​
  
-**Breadboard și Fire Jumper (Tată-Tată)**+===== Bibliografie/​Resurse =====
  
-Pentru asamblarea prototipului am utilizat un breadboard de 400 de puncte, care permite conectarea componentelor fără necesitatea lipirii. +<​note>​ 
-Comunicarea fizică între componente se realizează prin fire de conexiune de tip "Tată-Tată"asigurând un sistem modular ce permite depanarea rapidă șmodificarea circuitului în timpul dezvoltării software-ului.+Listă cu documente, datasheet-uriresurse Internet folosite, eventual grupate pe **Resurse Software** ş**Resurse Hardware**. 
 +</​note>​
  
-**Suport de baterii 4xAA**+<​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
-Asigură alimentarea autonomă a consolei la o tensiune de aproximativ 6V, oferind portabilitate sistemului. 
-Alimentarea este conectată la pinul VIN al plăcii de dezvoltare, care reglează tensiunea la 5V pentru a proteja microcontrolerul și perifericele conectate. 
pm/prj2026/alexandru.jipa2803/eusebiu.burtescu.1777909776.txt.gz · Last modified: 2026/05/04 18:49 by eusebiu.burtescu
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