X si 0 - Joc clasic - Croitoru Constantin-Bogdan

Autor: Croitoru Constantin-Bogdan
Grupa: 334CA

Introducere

Proiectul consta in realizarea jocului clasic X si 0 utilizand un microcontroller, un LCD, un joystick pentru controlul miscarilor, un buzzer si un led pentru semnalizarea sfarsitului jocului.

Scopul proiectului este sa ofere o varianta hardware interactiva a jocului clasic.

Ideea de la care am pornit a fost implementarea unui joculet usor de jucat si cunoscut de toata lumea.

Consider ca este util pentru mine deoarece am ocazia de a realiza un proiect, atat hardware, cat si software, iar pentru altii poate fi o sursa de inspitatie pentru a-si construi propriile jocuri preferate.

Descriere generală

Schema bloc

Descriere
Proiectul are la baza microcontroller-ul Arduino UNO, care interactioneaza cu urmatoarele componente:

  • LCD Nokia 5110
    • afiseaza tabla de joc cu pozitionarea simbolurilor
    • afiseaza mesajul final care indica castigatorul
  • Joystick
    • permite jucatorului sa selecteze pozitia pe tabla de joc
  • Buzzer
    • emite un sunet la final in functie de rezultatul obtinut (daca a castigat sau nu)
  • Led
    • indica starea jocului: verde daca a castigat, rosu daca a pierdut, albastru trebuie sa puna un simbol pe tabla de joc

Hardware Design

Schema electrica

Alegere pini:

  • Joystick
    • pentru axa X folosesc A0 deoarece este un pin analogic care poate citi variatia tensiunii in functie de pozitia joystickului
    • pentru axa Y folosesc A1 deoarece este un pin analogic care poate citi variatia tensiunii in functie de pozitia joystickului
    • pentru butonul joystickului folosesc pinul D8 deoarece este un pin digital care poate citi starea HIGH/LOW
    • este alimentat la 5V
  • Buzzer
    • folosesc pinul D3 deoarece este un pin digital care poate genera semnal PWM
  • Led
    • pentru coloare rosie folosesc pinul D9
    • pentru coloare rosie folosesc pinul D10
    • pentru coloare rosie folosesc pinul D11
  • LCD Nokia 5110
    • RST este connect la D12
    • CE este connect la D4
    • DC este connect la D5
    • DIN este connect la D6
    • CLK este connect la D7
    • este alimentat la 3.3V, VCC conectat la 3.3V
    • LIGHT si GND sunt conectate la ground

Pini utilizați

Componentă Pin Arduino Interfață Funcție principală
Joystick – axa X A0 Analog (ADC) Folosesc A0 deoarece este un pin analogic care poate citi variația tensiunii în funcție de poziția joystickului pe axa orizontală
Joystick – axa Y A1 Analog (ADC) Folosesc A1 deoarece este un pin analogic care poate citi variația tensiunii în funcție de poziția joystickului pe axa verticală
Joystick – buton D8 Digital Input Folosesc D8 deoarece este un pin digital care poate citi starea HIGH/LOW la apăsare
Buzzer pasiv D3 Digital (PWM) Folosesc D2 deoarece este un pin digital care poate genera semnal PWM pentru a emite sunete
LED RGB – roșu D9 PWM Output Folosesc D9 pentru controlul culorii roșu
LED RGB – verde D10 PWM Output Folosesc D10 pentru controlul culorii verde al LED-ului RGB
LED RGB – albastru D11 PWM Output Folosesc D11 pentru controlul culorii albastru al LED-ului RGB
LCD Nokia 5110 – RST D12 Digital Output Reset hardware al LCD-ului
LCD Nokia 5110 – CE D4 Digital Output Selectează chip-ul LCD-ului pentru comunicare
LCD Nokia 5110 – DC D5 Digital Output Comută între comandă și date pentru afișaj
LCD Nokia 5110 – DIN D6 Digital Output Transmite date seriale către afișaj
LCD Nokia 5110 – CLK D7 Digital Output Semnal de ceas pentru comunicare SPI software

Bill of Materials

Software Design

Mediu de dezoltare : PlotmorfmIO
LIbrarii folosite: Adafruit PCD8544 Nokia 5110 LCD library

Notiuni loboratoare:

  • SPI - utilizat pentru comunicarea cu LCD-ul Nokia 5110
  • ADC - citirea poziției joystick-ului (axe X și Y)
  • PWM - generare de sunete pentru buzzer
  • GPIO - citirea stării butonului joystick-ului
  • UART - afisarea pe seriala a castigatorului

Algoritmi

  • implementare minimax pentru a juca contra unui oponent

Link cod github: https://github.com/bogdan1775/Proiect-PM-Xsi0

Rezultate Obţinute

Download

Codul se poate descarca de pe github: https://github.com/bogdan1775/Proiect-PM-Xsi0

Jurnal

03.05 : Alegerea temei
05.05 : Creare pagina wiki + completare documentatie
09.05 : Testare piese
10.05 : Completare sectiune Hardware
14.05 : Scriere cod lcd si joystick
20.05 : Update cod

Bibliografie/Resurse

pm/prj2025/fstancu/ccroitoru1703.txt · Last modified: 2025/05/29 22:15 by ccroitoru1703
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