Proiectul a fost creat in jurul placii ATmega328P-Xplained-Mini drept creier principal. La aceasta am conectat un ecran OLED SSD1306 de 128×64, un buton si un senzor de lumina LDR pentru detectia luminozitatii ambientale.
Module Hardware
Microcontrolerul (ATmega328P Xplained Mini): Unitatea centrala a proiectului, ruleaza logica jocului, coordoneaza comunicatia cu ecranul prin SPI, citeste senzorul de lumina prin ADC si proceseaza intreruperea de la buton.
Modulul de Iesire Vizuala (OLED SSD1306 128×64): Comunica cu microcontrolerul prin interfata hardware SPI, randeaza dinozaurul, obstacolele, solul si scorul. Suporta comanda nativa de inversare hardware (0xA6 / 0xA7), permitand comutarea instantanee intre tema luminoasa si dark mode fara redesenarea ecranului.
Modulul de Intrare Digitala (Buton Tactil): Conectat la pinul PD2, care suporta intreruperea externa INT0. O singura apasare porneste jocul, apasarile ulterioare declanseaza saritura dinozaurului. Pull-up-ul intern al microcontrolerului este activat, eliminand necesitatea unui rezistor extern.
Module Software
Game State Machine: Gestioneaza starile globale ale sistemului (STATE_IDLE, STATE_RUNNING, STATE_GAME_OVER), controland ce logica se executa la un moment dat si cum se tranzitioneaza intre stari la apasarea butonului.
Game Logic: Avanseaza pozitiile obstacolelor, aplica gravitatia asupra dinozaurului, creste progresiv viteza de derulare si executa detectia de coliziune prin compararea bounding box-urilor dinozaurului si cactusilor.