This is an old revision of the document!


Nume: Millio Radu

Grupa: 333CA

Dino Runner

Introducere

Pentru acest proiect voi incerca sa construiesc un player fizic de Dino Runner, jocul de pe Chrome atunci cand nu merge internetul.

Elementele jocului

Un dinozaur alearga de la stanga la dreapta (stand pe loc relativ la ecran) si trebuie sa evite obstacole (cactusi) apasand pe space pentru a sari peste ei.

Descriere generala

Senzorul se lipeste cu scotch pe ecran, servomotorul se lipeste cu scotch langa tasta space. Senzorul trebuie sa fie suficient de sensibil incat sa detecteze lumina neagra a cactusilor de pe ecran. Se apasa butonul start/stop pentru inceperea jocului. La detectarea unui cactus trebuie folosit un debouncer, iar servomotorul se va roti suficient cat sa apese tasta space pentru ca dinozaurul sa sare peste cactus.

Hardware Design

Lista componente:

Componenta Cantitatea
Placa compatibila Arduino Uno R3 ATmega328P 1
Fotorezistor 1
Suport conic pentru senzor 1
Servomotor 1
Buton 1
Condensator 100n 1
Rezistori 10k 2
Jumpers 10
Breadboard 1

Fotorezistorul va fi pus intr-un divizor de tensiune cu o rezistenta de 10K.

Schema electrica:

Implementare

Pentru a izola mediul senzorului am printat 3D un suport conic de culoare neagra. Astfel putem obtine valori care sunt mult mai putin dependente de mediul in care se efectueaza masuratoarea.

Software Design

Diagrama de activitate

Descrierea codului

Pentru editarea codului am folosit Arduino IDE. Logica de functionare este urmatoarea: Variabila GameState este controlata de butonul care face toggle pe aceasta valoare (STOP/PLAY). In modul STOP, senzorul este calibrat, adica ultima valoare produsa de acesta este salvata drept referinta de baza pentru modul de joc. Cand se apasa iar pe buton intram in modul PLAY. Se compara in loop valoarea oferita de senzor cu valoarea de referinta. Daca diferenta dintre acestea este mai mare decat un threshold atunci servomotorul este actionat.

Pentru functionarea butonului am creat o intrerupere INT0 cu activare pe falling edge. Pentru debouncing am folosit un condensator de 100n.

Bibliografie/Resurse

Am folosit Tinkercad pentru generarea schemei electrice.

Export to PDF

pm/prj2022/abirlica/din-runner.1653930005.txt.gz · Last modified: 2022/05/30 20:00 by radu.millio
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