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:
Unitatea de procesare: Microcontrolerul ATmega328P. Coordoneaza sistemul si, la pornire, executa bootloader-ul.
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.
Sistemul grafic (I2C): Un ecran OLED afiseaza grafica jocului, comunicand eficient prin doar doi pini (SDA, SCL).
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.
Modulul de alimentare: O sursa externa (ex. baterie 9V) cuplata la un regulator de tensiune (5V) pentru a alimenta stabil intregul circuit.
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).