This is an old revision of the document!
Proiectul realizat reprezinta un joc de tip arcade. Jucatorul poate fi controlat fie prin apasarea unui buton, fie prin utilizarea unui cartonas colorat, detectat de catre senzorul de culoare. Odata ce se primeste input, jucatorul va avansa pe randul urmator, generandu-se aleator un nou obstacol sau un teren unde jucatorul nu poate fi atins de obstacole. Dificultatea este marita odata ce se atinge un anumit scor, obstacolele avand o viteza sau o dimensiune mai mare. La detectarea unei coliziuni dintre jucator si obstacol sau dupa ce jucatorul sta pe loc prea mult timp, se va trece intr-o stare de game over, afisandu-se pe ecran scorul obtinut. Buzzer-ul va indica printr-un sunet specific momentul cand se incepe un joc nou sau cand se termina jocul actual. Atunci cand un obstacol se apropie de jucator, acest lucru va fi indicat de catre un LED.
Lista piese:
*Schema electrica
===== Software Design =====
Mediu de dezvoltare: Arduino IDE, TinkerCAD
Biblioteci: Adafruit_GFX, Adafruit_PCD8544 (interfatare LCD si desenare elemente grafice), SPI
Structuri:
* object - pentru stocarea informatiilor despre un obiect de tip dreptunghi: coordonate colt stanga-jos (x, y), latime(w), inaltime(h)
Functii:
* spawnObstacle - adaugare obstacol nou
* spawnTerrain - adaugare teren nou
* drawObject - desenare obiect (obstacole, teren)
* drawPlayer - desenare jucator
* start_game - functie de initializare, apelata in setup() si atunci cand se incepe un joc nou
* player_move - deplasare jucator (jucatorul ramane pe acelasi rand pe display, dar toate elementele grafice se deplaseaza in jos; de asemenea, se va apela fie functia “spawnObstacle”, fie “spawnTerrain” pentru a adauga un nou element pe randul liber)
* check_collisions - verificare daca exista coliziune intre jucator si obstacole
* check_danger - verificare daca un obstacol se afla aproape de jucator
* display_game_over_screen - afisare ecran dupa ce s-a terminat jocul
* play_sound - folosire a buzzer-ului pentru a reda un sunet specific inceperii unui joc nou si sfarsitului unui joc
* check_green - verificare daca senzorul de culoare detecteaza culoarea verde
===== Rezultate Obţinute =====
<note tip>
Rezultatul este un joc de tip endless arcade, in care jucatorul poate oferi input atat prin folosirea unui buton, cat si prin folosirea senzorului de culoare.
Exista un video cu demo in arhiva cu sursele proiectului.
</note>
===== Concluzii =====
===== Download =====
<note warning>
O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună .
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.
</note>
===== Jurnal =====
<note tip>
Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.
</note>
^ Data ^ Progres ^
| 05.05.2022 | 1) Pagina wiki
2) Descriere proiect
3) Schema bloc
4) Lista componente |
| 25.05.2022 | 1) Adaugare schema electrica
2) Adaugare informatii software design(mediu de dezvoltare, biblioteci, functii, structuri) |
| 26.05.2022 | 1) Actualizare descriere
2) Adaugare bibliografie si resurse utilizate
3) Actualizare biblioteci folosite|
===== Bibliografie/Resurse =====
<note>
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.
</note>
Datasheet Shift Register 74HC595
Datasheet Senzor de Culoare TCS230
Exemplu folosire biblioteca Adafruit
Adafruit-GFX-Library
Adafruit-PCD8544-Nokia-5110-LCD-Library
Generare numar random folosind analogRead
Tutorial shift register 74HC595
Buton cu rezistenta de pull-down
Folosire buzzer activ
Folosire senzor de culoare TCS230 - 1
Folosire senzor de culoare TCS230 - 2
Calibrare senzor de culoare TCS230
Utilizare shift register 74HC595 **