This shows you the differences between two versions of the page.
|
pm:prj2026:tarik_ilhan.omer:andrei.balica [2026/05/05 12:19] andrei.balica |
pm:prj2026:tarik_ilhan.omer:andrei.balica [2026/05/05 12:31] (current) andrei.balica [Descriere generala] |
||
|---|---|---|---|
| Line 15: | Line 15: | ||
| ===== Descriere generala ===== | ===== Descriere generala ===== | ||
| - | Arhitectura sistemului se bazeaza pe o unitate centrala de procesare minimala, a carei functionalitate se extinde prin periferice de intrare (butoane), iesire (display) si memorie (card SD). | + | Arhitectura sistemului se bazeaza pe o unitate centrala de procesare minimala, a carei functionalitate se extinde prin periferice de intrare (butoane, joystick), iesire (display) si memorie (card SD). |
| **Module si interactiune:** | **Module si interactiune:** | ||
| Line 25: | Line 25: | ||
| - **Sistemul grafic (I2C):** Un ecran OLED de 0.96 inch (sau 1.3 inch) primeste bufferele de pixeli prin protocolul I2C. Consuma doar doi pini (SDA, SCL) si ofera un contrast perfect pentru jocurile retro pixel-art. | - **Sistemul grafic (I2C):** Un ecran OLED de 0.96 inch (sau 1.3 inch) primeste bufferele de pixeli prin protocolul I2C. Consuma doar doi pini (SDA, SCL) si ofera un contrast perfect pentru jocurile retro pixel-art. | ||
| - | - **Interfata de control (Digital IO):** Un set de butoane configurate in format D-Pad (Sus, Jos, Stanga, Dreapta + Actiune). Acestea folosesc rezistentele interne de pull-up ale MCU-ului si comuta in LOW la apasare, eliminand nevoia componentelor externe. | + | - **Interfata de control (Digital IO):** Un joystick 5D (5-directional navigation switch) pentru navigare, completat de 5 butoane tip push pentru actiuni suplimentare (A, B, Start, Select, Reset). Toate folosesc rezistentele interne de pull-up ale MCU-ului si comuta in LOW la apasare, eliminand nevoia componentelor externe. |
| - **Modulul de alimentare:** O sursa externa (baterie 9V) este stabilizata la 5V curat de un regulator liniar L7805CV, protejat de condensatori de decuplare, oferind curentul necesar atat cipului, cat si ecranului si modulului SD. | - **Modulul de alimentare:** O sursa externa (baterie 9V) este stabilizata la 5V curat de un regulator liniar L7805CV, protejat de condensatori de decuplare, oferind curentul necesar atat cipului, cat si ecranului si modulului SD. | ||
| - | {{:pm:prj2026:tarik_ilhan.omer:andreibalica:schema_bloc.png?600|Schema Bloc a Consolei}} | + | {{:pm:prj2026:tarik_ilhan.omer:schema_bloc_consola_retro.png?600|}} |
| ===== Hardware Design ===== | ===== Hardware Design ===== | ||
| Line 42: | Line 42: | ||
| * 1 x Display OLED 0.96" (sau 1.3") I2C (Driver SSD1306/SH1106) | * 1 x Display OLED 0.96" (sau 1.3") I2C (Driver SSD1306/SH1106) | ||
| * 1 x Modul cititor MicroSD Card (Interfata SPI) | * 1 x Modul cititor MicroSD Card (Interfata SPI) | ||
| - | * 5/6 x Micro-switch-uri (Butoane tip push pentru D-Pad si comenzi) | + | * 1 x Joystick 5D (5-directional navigation switch) |
| + | * 5 x Micro-switch-uri (Butoane tip push — A, B, Start, Select, Reset) | ||
| * 1 x Breadboard 830 puncte | * 1 x Breadboard 830 puncte | ||
| * Fire de conexiune rigide si flexibile | * Fire de conexiune rigide si flexibile | ||
| Line 57: | Line 58: | ||
| * **Bootloader-ul (Miezul proiectului):** Se foloseste o varianta derivata din 2000-Lines-of-Code SD Bootloader (sau zbm-h/sd-bootloader). Acesta ocupa primii octeti din Flash si implementeaza direct functiile SPM (Store Program Memory) ale AVR-ului. | * **Bootloader-ul (Miezul proiectului):** Se foloseste o varianta derivata din 2000-Lines-of-Code SD Bootloader (sau zbm-h/sd-bootloader). Acesta ocupa primii octeti din Flash si implementeaza direct functiile SPM (Store Program Memory) ale AVR-ului. | ||
| - | * **Logica jocului (Ex: Snake):** Foloseste un sistem de tip Game Loop (Update & Draw). Memoria RAM de doar 2KB a ATmega328P limiteaza buffer-ul grafic, motiv pentru care randarea se face prin paginare sau direct pe componente bloc (8x8 pixeli) pentru a salva memorie. Butoanele sunt citite pe baza de polling in bucla principala sau prin Pin Change Interrupts. | + | * **Logica jocului (Ex: Snake):** Foloseste un sistem de tip Game Loop (Update & Draw). Memoria RAM de doar 2KB a ATmega328P limiteaza buffer-ul grafic, motiv pentru care randarea se face prin paginare sau direct pe componente bloc (8x8 pixeli) pentru a salva memorie. Joystick-ul si butoanele sunt citite pe baza de polling in bucla principala sau prin Pin Change Interrupts. |
| ===== Rezultate Obtinute ===== | ===== Rezultate Obtinute ===== | ||
| Line 75: | Line 76: | ||
| * **Saptamana 1:** Achizitionarea pieselor hardware. Planificarea pinilor. Realizarea montajului de baza (circuitul de alimentare pe breadboard si testarea functionarii cipului ATmega328P "in gol"). | * **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. | + | * **Urmeaza:** Conectarea ecranului OLED si implementarea joystick-ului si butoanelor de control pentru a testa partea vizuala a proiectului. |
| ===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||