This is an old revision of the document!


Dino game simulator

Introducere

Dino game simulator este un simulator de joc pentru “Dino Chrome game” facut cu ajutorul placutei Arduino UNO. Scopul acestui proiect este de a obtine scor cat mai mare la acest joc, lucru greu de obtinut fara o sincronizare si atentie desavarsita, obtinuta cu usurinta insa de un robot simulator. Proiectul este util deoarece ofera o perspectiva legat de cum functioneaza fotorezistentele, servomotoarele, intreruperile si multe altele intr-un mod interactiv si practic.

Descriere generală

Acest simulator are urmatoarele functionalitati:

  • 1. un afisaj de leduri care identifica daca luminozitatea ecranului este cea optima
  • 2. un buton de start si de reset pentru joc
  • 3. afisaj pe ecran legat de timpul in secunde de cand simulatorul a pornit, scorul calculat pana in momentul respectiv si numarul de miscari pe care le-a executat pana in momentul respectiv.
  • 4. in rest simulatorul va detecta cand trebuie sarit/aplecat atunci cand intaleste un obstacol si va actiona servomotorul in directia care trebuie astfel incat sa execute comanda de UP ARROW/DOWN ARROW.

Hardware Design

Software Design

Descrierea codului aplicatiei (firmware): * Mediu de dezvoltare: Proiectul este dezvoltat in Arduino IDE. * Librarii si surse 3rd-party: * Servo.h: Pentru controlul precis al servomotorului. * LiquidCrystal.h: Pentru gestionarea afisajului LCD 16×2. * Algoritmi si structuri implementate: * Monitorizarea luminozitatii: Doua fotorezistoare (LDR-uri) detecteaza obstacolele pe ecran, comparand valorile cu praguri predefinite pentru decizii de saritura/aplecare. * Masina de stari (State Machine): Controleaza miscarile servomotorului non-blocant, cu stari precum IDLE, WAITING_TO_MOVE_UP/DOWN (cu delay de sincronizare) si MOVING_UP/DOWN. * Intreruperi ADC: Asigura citirea rapida si eficienta a valorilor de la LDR-uri; o intrerupere la finalizarea unei conversii initiaza imediat urmatoarea pe celalalt LDR. * Buton de Reset: Permite repornirea jocului si resetarea contoarelor, incluzand debounce. * Modul de Pauza: Simulatorul intra in pauza la inactivitate prelungita, asteptand resetarea manuala. * Surse si functii implementate: * Functii de initializare (setup()). * Bucla de executie principala (loop()) continand logica jocului. * Functii dedicate pentru configurarea si gestionarea intreruperilor ADC (e.g., setupADCInterrupt(), startADCConversion()). * Rutina de serviciu a intreruperii ADC (ISR(ADC_vect)) pentru procesarea datelor senzorilor. * Afisaj pe LCD al timpului de joc, numarului de sarituri si aplecari. * LED-uri pentru feedback vizual al luminozitatii LDR1.

Rezultate Obţinute

Am scos scor mai mare decat am putut eu scoate in oricare din dati :D

Concluzii

Download

Jurnal

dino_poza_1.jpg dino_poza_2.jpg dino_poza_3.jpg

Bibliografie/Resurse

pm/prj2025/mdinica/andrei.vintilescu.1748293347.txt.gz · Last modified: 2025/05/27 00:02 by andrei.vintilescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0