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:

  • Modulul de Input (Control):

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ă.

  • Modulul de Control (Game Engine):

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

  • Modulul de Output:

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:

  • Placă de dezvoltare ATmega328P-XMINI
  • Display LCD1602A HD44780 cu modul I2C
  • Modul joystick cu buton
  • Buton tactil
  • Buzzer pasiv
  • LED RGB
  • Rezistențe 220R
  • Breadboard
  • Fire jumper
  • Cablu USB

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:

  • ADC pentru citirea axelor joystick-ului
  • GPIO / întreruperi externe pentru apăsarea joystick-ului și a butonului tactil
  • Timere hardware pentru game loop
  • PWM pentru efecte sonore
  • GPIO pentru controlul LED-ului RGB
  • USART pentru debug și afișarea scorului în Serial Monitor

Rezultate Obținute

TODO

Concluzii

TODO

Jurnal

  • 29.04.2026 - Alegerea temei
  • 06.05.2026 - Crearea paginii wiki și definirea structurii proiectului
  • 06.05.2026 - Adăugarea descrierii generale și a schemei bloc
  • 11.05.2026 - Stabilirea configurației hardware și conectarea componentelor
pm/prj2026/victor.stoica0203/ioana_maria.serban.txt · Last modified: 2026/05/11 14:55 by ioana_maria.serban
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0