This is an old revision of the document!


Joc X SI 0

Introducere

Ce face proiectul:

Am realizat un joc de X și 0 (Tic-Tac-Toe) cu ajutorul unei plăci Arduino Uno, care poate fi jucat în două moduri:

Jucător vs. Jucător Jucător vs. Bot (automat) Jocul este afișat pe un ecran LCD TFT de 1.44’’, iar controlul jocului se face prin intermediul a două butoane. Interfața este simplă, iar rezultatul partidei este afișat în timp real pe ecran.

Scopul proiectului:

Scopul a fost să îmbinăm cunoștințele de electronică și programare pentru a crea un joc interactiv, care să fie atât educativ, cât și distractiv. Am vrut să învățăm mai multe despre afișajele grafice, interacțiunea cu utilizatorul prin butoane și logica unui joc automatizat.

Ideea de la care am pornit:

Totul a început cu ideea de a crea un joc simplu, dar atractiv, folosind componente de bază Arduino. Am vrut să ne testăm creativitatea și să adăugăm și un mod cu inteligență artificială simplă (bot), pentru a face proiectul mai interesant și mai complex.

De ce credem că este util:

Pentru alții: este un proiect ideal pentru începători care doresc să învețe programare Arduino, folosirea unui ecran LCD, lucrul cu butoane și aplicarea logicii în jocuri. Pentru noi: ne-a ajutat să înțelegem mai bine cum interacționează componentele hardware cu codul, cum se gestionează interfețele grafice și cum se scrie o logică de joc, inclusiv pentru un bot.

Descriere generală

O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită de o descriere a acestora precum şi a modului în care interacţionează.

Descrierea componentelor:

1. Plăcuța Arduino Uno

 
 Rol: Este creierul proiectului. Este un microcontroler programabil care citește intrări (ex: de la butoane) și controlează ieșiri (ex: LED-uri, motoare).
 

2. Fire mama-mama

 
 Rol: Sunt folosite pentru a face conexiunile între componente și placa de dezvoltare (Arduino ↔ Breadboard ↔ Componente).
 

3. 2 rezistențe de 10 ohm

Rol: Limitează curentul care trece printr-un circuit. La 10 ohmi sunt destul de mici și pot fi folosite în testări simple sau pentru protecție minimă.

4. 2 pushbutton-uri

 Rol: Sunt folosite ca dispozitive de intrare. Când apeși pe ele, trimit un semnal digital (HIGH/LOW) către Arduino.
 

5. Breadboard (placă de test)

 Rol: Permite realizarea de conexiuni temporare între componente fără a fi nevoie de lipire.   

Exemplu de schemă bloc:

Hardware Design

Componentele pentru proiect:

  1. placuta Arduino Uno
  2. fire mama-mama
  3. 2 rezistente de 10 ohm
  4. 2 pushbutton
  5. un breadboard

Arduino UNO

 1) 5V: Alimentare pentru componente externe, cum ar fi Display-ul TFT.
 2) GND: Comun pentru toate componentele, asigurând un potențial de referință comun.
 3) D2: Utilizat pentru a citi semnalul de la primul buton (Pushbutton).
 4) D7: Utilizat pentru a citi semnalul de la al doilea buton (Pushbutton).
 5) D8: Conectat la pinul A0/DC al Display-ului TFT pentru a controla modul de date/comandă.
 6) D9: Conectat la pinul RESET al Display-ului TFT pentru a reseta display-ul.
 7) D10: Conectat la pinul CS al Display-ului TFT pentru a selecta dispozitivul în comunicația SPI.
 8) D11: Utilizat pentru a transmite date (MOSI) către Display-ul TFT.
 9) D13: Utilizat pentru a transmite semnale de ceas (SCK) către Display-ul TFT.
 

Display TFT LCD 1.44” 128×128

 1) VCC: Alimentare de la Arduino (5V).
 2) GND: Conectat la GND-ul Arduino.
 3) CS: Conectat la D10 pe Arduino pentru a selecta display-ul în comunicația SPI.
 4) RESET: Conectat la D9 pe Arduino pentru a permite resetarea display-ului.
 5) A0/DC: Conectat la D8 pe Arduino pentru a comuta între modul de date și modul de comandă.
 6) SDA/MOSI: Conectat la D11 pe Arduino pentru a primi date.
 7) SCK/CLK: Conectat la D13 pe Arduino pentru a primi semnale de ceas.
 

Pushbutton

 1) Pin 3 (out): Conectat la GND și la D2 pe Arduino pentru a citi starea butonului.
 2) Pin 1 (in): Conectat la D2 pe Arduino pentru a citi starea butonului.
 

Pushbutton

 
 1) Pin 3 (out): Conectat la GND și la D7 pe Arduino pentru a citi starea butonului.
 2) Pin 1 (in): Conectat la D7 pe Arduino pentru a citi starea butonului.

Schema electrica:

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. https://youtube.com/shorts/gUEhmS1PZkU?feature=share

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/prj2025/czlatea/andrei.ignat.1747563349.txt.gz · Last modified: 2025/05/18 13:15 by andrei.ignat
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