PingPong realizat de Andrei Tucma, 335CB - Proiect PM

== **Introducere** ==

Proiectul reprezinta implementarea jocului PingPong ( sau mai simplu “PONG” ), intre doi jucatori (HUMAN vs HUMAN), ambii controland “paleta” prin cate 2 butoane (SUS + JOS), pentru miscarea acesteia pe directia N-S. “PONG” este unul dintre primele jocuri aparute (anul 1972) si este un joc gen tenis, scopul acestuia fiind obtinerea mai multor puncte decat adversarul. Un punct se castiga in momentul in care mingea, ajunsa in terenul unuia dintre jucatori, nu mai poate fi ajunsa si inapoiata in terenul advers. Castigatorul este cel care ajunge primul la X puncte. (eu voi alege regula “primul la 5”)

“Pong” va fi jucat pe un LCD Nokia 3310/3410.

== **Descriere generala** ==

Jocul implementat de mine este cunoscutul joc “sport” PONG, bidimensional, in care 2 jucatori controleaza prin intermediul a 2 butoane cate o “paleta” reprezentata printr-o bara verticala, pe care fiecare oponent o deplaseaza de sus in jos (sau invers) pentru a ajunge la minge cu scopul de a o returna in terenul advers. Simpla atingere a bilei/mingii inseamna automat schimbarea directiei acesteia catre terenul adversarului, in caz contrar “iei gol” si este punct pentru adversar. Castiga cel care ajunge primu la 5 puncte.

Jocul va fi afisat pe un ecran LCD NOKIA 3310/3410 si ecranul initial corespunde cu inceperea jocului, mingea fiind servita automat de unul dintre jucatori (fara a fi apasat vreun buton in mod intentionat). In momentul in care unul dintre jucatori ajunge la 5 puncte, va fi afisat un mesaj corespunzator, de genul “Player 1/2 Wins”, mesaj ce va ramane pe ecran.

Pentru realizarea proiectului am avut nevoie de

- 3 placute ( prima,placuta de baza, cea de-a doua este cea pe care am lipit componentele necesare acestui proiect, iar cea de-a treia reprezinta o placuta imprimata pentru conectarea la pinii LCD-ului, deoarece display-ul este foarte sensibil si riscam sa il ard in cazul in care lipeam fire de pinii acestuia)

- componente:

  1. 5 x 1 rezistenta 3k3
  2. 5 x 1 rezistenta 1k8
  3. 2 x 1 diode 1n4007
  4. 1 x 1 condensator 10uF
  5. 4 x 1 buton ( 2 pentru fiecare jucator, 1/directie sus-jos)
  6. 1 x bareta de 20 pini
  7. 20 cm cablu panglica
  8. conector cablu panglica

- pentru LCD, am realizat o placuta imprimata, pe care o voi conecta prin intermediul unui cablu panglica de placuta cu componentele, iar aceasta prin intermediul pinilor sau direct ( prin intermediul unor fire ) la placuta de baza.

== **Schema** ==

Schema din Proteus este urmatoarea:

Se observa:

  1. butoanele sunt conectate la pinii de pe portul B : PB7, PB6, PB5, PB4
  2. pinii de pe LCD sunt conectati (prin intermediul divizoarelor de tensiune realizare din rezistente de 1k8 si 3k3-acestea legate la masa) la pinii de pe portul D: CLK-PD2, SDN-PD3, DC-PD4, SCE-PD5, RES-PD7.
  3. GND de pe LCD se leaga la masa
  4. Vout de pe LCD, prin intermediul condensatorului, se leaga la masa
  5. VDD se leaga, prin intermediul diodelor (care sunt in serie), la VCC(pentru a micsora tensiunea de 5V)

== **Implementare software** ==

Am incercat sa folosesc prima data softul acesta: http://fandigunawan.wordpress.com/2008/06/18/lcd-nokia-3310-pcd8544-driver-in-winavravr-gcc/ , dar nu am reusit.Cum modificam putin configuratia pinilor in Proteus, nu mai mergea nimic. Apoi am trecut la softul celor de la http://www.quantumtorque.com/ .

Folosesc functii din programul de pe http://www.quantumtorque.com/, functii ajutoatare de - initializare lcd, setare constrast, stergerea unei linii, pozitionare cursor, afisare date de catre display s.a.m.d. Am fost nevoit sa modific “define”-urile, pentru a-mi asocia corect pinii de pe LCD cu cei de pe placa. Asca cum am specificat si mai sus, setarile corespunzatoare sunt urmatoarele:

  1. #define LCD_CLK_PIN (1«PD2)
  2. #define LCD_DATA_PIN (1«PD3)
  3. #define LCD_DC_PIN (1«PD4)
  4. #define LCD_CE_PIN (1«PD5)
  5. #define LCD_RST_PIN (1«PD7)
  6. #define LCD_PORT PORTD
  7. #define LCD_DDR DDRD

Implementarea software nu este completa, intrucat am pierdut foarte mult timp cu realizarea placutei ( am dat peste o placuta care avea la exterior unite intre ele puncte de masa si practic tot circuitul era legat la masa- mi-am dat seama foarte tarziu ). Ce am reusit sa realizez pana acum: proiect3.zip

== **Linkuri utile** ==

pm/prj2010/cvasile/pingpong.txt · Last modified: 2021/04/14 17:07 (external edit)
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