This is an old revision of the document!


Space Invaders

Introducere

Proiectul consta in realizarea unei console embedded simple care ruleaza jocul Space Invaders pe un microcontroler ATmega328P Xplained Mini.

Jocul va fi afisat pe un ecran OLED SSD1306 128×64, iar utilizatorul va controla nava folosind butoane fizice. Proiectul va include si feedback sonor printr-un buzzer pasiv, un potentiometru pentru reglarea dificultatii si trei LED-uri pentru indicarea starii jocului.

Scopul proiectului este de a realiza un sistem interactiv care combina afisarea grafica, citirea inputului de la utilizator, generarea de sunete si controlul mai multor periferice de catre microcontroler.

Descriere generala

Sistemul este construit in jurul placii ATmega328P Xplained Mini, care controleaza toate componentele proiectului.

Utilizatorul va putea muta nava in stanga si in dreapta, va putea trage in inamici si va putea porni/opri sau reseta jocul folosind butoanele tactile. Ecranul OLED va afisa zona de joc, scorul, vietile ramase si starea jocului.

Potentiometrul va fi folosit pentru reglarea dificultatii, de exemplu prin modificarea vitezei cu care se misca inamicii. Buzzerul va oferi feedback sonor pentru actiuni precum tragerea, lovirea unui inamic sau terminarea jocului. Cele trei LED-uri vor fi folosite pentru afisarea vietilor ramase sau pentru stari speciale ale jocului.

Schema bloc

+---------------------------+
| ATmega328P Xplained Mini  |
+---------------------------+
   |        |        | 
   |        |        |
   v        v        v
+------+  +-------+  +--------+
| OLED |  |Button |  | Buzzer |
+------+  +-------+  +--------+
   |
   v
+-------------+
| Afisare joc |
+-------------+

+------------------+      +------------------+
| Potentiometru    | ---> | ADC - dificultate|
+------------------+      +------------------+

+------------------+
| 3 LED-uri        |
| status / vieti   |
+------------------+

Hardware Design

Lista de componente

  • ATmega328P Xplained Mini
  • OLED SSD1306 128×64 I2C 0.96 inch
  • 5 butoane tactile
  • buzzer piezo pasiv
  • potentiometru 10kΩ
  • 3 LED-uri
  • rezistente 220Ω / 330Ω pentru LED-uri
  • rezistente 10kΩ pentru butoane, daca nu se folosesc rezistentele interne de pull-up
  • breadboard
  • fire jumper

Conectare preliminara

Componenta Pin microcontroler Rol
OLED SDA PC4 / SDA comunicatie I2C
OLED SCL PC5 / SCL comunicatie I2C
Potentiometru PC0 / ADC0 citire dificultate
Buzzer pasiv PB1 feedback sonor
Buton stanga PD2 deplasare nava
Buton dreapta PD3 deplasare nava
Buton tragere PD4 tragere proiectil
Buton pauza/meniu PD5 control joc
Buton reset/select PD6 resetare/selectare
LED 1 PB0 viata/status
LED 2 PB2 viata/status
LED 3 PD7 status/game over

Display-ul OLED va comunica prin I2C, folosind pinii SDA si SCL. Butoanele vor fi citite ca intrari digitale. Potentiometrul va fi conectat la o intrare analogica, iar valoarea citita va fi folosita pentru modificarea dificultatii. Buzzerul va fi controlat printr-un pin digital/PWM pentru generarea de sunete simple. LED-urile vor fi conectate prin rezistente de limitare a curentului.

TODO: Schema electrica finala va fi adaugata dupa realizarea montajului.

Software Design

Codul va implementa logica jocului Space Invaders si controlul componentelor hardware.

Functionalitati planificate:

  • initializarea ecranului OLED
  • afisarea meniului si a zonei de joc
  • citirea butoanelor
  • deplasarea navei
  • tragerea proiectilelor
  • deplasarea inamicilor
  • detectarea coliziunilor
  • calcularea scorului
  • gestionarea vietilor
  • reglarea dificultatii folosind potentiometrul
  • generarea de sunete prin buzzer
  • aprinderea LED-urilor in functie de starea jocului

Jocul va avea o bucla principala in care se citesc intrarile, se actualizeaza starea jocului si se redeseneaza ecranul.

Rezultate Obtinute

TODO

Concluzii

TODO

Download

TODO

Bibliografie/Resurse

pm/prj2026/cezar.zlatea/razvan.bercia.1778353183.txt.gz · Last modified: 2026/05/09 21:59 by razvan.bercia
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