This is an old revision of the document!
Micro Invaders
Introducere
Prezentarea pe scurt a proiectului:
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.
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ă
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
Bill of Materials
| Nr. crt. | Nume componentă | Specificații | Cantitate |
| 1 | Arduino Uno | Placă de dezvoltare bazată pe microcontroller-ul ATmega328p | 1 |
| 2 | Modul ecran LCD | Modul LCD de 1.44'' cu SPI și Controller ST7735 (128×128 px) | 1 |
| 3 | Joystick analogic | Modul joystick cu 2 potențiometre (axa X, axa Y) | 1 |
| 4 | Butoane (Push buttons) | Microîntrerupătoare tactile pentru acțiuni (shoot, dodge) | 2 |
| 5 | Breadboard | Placă de test pentru realizarea proiectului cu 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 |
Software Design
Descrierea codului aplicaţiei (firmware):
mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)
librării şi surse 3rd-party (e.g. Procyon AVRlib)
algoritmi şi structuri pe care plănuiţi să le implementaţi
(etapa 3) surse şi funcţii implementate
Rezultate Obţinute
Care au fost rezultatele obţinute în urma realizării proiectului vostru.
Concluzii
Download
O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună

.
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.
Jurnal
Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.
Bibliografie/Resurse
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.
Export to PDF