Table of Contents

Chicken Invaders

Introducere

Proiectul constă în realizarea unui joc simplificat de tip Chicken Invaders folosind placa de dezvoltare ATmega328P-XMINI și un display LCD1602. Jucătorul controlează o navă aflată pe linia inferioară a ecranului și trebuie să elimine inamicii care apar periodic pe ecran.

Scopul proiectului este implementarea unui sistem embedded interactiv care combină mai multe concepte studiate la laboratorul de Microprocesoare, precum utilizarea timerelor hardware, a întreruperilor, a conversiei analog-digitale (ADC) și a semnalelor PWM.

Consider că acest proiect este util deoarece îmi oferă posibilitatea de a aplica practic noțiunile studiate în laborator într-un proiect interactiv și vizual, apropiat de domeniul jocurilor video, folosind resurse hardware limitate specifice sistemelor embedded.

Descriere generală

Arhitectura proiectului este structurată în jurul plăcii de dezvoltare ATmega328P-XMINI. Sistemul este împărțit în mai multe module principale:

Permite controlul navei prin intermediul unui joystick. Poziția navei este citită folosind modulul ADC al microcontrolerului, iar apăsarea joystick-ului este tratată folosind GPIO și întreruperi externe. Un buton tactil suplimentar este utilizat pentru funcțiile de start, restart și pauză.

Microcontrolerul gestionează logica jocului, mișcarea inamicilor, detecția coliziunilor, actualizarea scorului și sincronizarea evenimentelor folosind timere hardware și întreruperi periodice.

Afișarea jocului se realizează pe un display LCD1602 cu interfață I2C, iar efectele sonore sunt generate cu ajutorul unui buzzer pasiv controlat prin PWM. Un LED RGB va fi utilizat pentru semnalizarea anumitor stări ale jocului (hit, game over, pauză etc).

Hardware Design

Lista de piese:

Schema electrică

Componentă Pin componentă Pin microcontroller
LCD1602 I2C SDA PC4
LCD1602 I2C SCL PC5
LCD1602 I2C VCC VCC
LCD1602 I2C GND GND
Joystick VRx PC0
Joystick VRy PC1
Joystick SW PD2
Joystick VCC VCC
Joystick GND GND
Buzzer pasiv + PB1
Buzzer pasiv - GND
LED RGB R PD6
LED RGB G PD5
LED RGB B PB2
LED RGB pin comun GND
Buton tactil semnal PD3
Buton tactil al doilea pin GND

Software Design

Proiectul va fi implementat folosind limbajul C și va utiliza perifericele hardware ale microcontrolerului:

Rezultate Obținute

TODO

Concluzii

TODO

Jurnal