This is an old revision of the document!
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.
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. Opțional, pot fi adăugate butoane suplimentare pentru start, restart sau 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, iar efectele sonore sunt generate cu ajutorul unui buzzer pasiv controlat prin PWM. Opțional, LED-urile vor fi utilizate pentru semnalizarea anumitor stări ale jocului (hit, game over etc).
Lista de piese:
Schema electrică: TODO
Proiectul va fi implementat folosind limbajul C și va utiliza perifericele hardware ale microcontrolerului:
TODO
TODO