Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2026:cezar.zlatea:razvan.bercia [2026/05/09 21:55]
razvan.bercia
pm:prj2026:cezar.zlatea:razvan.bercia [2026/05/09 22:31] (current)
razvan.bercia
Line 5: Line 5:
 Proiectul consta in realizarea unei console embedded simple care ruleaza jocul Space Invaders pe un microcontroler ATmega328P Xplained Mini. 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 128x64iar 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.+Jocul va fi afisat pe un ecran TFT SPI de 2.4 inchcu rezolutie 240x320 pixeli si driver ST7789V. Deoarece display-ul foloseste semnale logice de 3.3V, voi folosi un level shifter pentru adaptarea semnalelor dintre microcontroler si ecran. 
 + 
 +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. 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.
Line 13: Line 15:
 Sistemul este construit in jurul placii ATmega328P Xplained Mini, care controleaza toate componentele proiectului. 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.+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 ​TFT 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. 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.
 +
 +Level shifter-ul va fi folosit intre microcontroler si display pentru a adapta semnalele SPI/control de la 5V la 3.3V.
  
 ==== Schema bloc ==== ==== Schema bloc ====
Line 23: Line 27:
 | ATmega328P Xplained Mini  | | ATmega328P Xplained Mini  |
 +---------------------------+ +---------------------------+
-   ​| ​       |        |  +   |        ​|        |        | 
-   ​| ​       |        | +   |        ​|        |        | 
-   ​v ​       v        v +   v        ​v        v        v 
-+------+ ​ +-------+ ​ +--------+ ++------+ ​ +---------+ ​ +--------+ ​ +------------------+ 
-OLED |  |Button ​|  | Buzzer | +GPIO |  | Butoane ​|  | Buzzer ​|  | Potentiometru ​  
-+------+ ​ +-------+ ​ +--------+ ++------+ ​ +---------+ ​ +--------+ ​ +------------------+ 
-   | +   |                                  ​
-   v +   v                                  ​
-+-------------+ ++-----------+ ​                 +--------------------+ 
-Afisare joc +3 LED-uri |                  | ADC - dificultate  ​
-+-------------+++-----------+ ​                 +--------------------+
  
-+------------------+ ​     +------------------+ 
-| Potentiometru ​   | ---> | ADC - dificultate| 
-+------------------+ ​     +------------------+ 
  
-+------------------+ ++---------------------------+ 
-| 3 LED-uri        ​+ATmega328P Xplained Mini  | 
-status ​vieti   ++---------------------------+ 
-+------------------++             | 
 +             | SPI/control 5V 
 +             v 
 ++---------------------------+ 
 +| Level shifter 5V -> 3.3V  | 
 ++---------------------------+ 
 +             
 +             ​SPI/control 3.3V 
 +             v 
 ++---------------------------+ 
 +| TFT SPI 2.4 inch ST7789V ​ | 
 +| 240x320 pixeli ​           ​
 ++---------------------------+ 
 +             | 
 +             v 
 ++---------------------------+ 
 +| Afisare joc Space Invaders| 
 ++---------------------------+
 </​code>​ </​code>​
  
Line 50: Line 68:
  
   * ATmega328P Xplained Mini   * ATmega328P Xplained Mini
-  * OLED SSD1306 128x64 I2C 0.96 inch+  * Display TFT SPI 2.inch, 240x320 pixeli, driver ST7789V 
 +  * Level shifter logic 5V -> 3.3V
   * 5 butoane tactile   * 5 butoane tactile
   * buzzer piezo pasiv   * buzzer piezo pasiv
Line 63: Line 82:
  
 ^ Componenta ^ Pin microcontroler ^ Rol ^ ^ Componenta ^ Pin microcontroler ^ Rol ^
-OLED SDA PC4 SDA | comunicatie ​I2C +TFT SCK PB5 SCK | comunicatie ​SPI, prin level shifter ​
-OLED SCL PC5 SCL | comunicatie ​I2C |+TFT MOSI / SDA PB3 MOSI | comunicatie ​SPI, prin level shifter | 
 +| TFT CS | PC1 | selectie display, prin level shifter | 
 +| TFT DC / A0 | PC2 | comanda/​date display, prin level shifter | 
 +| TFT RST / RES | PC3 | reset display, prin level shifter ​|
 | Potentiometru | PC0 / ADC0 | citire dificultate | | Potentiometru | PC0 / ADC0 | citire dificultate |
 | Buzzer pasiv | PB1 | feedback sonor | | Buzzer pasiv | PB1 | feedback sonor |
Line 76: Line 98:
 | LED 3 | PD7 | status/game over | | 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.+Display-ul ​TFT va comunica prin SPI, folosind pinii SCK si MOSI ai microcontrolerului,​ impreuna cu pini suplimentari pentru CS, DC si RST. Deoarece display-ul foloseste logica de 3.3V, semnalele dintre ATmega328P si display vor trece printr-un level shifter. 
 + 
 +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. TODO: Schema electrica finala va fi adaugata dupa realizarea montajului.
Line 86: Line 110:
 Functionalitati planificate:​ Functionalitati planificate:​
  
-  * initializarea ecranului ​OLED+  * initializarea ecranului ​TFT
   * afisarea meniului si a zonei de joc   * afisarea meniului si a zonei de joc
   * citirea butoanelor   * citirea butoanelor
Line 100: Line 124:
  
 Jocul va avea o bucla principala in care se citesc intrarile, se actualizeaza starea jocului si se redeseneaza ecranul. Jocul va avea o bucla principala in care se citesc intrarile, se actualizeaza starea jocului si se redeseneaza ecranul.
 +
 +Pentru a evita consumul mare de memorie, jocul nu va folosi un buffer complet pentru ecran. Elementele grafice vor fi desenate direct pe display, iar la fiecare actualizare se vor sterge si redesena doar zonele care se modifica.
  
 ===== Rezultate Obtinute ===== ===== Rezultate Obtinute =====
Line 116: Line 142:
  
 TODO TODO
 +
 +<​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
pm/prj2026/cezar.zlatea/razvan.bercia.1778352953.txt.gz · Last modified: 2026/05/09 21:55 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