This is an old revision of the document!


Joc Pong

Introducere

Prezentarea pe scurt a proiectului vostru:

  • O implementare a jocului clasic Pong, în care fiecare jucător folosește un joystick pentru a deplasa “playerul” sus-jos. Jocul va fi afisat pe un display, iar pe cardul SD voi avea încarcată o melodie care va fi redată în timpul jocului. Voi folosi un cititor de card SD si un buzzer pentru a reda sunetul.

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ă.

  • Joystick (ADC): permite jucătorilor să se miște sus-jos.
  • Display (I2C): afișează jocul.
  • Cititor card SD (SPI): descarcă de pe cardul de memorie melodia care va fi redată pe parcursul jocului.
  • Buzzer (PWM): redă o melodie pe parcursul jocului.

!Potentiometrele din schema reprezinta Joystick-uri!

Pinii (de la stanga la dreapta):

  • -GND
  • -5V
  • -VRx - conectat la A0 pentru Player1 si A2 pentru Player2

!Piesa de pe breadboard-ul din stanga reprezinta un cititor de card SD! Pinii (de la stanga la dreapta):

  • -GND
  • -3V3
  • -5V
  • -CS
  • -MOSI
  • -SCK
  • -MISO
  • -GND

Exemplu de schemă bloc: http://www.robs-projects.com/mp3proj/newplayer.html

Hardware Design

Componente folosite:

  • Arduino Uno
  • Display OLED
  • Buzzer
  • Cititor de card SD
  • Breadboard
  • 2 joystick-uri
  • Fire

Implementarea Hardware:

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.

  • Funcționalitate completă a jocului: Proiectul reprezintă o implementare completă a clasicului joc Pong, utilizând o placă Arduino Uno. Afișajul jocului se face pe un ecran OLED, cititorul de card SD preia muzica, iar aceasta este redată de Buzzer pe tot parcursul jocului. În plus, buzzerul scoate câte un sunet și la fiecare coliziune a bilei cu un perete, sau când un jucător marchează un punct.
  • Afișaj clar și precis: Biblioteca U8g2lib pentru grafica de pe ecran asigură un afișaj clar și precis al jocului, inclusiv grafică simplă pentru teren, palete, minge și scor.
  • Citirea datelor: Folosirea bibliotecii SdFat pentru a asigura citirea clară a datelor de pe cardul SD.

Video: https://youtu.be/NPU42rhr9dE?si=4Mh1g0Y9_OWcb08r

Concluzii

Acesta a fost primul proiect hardware pe care l-am realizat și pot spune că mi-a făcut deosebită plăcere să lucrez la el. Consider că, în ciuda timpului investit în finalizarea acestui proiect, satisfacția de la final merită pe deplin orele petrecute experimentând și învățând să folosesc Arduino.

Sunt mândru că am reușit să implementez acest proiect, rezultând într-un joc simplu dar captivant!

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

https://www.optimusdigital.ro/
https://www.emag.ro/
https://www.tinkercad.com/

Export to PDF

pm/prj2025/atoader/catalin.giuglan.1748390816.txt.gz · Last modified: 2025/05/28 03:06 by catalin.giuglan
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