This is an old revision of the document!


Consola Retro Modulara

Introducere

Acest proiect consta in realizarea unei console de jocuri retro, construita “from scratch” pe un breadboard in jurul unui microcontroler ATmega328P standalone.

  • Ce face: Consola ruleaza jocuri (precum Snake) incarcate dinamic de pe carduri MicroSD, care functioneaza ca niste “casete” fizice interschimbabile.
  • Scopul lui: Invatarea lucrului cu memoria sistemului (implementarea unui SD Bootloader custom) si comunicarea cu periferice externe pe protocoale diferite (SPI, I2C), avand resurse hardware limitate.
  • Ideea de la care am pornit: Dorinta de a construi o consola modulara la care schimbarea jocului sa se faca fizic, prin card, fara reprogramare din laptop.
  • De ce este util: Reprezinta un exercitiu practic excelent de arhitectura a sistemelor embedded si gestiune eficienta a memoriei.

Descriere generala

Arhitectura se bazeaza pe o unitate centrala minimala, extinsa prin periferice de intrare, iesire si memorie.

Module si interactiune:

  1. Unitatea de procesare: Microcontrolerul ATmega328P. Coordoneaza sistemul si, la pornire, executa bootloader-ul.
  2. Sistemul de memorie (SPI): Modulul MicroSD comunica pe magistrala SPI. Bootloader-ul cauta jocul pe card si il incarca in memoria Flash interna, apoi ii cedeaza controlul.
  3. Sistemul grafic (I2C): Un ecran OLED afiseaza grafica jocului, comunicand eficient prin doar doi pini (SDA, SCL).
  4. Interfata de control (Digital IO): Un modul de navigare 5D (joystick digital) sau un set de butoane configurate ca D-Pad, citite ca intrari digitale.
  5. Modulul de alimentare: O sursa externa (ex. baterie 9V) cuplata la un regulator de tensiune (5V) pentru a alimenta stabil intregul circuit.

Schema Bloc a Consolei

Hardware Design

Design-ul fizic este conceput sa fie compact, implementat pe un breadboard.

Lista de piese:

  • Microcontroler ATmega328P (standalone)
  • Cristal oscilator de 16 MHz si condensatori ceramici
  • Regulator de tensiune 5V (tip L7805) si condensatori de filtrare
  • Display OLED (comunicare I2C)
  • Modul cititor MicroSD Card (comunicare SPI)
  • Modul navigare 5D (joystick digital) sau butoane tactile
  • Breadboard si fire de conexiune
  • Sursa de alimentare (Baterie 9V)

Software Design

Dezvoltarea software este impartita in doua componente principale: bootloader-ul si aplicatia (jocul).

  • Mediu de dezvoltare: PlatformIO.
  • Bootloader-ul: Codul care ruleaza la reset. Initializeaza cardul SD, citeste fisierul executabil al jocului si il scrie in memoria program a microcontrolerului, permitand auto-reprogramarea.
  • Logica jocului: Foloseste un sistem clasic de tip “Game Loop”. Citeste intrarile de la butoane, actualizeaza starea jocului si redeseneaza ecranul OLED. Datorita memoriei RAM mici a microcontrolerului, randarea graficii va fi optimizata pentru a consuma cat mai putine resurse.

Rezultate Obtinute

(Sectiunea va fi completata pe masura ce avanseaza asamblarea componentelor si primele teste pe breadboard.)

Concluzii

(Sectiunea va fi completata la finalizarea proiectului.)

Download

(Aici va fi adaugata arhiva cu fisierele sursa dupa finalizare.)

Jurnal

  • Saptamana 1: Achizitionarea pieselor hardware. Planificarea pinilor. Realizarea montajului de baza (circuitul de alimentare pe breadboard si testarea functionarii cipului ATmega328P “in gol”).
  • Urmeaza: Conectarea ecranului OLED si implementarea butoanelor de control pentru a testa partea vizuala a proiectului.

Bibliografie/Resurse

  • Datasheet-ul pentru ATmega328P.
  • Documentatia modulelor OLED si SD Card.
  • Resursele si laboratoarele din cadrul materiei de Proiectare cu Microprocesoare (I2C, SPI).
pm/prj2026/tarik_ilhan.omer/andrei.balica.1777972187.txt.gz · Last modified: 2026/05/05 12:09 by andrei.balica
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