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 |