This is an old revision of the document!
Chrome Dinosaur Game
Autor
Introducere
Proiectul este inspirat din jocul deja extrem de popular care apare in Google Chrome atunci cand nu mai ai conexiune la internet. Este un endless runner cu un dinozaur care trebuie sa sara peste obstacole si sa stranga puncte.
Scopul proiectului este realizarea unui endless runner similar, cu diverse obstacole, scor si controlat prin intermediul unor butoane, jucat direct pe Arduino.
Descriere generală
Se conectează la Arduino UNO un ecran LCD si butoane de up/down/left/right. Acestea vor fi butoanele care vor fi folosite la controlul jucatorului, fiind nevoie sa sara peste obstacole. De asemenea, va fi conectat si un buzzer pentru feedback audio in joc si eventual niste LED-uri pentru a marca diverse evenimente speciale in timpul jocului.
Schema Bloc
Hardware Design
Listă piese
Schema Electrica
Versiunea initiala - Tinkercad
Link Tinkercad pentru testare: https://www.tinkercad.com/things/e6jOlGlUE3u. Momentan este incarcat un cod de test al componentelor pentru a verifica faptul ca acestea sunt conectate corect. Logica de joc va fi implementata cand se va face trecerea in hardware. Posibile modificari ulteroare: mai multe butoane conectate similar si un led RGB.
Versiunea finala - EAGLE
Dupa implementarea efectiva a proiectului, am adus cateva modificari. Schema EAGLE reprezinta varianta finala, cu led RGB si pinii corecti.
Software Design
Medii de dezvoltare folosite
Arduino IDE - pentru programarea placutei Arduino
Draw.io - pentru schema bloc
EAGLE & TinkerCAD - pentru schemele electrice
Biblioteci
Descrierea Codului
Initializari - inainte de orice functie, sunt cateva variabile care controleaza flow-ul si functionalitatea jocului. Cateva din acestea sunt:
tempo - controleaza viteza cu care se reda melodia la final
melody - notele melodiei folosind pitches.h
jimmy, jumpingJimmy, spike, fence - sprite-uri pentru grafica LCD-ului
chance - sansa ca la un tick de joc sa se genereze un obstacol
gameOver - variabila de stare care retine daca jocul s-a terminat sau nu
tick - cate milisecunde dureaza un tick de joc (viteza jocului)
score - initializat cu 0, in functie de acesta va creste dificultatea
pinii pentru fiecare componenta pentru a fi folositi ulterior in cod
Rezultate Obţinute
Concluzii
Download
Jurnal
24 Aprilie - Alegere Tema Proiect
27 Aprilie - Discutie cu laborantul + schimbare de la shield la componente individuale
24 Mai - Schema Electrica varianta initiala
2 Iunie - Schema Electrica varianta finala
Bibliografie/Resurse