This shows you the differences between two versions of the page.
|
pm:prj2026:ciprian.popescu0411:alexandru.stoian05 [2026/05/06 15:26] alexandru.stoian05 [Descriere generală] |
pm:prj2026:ciprian.popescu0411:alexandru.stoian05 [2026/05/15 16:59] (current) alexandru.stoian05 [Bill of Materials] |
||
|---|---|---|---|
| Line 3: | Line 3: | ||
| Prezentarea pe scurt a proiectului: | Prezentarea pe scurt a proiectului: | ||
| - | * Proiectul este un joc interactiv inspirat de "Chicken Invaders", cu afisaj pe un ecran lcd, care poate fi jucat dintr-un joystick si butoane. | + | * Proiectul constă într-un joc interactiv inspirat de „Chicken Invaders”, cu afișaj pe un ecran LCD, ce poate fi controlat cu ajutorul unui joystick și al unor butoane. |
| - | * Scopul sau este de a simula comportamentul unei console de jocuri de tip handheld. O consola handheld are toate componentele sale (microcontroller, ecran, butoane / joystick) intr-un format compact. | + | |
| - | * Sursa de inspiratie este data de consolele handheld pe care m-am mai jucat, precum Nintendo DS sau Steam Deck, si jocul "Chicken Invaders" pe care l-am jucat in copilarie. Vreau sa fac o astfel de consola la o scara mult mai mica. | + | * Scopul proiectului este de a simula comportamentul unei console de jocuri de tip handheld. Acest concept presupune integrarea tuturor componentelor hardware (microcontrolerul, ecranul, joystick-ul și butoanele) într-un format compact și ergonomic. |
| - | * Proiectul prezinta un exercitiu bun in optimizarea codului unui joc video interactiv pentru limitarile pe care le prezinta un microcontroller (memorie limitata, clock speed limitat, etc.). | + | |
| + | * Ideea proiectului a pornit de la consolele pe care le-am folosit de-a lungul anilor, cum ar fi Nintendo DS sau Steam Deck, și de la un joc clasic al copilăriei mele: "Chicken Invaders". Practic, mi-am propus să construiesc propria versiune a unei astfel de console, realizată de la zero și la o scară mult mai mică. | ||
| + | |||
| + | * Proiectul este, de asemenea, un exercițiu bun de optimizare și adaptare a codului unui joc video pentru un microcontroller, care are mai multe limitări (memorie redusă, clock speed scăzut, etc.). | ||
| ===== Descriere generală ===== | ===== Descriere generală ===== | ||
| - | {{:pm:prj2026:ciprian.popescu0411:alexstoian_diagrama.png?500|}} | + | {{:pm:prj2026:ciprian.popescu0411:alex_stoian_diagram.png?500|}} |
| + | |||
| + | Jocul este implementat pe microcontroller-ul ATmega328p și include următoarele funcționalități: | ||
| + | |||
| + | * Afișaj video: Comunicarea cu ecranul LCD se realizează prin protocolul SPI. | ||
| + | |||
| + | * Controlul mișcării: Coordonatele navei sunt controlate prin joystick. Tensiunile potențiometrelor aferente axelor X și Y sunt convertite în valori numerice prin modulul ADC integrat pe microcontroller. | ||
| + | |||
| + | * Acțiuni: Butoanele sunt conectate la pinii digitali (GPIO). Pentru a filtra zgomotul mecanic (contact bounce) fără a folosi funcții blocante precum delay(), se utilizează un algoritm de debouncing bazat pe Timere. | ||
| ===== Hardware Design ===== | ===== Hardware Design ===== | ||
| - | <note tip> | + | ==== Bill of Materials ==== |
| - | Aici puneţi tot ce ţine de hardware design: | + | |
| - | * listă de piese | + | ^ Nr. crt. ^ Nume componentă ^ Specificații ^ Cantitate ^ |
| - | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | | 1 | Arduino Uno | Placă de dezvoltare bazată pe microcontroller-ul ATmega328p | 1 | |
| - | * diagrame de semnal | + | | 2 | Modul ecran LCD | Modul LCD de 1.44'' cu SPI și Controller ST7735 (128x128 px) | 1 | |
| - | * rezultatele simulării | + | | 3 | Joystick analogic | Modul joystick cu 2 potențiometre (axa X, axa Y) | 1 | |
| - | </note> | + | | 4 | Buton (Push button) | Microîntrerupător tactil | 2 | |
| + | | 5 | Breadboard | Placă de test 830 de puncte | 1 | | ||
| + | | 6 | Fire de conexiune | Set fire Dupont (Male-Male, Male-Female) | 1 set | | ||
| + | | 7 | Cablu USB | Pentru alimentare și programare | 1 | | ||
| + | |||
| + | |||
| + | ==== Descriere componente ==== | ||
| + | |||
| + | Placa Arduino Uno: Aceasta conține microcontroller-ul ATmega328p care gestionează logica jocului, afișajul pe display și citește inputurile date de joystick și butoane. | ||
| + | |||
| + | Ecran LCD: Pe acest ecran va fi afișat jocul "Micro Invaders" prin protocolul SPI. | ||
| + | |||
| + | Joystick: Acesta conține 2 potențiometre care determină poziția navei pe ecran prin maparea valorilor sale la coordonatele X și Y. | ||
| + | Butoane: Folosite pentru a trage cu proiectile către inamici. | ||
| ===== Software Design ===== | ===== Software Design ===== | ||