This shows you the differences between two versions of the page.
pm:prj2021:apredescu:flappybird [2021/05/24 01:39] ruxandra.apostol [Descrierea generala] |
pm:prj2021:apredescu:flappybird [2021/05/28 23:25] (current) ruxandra.apostol [Concluzii] |
||
---|---|---|---|
Line 12: | Line 12: | ||
===== Descrierea generala ===== | ===== Descrierea generala ===== | ||
{{:pm:prj2021:apredescu:flappbirdschema.jpeg?800x300|Schema bloc a proiectului}} | {{:pm:prj2021:apredescu:flappbirdschema.jpeg?800x300|Schema bloc a proiectului}} | ||
- | - Jocul incepe odata cu apasarea butonului de start si este afisat pe ecranul LCD TFT. | + | - Jocul incepe odata cu apasarea ecranului sau a butonului de start si este afisat pe un display LCD TFT. |
- | - In timpul jocului daca butonul de start este apasat pasarea va zbura in sus, altfel aceasta va fi atrasa de sol. | + | - In timpul jocului daca butonul de start sau ecranul sunt apasate pasarea va zbura in sus, altfel aceasta va fi atrasa de sol. |
- Odata cu avansarea in timp, nivelul de dificultate marcat de cele 3 leduri si afisat pe ecran va creste. | - Odata cu avansarea in timp, nivelul de dificultate marcat de cele 3 leduri si afisat pe ecran va creste. | ||
- Pentru fiecare pereche de tuburi evitata jucatorul va primi un punct. Scorul este afisat in coltul stanga-jos al ecranului. | - Pentru fiecare pereche de tuburi evitata jucatorul va primi un punct. Scorul este afisat in coltul stanga-jos al ecranului. | ||
Line 20: | Line 20: | ||
===== Hardware design ===== | ===== Hardware design ===== | ||
+ | == Lista componentelor == | ||
* Breadboard | * Breadboard | ||
* Arduino Uno | * Arduino Uno | ||
* LCD TFT 2.4 inch | * LCD TFT 2.4 inch | ||
* Butoane Push | * Butoane Push | ||
- | * Leduri albe | + | * Leduri colorate |
* Rezistente | * Rezistente | ||
* Fire tata-tata | * Fire tata-tata | ||
* Cablu USB | * Cablu USB | ||
+ | |||
+ | == Ecranul LCD TFT 2.4 inch == | ||
+ | * In realizarea jocului Flappy Bird am ales sa renunt la conectarea pinilor de pe ecran destinati cardului SD cu cei de pe placa Arduino Uno, pentru a ii pastra pe cei din urma liberi. Acestora le-am atribuit ulterior rolul de a controla datele primite de la butonul de start si aprinderea ledurilor pentru niveluri. | ||
+ | {{:pm:prj2021:apredescu:pinsroletft2.4.jpg?200square|}} | ||
+ | |||
+ | == Schema electrica == | ||
+ | {{:pm:prj2021:apredescu:circuitpm_2_.png?800x500|Schema electrica a proiectului}} | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | Proiectul a fost realizat folosind ca unic mediu de dezvoltare Arduino IDE, iar sursa se regaseste in fisierul incercare.ino. Pentru a putea manipula ecranul lcd tft 2.4 inch am folosit biblioteca SPFD5408. Am modificat in fisierul SPFD5408_Adafruit_TFT_LCD.cpp, din cadrul acestei biblioteci, afisarea de la stanga la dreapta pentru identificatorul display-ului meu(nu de la dreapta la stanga cum era initial) si folosirea sistemului RGB (nu BGR). De asemenea, am folosit biblioteca EEPROM pentru tratarea unor eventuale erori. | ||
===== Rezultate obținute ===== | ===== Rezultate obținute ===== | ||
+ | * Desi la inceputul proiectului nu aveam de gand sa implementez si controlul jocului prin touchscreen, am descoperit ca este mult mai usor decat ma asteptam si am ales sa il folosesc pentru a da jocului o nota de actualitate si a il face mai distractiv. | ||
+ | * Jocul are o acuratete destul de buna, ciocnirea cu tevile sau cu solul fiind detectate din timp, iar nivelul de dificultate crescand treptat. | ||
+ | * Toate formele si componentele vizuale din acest proiect sunt realizate prin desenarea mai multor dreptunghiuri (prin functia fillRect), astfel incat sa capete aspectul dorit. | ||
+ | * In animatia pasarii am optat pentru a sterge desenul acesteia de la vechile coordonate si a o desena din nou in locul dorit. Din cauza cadrelor de framework care nu sunt preluate de catre ecran suficient de repede incat acest proces sa nu fie sesizabil, exista momente de scurta durata in care pasarea Faby este transparenta. | ||
+ | * La sectiunea Bibliografie/Resurse se afla un link catre demo-ul proiectului. | ||
+ | |||
+ | {{:pm:prj2021:apredescu:inceput.jpeg?200|}} | ||
+ | {{:pm:prj2021:apredescu:nivel1.jpeg?200|}} | ||
+ | {{:pm:prj2021:apredescu:nivel2.jpeg?200|}} | ||
+ | {{:pm:prj2021:apredescu:nivel3.jpeg?200|}} | ||
+ | {{:pm:prj2021:apredescu:castig.jpeg?200|}} | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | * Desi la inceput am fost putin sceptica in legatura cu acest proiect, intrucat partea de hardware nu a fost niciodata punctul meu forte, am ajuns sa lucrez la el de placere. | ||
+ | * Am putut sa imi aprofundez cunostintele obtinute la Proiectarea cu microprocesoare dar si sa imi amintesc cateva notiuni din Electronică digitală. | ||
+ | * In final a fost una din putinele teme la care am avut posibilitatea sa fiu creativa, fiind constransa doar de alegerile componentelor si cred ca singura tema unde am putut sa facem ceva fizic. | ||
===== Download ===== | ===== Download ===== | ||
- | {{:pm:prj2021:apredescu:flappybird.pdf|}} | + | * {{:pm:prj2021:apredescu:flappybird.pdf|}} |
+ | * {{:pm:prj2021:apredescu:apostolruxandra_flappybird.zip|}} | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
25 aprilie 2021: | 25 aprilie 2021: | ||
Line 44: | Line 67: | ||
* descriere generala (impreuna cu schema bloc) | * descriere generala (impreuna cu schema bloc) | ||
* completarea listei cu componentele hardware | * completarea listei cu componentele hardware | ||
+ | 23 - 25 mai 2021: | ||
+ | * scrierea codului | ||
+ | * testarea si repararea eventualelor erori | ||
+ | 27 mai 2021: | ||
+ | * construire schema electrice | ||
+ | * prezentare proiect in cadrul laborator | ||
+ | 28 mai 2021: | ||
+ | * descriere software design | ||
+ | * completare rezultate obtinute | ||
+ | * concluzii | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | https://ocw.cs.pub.ro/courses/pm/prj2021/apredescu/flappybird | + | * [[https://ocw.cs.pub.ro/courses/pm/prj2021/apredescu/flappybird|Link Flappy Bird]] |
+ | * [[https://drive.google.com/file/d/1Mkq31sytqFalvn89PKWQEPMMj2V2acUS/view?usp=sharing|Demo proiect]] | ||
+ | * [[https://www.tinkercad.com/things/96W2KEeHDFE-spectacular-crift/editel?sharecode=luxOeSBkXxRPThHe6ZxdNEZtxqtIT2BnY4RTjlJjWnE|Schema electrica Tinkercad]] | ||
+ | * [[https://www.tinkercad.com/things/16ykL0hcboF-copy-of-24-tft-lcd-touch-shield/edit?sharecode=Mcb11DST6zgpltxZDGS8eYJhpVVOgFYpE2YXMdlR5xE|Ecran TFT 2.4 Tinkercad]] | ||
+ | * [[https://electropeak.com/learn/arduino-2-4-touch-screen-lcd-shield-tutorial/| Documentatie ecran TFT 2.4]] | ||
+ | * [[https://github.com/JoaoLopesF/SPFD5408| Libraria SPFD5408]] | ||
+ | * [[https://create.arduino.cc/projecthub/electropeak/arduino-2-4-touch-screen-lcd-shield-tutorial-fe6f05|Tutorial ecran tft 2.4]] |