This is an old revision of the document!
RetroPixel Game Hub aduce la viață o mică consolă de jocuri retro pe baza platformei Arduino UNO, combinând jocuri clasice de logică și reflexe într-o singură interfață vizuală minimalistă: o matrice LED 8×8. Ideea pornește din dorința de a valorifica puterea Arduino în scopuri creative și recreative, oferind utilizatorului o experiență interactivă și nostalgică, cu o interfață simplă și ușor de folosit.
Utilizatorul poate naviga printr-un meniu intuitiv și poate selecta dintre mai multe jocuri:
• Snake – versiunea clasică, în care șarpele trebuie să mănânce și să evite coliziunile. • Avoid Falling Lines – un joc de reflexe, unde trebuie să te ferești de linii verticale care cad. • Memory Game – un joc de memorie vizuală, unde utilizatorul trebuie să reproducă o secvență de lumini.
Proiectul meu este dezvoltat pe o placă de dezvoltare Arduino UNO și are ca scop crearea unei mini-consolă retro, care integrează mai multe jocuri într-o singură interfață hardware.
Interfața vizuală principală este o matrice LED 8×8, care oferă o reprezentare minimalistă, dar eficientă, a fiecărui joc în parte. Jocurile sunt selectabile dintr-un meniu afișat separat pe un ecran LCD (tip 16×2), care este controlat de către utilizator prin intermediul a patru butoane dedicate: sus, jos, select și înapoi. Această abordare permite o interacțiune intuitivă și o separare clară între funcțiile de navigare și cele de joc propriu-zis.
Jocurile incluse în această mini-consolă sunt:
• Snake – versiunea clasică, în care jucătorul controlează un șarpe și încearcă să mănânce hrană pentru a crește, evitând coliziunile cu propriul corp. Matricea LED afișează în timp real mișcările șarpelui, iar joystickul permite controlul acestuia în patru direcții. Dacă șarpele iese de pe o margine, el reapare pe partea opusă a ecranului, ceea ce adaugă un plus de dinamică jocului. • Avoid Falling Lines – un joc de reflexe rapide, în care jucătorul controlează un punct care trebuie să se ferească de linii verticale care „cad” din partea de sus a matricei. Scopul este de a evita cât mai multe linii consecutive, crescând scorul odată cu fiecare evitare reușită. Jocul devine treptat mai dificil, pe măsură ce viteza liniilor crește. • Memory Game – un joc de memorie vizuală, în care utilizatorul trebuie să reproducă corect o secvență luminoasă afișată pe matrice. La fiecare rundă, secvența devine mai lungă și mai complexă. Dacă utilizatorul greșește ordinea, jocul se termină și scorul este afișat.
Pe lângă interacțiunea vizuală, proiectul include posibilitatea de a salva scoruri sau de a accesa configurații dintr-un modul SD card.
Un alt aspect important este feedback-ul audio. Un buzzer conectat la placă oferă sunete caracteristice pentru fiecare acțiune importantă: selecția din meniu, atingerea unui obstacol, reușita sau eșecul în jocuri. Acest element contribuie la crearea unei atmosfere de tip arcade.
Prin combinarea unui meniu clar și a mai multor jocuri dinamice, proiectul reușește să aducă împreună atât partea de dezvoltare software (cod Arduino structurat pe stări), cât și hardware (conectivitate între componente multiple), devenind astfel un exemplu complet de proiect integrat, ideal pentru învățare și divertisment.
Din păcate, LCD-ul pe care l-am primit nu funcționează, așa că am comandat altul…
• 5V (folosit pentru alimentarea componentelor care necesită tensiune constantă) • GND (comun tuturor componentelor, asigurând referința de tensiune)
• SDA (Serial Data) -> A4 • - linia de date pentru protocolul I2C (permite transferul datelor între Arduino și LCD) • SCL (Serial Clock) -> A5: • - linia de ceas pentru transmiterea sincronizată a datelor între dispozitivele I2C
• conexiune la pini digitali (D4-D7): • - folosiți pentru a detecta apăsările de butoane • folosire de rezistențe 10kΩ: • - folosite ca pull-down pentru a menține starea LOW în absența apăsării
• CS (Chip Select) -> D8: • - activează comunicarea SPI pentru matricea LED • CLK (Clock) -> D9: • - linia de ceas pentru transmiterea sincronizată a datelor • DIN (Data In) -> D10: • - linie de date pentru trimiterea comenzilor către matrice
• VRx -> A0 și VRy -> A1: • - citirea valorilor analogice de la potențiometrele din joystick • - returnează valori între 0 și 1023, corespunzând deplasării pe axe • SW -> D2: • - detectează apăsarea butonului joystick-ului (HIGH/LOW)
• CS (Chip Select) - D3: • - activează comunicarea SPI pentru SD Card • MOSI (Master Out Slave In) -> D11: • - se transmit date de la Arduino la modulul SD • MISO (Master In Slave Out) -> D12: • - se transmit date de la modulul SD la Arduino • SCK (Serial Clock) -> D13: • - linia de ceas pentru transmiterea sincronizată a datelor
• conexiune la pin analogic (A3): • - controlul sunetului prin generarea de tonuri cu funcția tone() din Arduino
Mediu de Dezvolate: Arduino IDE
Software-ul este disponibil aici: https://github.com/RazvanSerb/RetroPixel-Game-Hub
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.
06.05.2025 - am creat pagina si am adăugat descrierea generală a proiectului
09.05.2025 - am realizat design-ul circuitului
09.05.2025 - am comandat toate piesele necesare proiectului
12.05.2025 - am asamblat hardware-ul și am testat funcționalitatea pieselor
12.05.2025 - am comandat piesele care necesitau înlocuire