This shows you the differences between two versions of the page.
|
pm:prj2021:abasoc:pingpong [2021/04/25 17:25] iulia.popa [Hardware Design] |
pm:prj2021:abasoc:pingpong [2021/06/02 23:37] (current) iulia.popa [Software Design] |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Ping Pong ====== | + | ====== PacMan ====== |
| Autor: | Autor: | ||
| Line 6: | Line 6: | ||
| ====== Introducere ====== | ====== Introducere ====== | ||
| - | Proiectul realizat consta in realizarea celebrului joc de ping pong utilizand placi Arduino, ecran LCD, butoane, breadboard, fire de legatura. Scopul acestui proiect are rolul de a demonstra practic informatiile si conceptele invatate la laborator. | + | Proiectul realizat consta in realizarea jocului pacman utilizand placa Arduino, ecran LCD, butoane, breadboard, fire de legatura si un switch. Scopul acestui proiect are rolul de a demonstra practic informatiile si conceptele invatate la laborator. |
| ====== Descriere generală ====== | ====== Descriere generală ====== | ||
| - | Pentru joc, voi folosi o placa Arduino, un ecran LCD, doua butoane, un breadboard, fire de legatura. | + | Pentru joc, voi folosi o placa Arduino, un ecran LCD, 5 butoane, un breadboard, fire de legatura si switch. |
| Schema bloc: | Schema bloc: | ||
| - | {{:pm:prj2021:abasoc:pingpongschema.png?600|}} | + | {{:pm:prj2021:abasoc:5a5fae0b-685b-442e-9c1c-ff441b8f6aec.jpg?700|}} |
| ====== Hardware Design ====== | ====== Hardware Design ====== | ||
| * placa Arduino UNO | * placa Arduino UNO | ||
| * ecran LCD | * ecran LCD | ||
| - | * doua butoane | + | * 5 butoane |
| * breadboard | * breadboard | ||
| - | * rezistente | + | * switch |
| * fire de legatura | * fire de legatura | ||
| Schema electrica: | Schema electrica: | ||
| - | {{:pm:prj2021:abasoc:pingpongelectric.jpg?600|}} | + | {{:pm:prj2021:abasoc:whatsapp_image_2021-06-02_at_22.45.20.jpeg?700|}} |
| ====== Software Design ====== | ====== Software Design ====== | ||
| - | TODO | ||
| + | Pentru lucrul cu LCD-ul am folosit o biblioteca Adafruit, pt care am | ||
| + | importat diverse imagini in cod hexa (bitmap pt harta, pacman si fantoma). | ||
| + | Astfel puteam afisa rapid imaginile. O dificultate aparuta a fost verificarea | ||
| + | coliziunii cu zidurile, deoarece lucrul pe biti ducea la rezultate eronate, | ||
| + | iar pastrarea unei matrici cu zonele sigure de deplasare ar fi supra incarcat | ||
| + | memoria. Asa ca am analizat matricea zonelor sigure si am transpus-o intr-o | ||
| + | functie de verificare a unei pozitii x-y pe intervale. | ||
| + | |||
| + | Ca variabile am tinut minte date despre jucator, fantoma si banuti, dar | ||
| + | si despre starea jocului si timpul power-upurilor. Se face input buffering | ||
| + | pt controlul pacmanului, astfel incat schimbarea directiei sa fie rapida. | ||
| + | Coliziunea intre pacman-fantoma si pacman-coin se face simplu prin distanta. | ||
| + | Animatia personajelor depinde de 2 frameuri ce se schimba in functie de timp. | ||
| + | |||
| + | Codul se poate gasi aici: {{:pm:prj2021:abasoc:pacman.rar|}} | ||
| ====== Rezultate Obținute ====== | ====== Rezultate Obținute ====== | ||
| - | TODO | ||
| + | https://youtu.be/YKhGA1etdGc | ||
| ====== Concluzii ====== | ====== Concluzii ====== | ||
| - | TODO | + | Jocul este functional, desi nu este implementat cum imi doream original (lcd-ul este diferit si mai mic, iar controlul este pe butoane in loc de joystick). Optimizarea pentru specificatiile arduinoului a fost partea cea mai interesanta a proiectului. |
| ====== Download ====== | ====== Download ====== | ||
| + | |||
| + | Documentatie pdf: | ||
| + | |||
| + | https://ocw.cs.pub.ro/courses/pm/prj2021/abasoc/pingpong?do=export_pdf | ||
| + | |||
| Link pagina: | Link pagina: | ||
| + | |||
| https://ocw.cs.pub.ro/courses/pm/prj2021/abasoc/pingpong | https://ocw.cs.pub.ro/courses/pm/prj2021/abasoc/pingpong | ||
| ====== Bibliografie/Resurse ====== | ====== Bibliografie/Resurse ====== | ||
| - | TODO | + | Bibliotecile Adafruit GFX si SSD1306 |