Table of Contents

Pixel Runner

Introducere

Pixel Runner este un joc de tip runner inspirat de T-Rex Dino din Chrome, realizat pe Arduino cu LCD, LED RGB, buzzer si mai multe butoane, care testeaza reflexele si atentia utilizatorului prin sarituri peste cactusi ce apar aleatoriu. Ideea proiectului a pornit din dorinta de a transpune o experienta clasica de gaming pe un dispozitiv fizic, dezvoltand atat abilitatile de programare embedded, cat si cele de lucru cu hardware-ul. Jocul este util si distractiv, oferind un mod practic de a invata electronica si programarea, fiind totodata o platforma buna pentru experimente educationale sau extinderi creative de tip meniu, niveluri de dificultate si feedback audio-vizual.

Descriere generala

Implementare joc Pixel Runner pe LCD cu Arduino.

Proiectul foloseste o placa Arduino UNO, un afisaj LCD, LED RGB, buzzer si trei butoane pentru control. Utilizatorul poate selecta nivelul de dificultate si controleaza un dinozaur care trebuie sa sara peste obstacole. LED-ul ofera feedback vizual, iar buzzer-ul reda efecte sonore si melodii de joc. Scorul curent si cel maxim sunt afisate pe ecran, iar meniul interactiv permite navigarea usoara. Jocul este atat distractiv, cat si educativ, ajutand la dezvoltarea abilitatilor de programare si lucru cu hardware-ul Arduino.

Hardware Design

Stadiul Actual al Implementarii Circuitul hardware este finalizat si complet functional. Toate componentele din lista de piese au fost interconectate pe un breadboard si conectate la placa de dezvoltare Arduino UNO. Montajul respecta schema electrica si este capabil sa ruleze logica jocului “Pixel Runner”, raspunzand la comenzi si afisand elementele vizuale si auditive conform codului.

Componente Folosite si Rolul Lor:

Descrierea Detaliata a Pinilor Afisaj LCD (I2C):

Butoane:

LED RGB:

Buzzer Pasiv:

Schema electrica:

Circuit design:

Hardware:

Software Design

Stadiul Actual al Implementarii Software: Implementarea software, realizata in mediul de dezvoltare Arduino IDE, este completa, testata si stabila. Toate functionalitatile si algoritmii descrisi in proiect sunt implementati si functioneaza conform asteptarilor, de la meniul interactiv si mecanicile de joc, pana la sistemul de salvare a scorurilor si modul de economisire a energiei.

Motivarea Alegerii Bibliotecilor Pentru proiect, am folosit doua biblioteci esentiale, alese strategic pentru eficienta:

Elementul de Noutate al Proiectului Elementul de noutate consta in integrarea unui set complex de sisteme software pe o platforma hardware cu resurse foarte limitate. Proiectul nu este doar un simplu joc, ci o aplicatie completa care demonstreaza eficienta software prin imbinarea urmatoarelor sisteme avansate:

Scheletul si Interactiunea Functionalitatilor Fluxul software este structurat logic pentru a asigura claritate si eficienta:

Validarea Implementarii Validarea a fost realizata in doua etape:

Calibrarea Elementelor de Senzorica Singurele “elemente de senzorica” sunt butoanele. Calibrarea acestora a insemnat implementarea unui mecanism de debouncing software pentru a preveni inregistrarea unor apasari multiple la o singura actionare fizica. Acest lucru a fost realizat printr-o scurta pauza (delay) adaugata in cod imediat dupa detectarea unei apasari, asigurand astfel ca fiecare apasare este contorizata o singura data, facand navigarea prin meniuri precisa si fiabila.

Optimizari Realizate Pentru a asigura o experienta de joc superioara si o utilizare eficienta a resurselor, am implementat urmatoarele optimizari:

Cod sursa: Pixel Runner GitHub Repository

Rezultate Obtinute

Am realizat cu succes un joc complet functional si stabil pe platforma Arduino, care integreaza corect toate componentele hardware. Sistemul ofera o experienta de joc fluida, cu meniuri intuitive, scoruri salvate in EEPROM si un mod de economisire a energiei.

Concluzii

Acest proiect a demonstrat integrarea practica si eficienta a tehnologiilor studiate (GPIO, I2C, PWM, Intreruperi) intr-o aplicatie reala. Codul rezultat este modular si robust, indeplinind toate cerintele initiale si constituind o baza solida pentru dezvoltari viitoare.

Download

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.

Bibliografie/Resurse

Proiectul utilizeaza concepte studiate in laborator, precum GPIO (interfatarea cu butoane si LED), I2C (comunicarea cu LCD-ul), intreruperi hardware (pentru butonul de salt), PWM (pentru controlul ledului RGB si buzzer), precum si timere software (gestionarea timpului de joc si a animatiilor) – integrand astfel cerintele pentru laboratoare PM.

https://docs.arduino.cc/learn/built-in-libraries/eeprom/

Export to PDF