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 aplicaţiei (firmware):

  • Mediu de dezvoltare: Proiectul este dezvoltat în Arduino IDE.
  • Librării şi surse 3rd-party:
    • Servo.h: Pentru controlul precis al servomotorului.
    • LiquidCrystal.h: Pentru gestionarea afișajului LCD 16×2.
  • Algoritmi şi structuri implementate:
    • Monitorizarea luminozității: Două fotorezistoare (LDR-uri) detectează obstacolele pe ecran, comparând valorile cu praguri predefinite pentru decizii de săritură/aplecare.
    • Mașină de stări (State Machine): Controlează mișcările servomotorului non-blocant, cu stări precum IDLE, WAITING_TO_MOVE_UP/DOWN (cu delay de sincronizare) și MOVING_UP/DOWN.
    • Întreruperi ADC: Asigură citirea rapidă și eficientă a valorilor de la LDR-uri; o întrerupere la finalizarea unei conversii inițiază imediat următoarea pe celălalt LDR.
    • Buton de Reset: Permite repornirea jocului și resetarea contoarelor, incluzând debounce.
    • Modul de Pauză: Simulatorul intră în pauză la inactivitate prelungită, așteptând resetarea manuală.
  • Surse şi funcţii implementate:
    • Funcții de inițializare (setup()).
    • Bucle de execuție principală (loop()) conținând logica jocului.
    • Funcții dedicate pentru configurarea și gestionarea întreruperilor ADC (e.g., setupADCInterrupt(), startADCConversion()).
    • Rutina de serviciu a întreruperii ADC (ISR(ADC_vect)) pentru procesarea datelor senzorilor.
    • Afișaj pe LCD al timpului de joc, numărului de sărituri și aplecări.
    • LED-uri pentru feedback vizual al luminozității LDR1.

Rezultate Obţinute

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

Concluzii

Bibliografie/Resurse

Prezentul proiect “Dino Game Simulator” a fost dezvoltat utilizand o varietate de resurse tehnice si educationale, grupate mai jos.

=== Resurse Hardware ===

=== Resurse Software ===

pm/prj2025/mdinica/andrei.vintilescu.txt · Last modified: 2025/05/27 00:50 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