Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2021:agrigore:snake_lcd [2021/05/22 12:20]
roxana_elena.stiuca [Rezultate obtinute]
pm:prj2021:agrigore:snake_lcd [2021/05/24 10:04] (current)
roxana_elena.stiuca [Software Design]
Line 7: Line 7:
   * La deschiderea programului,​ va aparea un mesaj de inceput. Apasarea oricarui buton declanseaza inceputul jocului.   * La deschiderea programului,​ va aparea un mesaj de inceput. Apasarea oricarui buton declanseaza inceputul jocului.
   * Scorul va aparea in coltul din stanga sus, in timpul jocului.   * Scorul va aparea in coltul din stanga sus, in timpul jocului.
-  * In caz de gameover va aparea un mesaj cu scorul total acumulat. Apasarea oricarui buton declanseaza inceperea unui joc nou.+  * In caz de gameover va aparea un mesaj. Apasarea oricarui buton declanseaza inceperea unui joc nou.
  
 ==== Descriere generala ==== ==== Descriere generala ====
Line 14: Line 14:
 === Componente === === Componente ===
  
-^ Nume                  ^ Numar ^ Link ^ Poza +^ Nume                  ^ Numar ^ Link ^ 
-| Arduino Uno           | 1     | [[https://​www.optimusdigital.ro/​en/​compatibile-with-arduino-uno/​1678-placa-de-dezvoltare-compatibila-cu-arduino-uno-atmega328p-i-ch340.html?​search_query=0104110000016997&​results=1|click]] ​+| Arduino Uno           | 1     | [[https://​www.optimusdigital.ro/​en/​compatibile-with-arduino-uno/​1678-placa-de-dezvoltare-compatibila-cu-arduino-uno-atmega328p-i-ch340.html?​search_query=0104110000016997&​results=1|click]] | 
-| Breadboard ​           | 1     | [[https://​www.optimusdigital.ro/​en/​breadboards/​8-breadboard-hq-830-points.html?​search_query=0104110000001382&​results=1|click]] ​+| Breadboard ​           | 1     | [[https://​www.optimusdigital.ro/​en/​breadboards/​8-breadboard-hq-830-points.html?​search_query=0104110000001382&​results=1|click]] | 
-| Modul LCD SPI 128x160 | 1     | [[https://​ardushop.ro/​ro/​home/​865-modul-lcd-spi-128x160.html?​search_query=Modul+LCD+SPI+128x160&​results=392|click]] ​+| Modul LCD SPI 128x160 | 1     | [[https://​ardushop.ro/​ro/​home/​865-modul-lcd-spi-128x160.html?​search_query=Modul+LCD+SPI+128x160&​results=392|click]] | 
-| Modul bluetooth HC-05 | 1     | [[https://​ardushop.ro/​ro/​home/​132-modul-bluetooth-hc-06-cu-3-pini.html?​search_query=Modul+bluetooth+HC-05&​results=380|click]] ​+| Modul bluetooth HC-05 | 1     | [[https://​ardushop.ro/​ro/​home/​132-modul-bluetooth-hc-06-cu-3-pini.html?​search_query=Modul+bluetooth+HC-05&​results=380|click]] | 
-| Fire                  | 14    |      ​|+| Fire                  | 14    |      |
  
  
 ==== Hardware Design ==== ==== Hardware Design ====
 {{ :​pm:​prj2021:​agrigore:​schematic_snakelcdbt.png?​700 }} {{ :​pm:​prj2021:​agrigore:​schematic_snakelcdbt.png?​700 }}
 +
 +=== Conectare modul Bluetooth ===
 +Pentru conectarea acestui nodul, este nevoie sa conectam pinii GND si VCC la pinii GND si 5V de pe Arduino, precum si conectarea pinilor RX si TX la pinii TX(1), respectiv RX(0) ai Arduino.
 +
 +Astfel, avem o comunicare seriala.
 +
 +Din perspectiva telefonului,​ este nevoie de un telefon Android cu o aplicatie de tipul Bluetooth Terminal. Eu am ales aplicatia [[https://​play.google.com/​store/​apps/​details?​id=com.app.aktham.blueduino&​hl=en_US&​gl=US|BlueDuino]] care permite conectarea prin Bluetooth la un device, ofera o interfata grafica cu 4 butoane (sus, jos, stanga, dreapta) care pot fi configurate a.i. la apasare sa fie trimis un String ("​w",​ "​s",​ "​a",​ "​d"​). In Arduino, tot ce trebuie facut este: myblue.read() si verificarea caracterului citit.
 +
 +{{:​pm:​prj2021:​agrigore:​snakelcdbt_hard1.jpeg?​200 |}}
 +
 +=== Conectare ecran LCD ===
 +Modulul LCD SPI 128x160 vine cu 8 pini, dintre care GND si VCC trebuie sa fie conectati la GND si 5V de pe Arduino, iar pinul LED la 3.3V.
 +
 +Pentru ceilalti 5 pini, exista mai multe optiuni de conectare ce trebuie apoi specificate cand este creat obiectul LCDWIKI_SPI in cod. Eu am ales conectarea (ST7735S, 10, 9, 8, _):
 +  * SCK -> pinul 13;
 +  * SDA -> pinul 11;
 +  * CS -> pinul 10;
 +  * A0 -> pinul 9;
 +  * RESET -> pinul 8.
 +
 +{{:​pm:​prj2021:​agrigore:​snakelcdbt_hard2.jpeg?​200 |}}
 ==== Software Design ==== ==== Software Design ====
 === Mediul de dezvoltare === === Mediul de dezvoltare ===
Line 43: Line 64:
           * initializare ecran;           * initializare ecran;
           * umplere ecran cu culoarea de background;           * umplere ecran cu culoarea de background;
-          * afisare mesaj de input.+          * afisare mesaj de inceput.
       * setup snake:       * setup snake:
           * setare limite zona de joc (zona in care personajul se plimba);           * setare limite zona de joc (zona in care personajul se plimba);
Line 63: Line 84:
       * personajul este mutat cu un pas; se verifica de asemenea daca avem coliziune cap sarpe-corp sarpe (caz in care am trece in GAMEOVER) sau coliziuni sarpe-mancare (caz in care actualizam scorul si gasim noi coordonate pentru mancare).       * personajul este mutat cu un pas; se verifica de asemenea daca avem coliziune cap sarpe-corp sarpe (caz in care am trece in GAMEOVER) sau coliziuni sarpe-mancare (caz in care actualizam scorul si gasim noi coordonate pentru mancare).
   * GAMEOVER:   * GAMEOVER:
-      * pe ecran apare un mesaj: //"​Gameover! ​Total score: X. Press any button to restart."//​+      * pe ecran apare un mesaj: //"​Gameover! Press any button to restart."//​
       * se asteapta input (directia initiala pentru noul joc); la primire se trece in READY.       * se asteapta input (directia initiala pentru noul joc); la primire se trece in READY.
  
Line 82: Line 103:
 Pentru a nu exista un delay din cauza scrierii pe ecran, la fiecare loop prin starea PLAY este desenat doar blocul nou aparut pentru sarpe si este desenat peste blocul din sarpe ce a disparut cu culoarea fundalului. Pentru a nu exista un delay din cauza scrierii pe ecran, la fiecare loop prin starea PLAY este desenat doar blocul nou aparut pentru sarpe si este desenat peste blocul din sarpe ce a disparut cu culoarea fundalului.
 ==== Rezultate obtinute ==== ==== Rezultate obtinute ====
-TBA: poza cele 3 ecrane (inceput, joc, gameover) +In finalam obtinut un joc simpaticfunctional, la care se pierde greu (zona de joc e mare si dureaza pana ajungi la o lungime destul de mare incat sa poata exista coliziuni).
-TBA: video demo. +
-==== Concluzii ====+
  
-==== Download ====+Prezentare:​ 
 +{{:​pm:​prj2021:​agrigore:​snakelcdbt_cutie.jpeg?​200|}}
  
 +Ecran inceput:
 +{{:​pm:​prj2021:​agrigore:​snakelcdbt_start.jpeg?​200|}}
 +
 +Ecran joc:
 +{{:​pm:​prj2021:​agrigore:​snakelcdbt_joc.jpeg?​200|}}
 +
 +Gameover:
 +{{:​pm:​prj2021:​agrigore:​snakelcdbt_gameover.jpeg?​200|}}
 +
 +=== Demo ===
 +[[https://​youtu.be/​H8UyOqMI5z4|Link Demo Youtube]]
 +==== Concluzii ====
 +  * Proiectul este realizat in intregime si functioneaza conform asteptarilor.
 +  * Decizia de a adauga un modul Bluetooth ii ofera mai multa scalabilitate:​
 +      * se pot adauga si alte functionalitati comandate prin Bluetooth, precum setarea culorilor (fundal, personaj, mancare, text), setarea vitezei, alte setari de personalizare a jocului.
 +  * Un feature nou posibil ar fi pastrarea scorurilor maxime intr-o varianta persistenta (ex. in EEPROM) si afisarea acestora la finalul jocului.
 +==== Download ====
 +{{:​pm:​prj2021:​agrigore:​snakelcdbt_cod_schematic_roxanastiuca.zip|Fisiere sursa + Schematic}}
 ==== Jurnal ==== ==== Jurnal ====
   * 22/4: alegere tema proiect.   * 22/4: alegere tema proiect.
Line 98: Line 136:
  
 ==== Bibliografie/​Resurse ==== ==== Bibliografie/​Resurse ====
 +  * https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab1
 +  * https://​github.com/​gitcnd/​LCDWIKI_GUI
 +  * https://​github.com/​gitcnd/​LCDWIKI_SPI
 +  * https://​www.arduino.cc/​en/​Reference/​softwareSerial
 +  * https://​create.arduino.cc/​projecthub/​akshayjoseph666/​interfacing-bluetooth-module-hc-05-with-arduino-uno-f5209b
 +  * https://​ardushop.ro/​ro/​home/​865-modul-lcd-spi-128x160.html?​search_query=Modul+LCD+SPI+128x160&​results=392
 +  * https://​ardushop.ro/​ro/​home/​132-modul-bluetooth-hc-06-cu-3-pini.html?​search_query=Modul+bluetooth+HC-05&​results=380
pm/prj2021/agrigore/snake_lcd.1621675234.txt.gz · Last modified: 2021/05/22 12:20 by roxana_elena.stiuca
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