Table of Contents

Impostor Detector

Mogodeanu Claudiu 331CC

Introducere

O reinterpretare a minigame-ului “Start Reactor” din popularul joc AmongUs (video).

Descriere generală

Ordinea etapelor in care functioneaza jocul este urmatoarea:

  1. Prin intermediul senzorului de distanta se detecteaza daca un User este in apropiere, caz in care se incepe jocul propriu-zis. Cat timp jocul este jucat, senzorul este dezactivat.
  2. Se genereaza o secventa aleatoare in care se aprind cateva LED-uri de pe matrice. (se poate repeta acest pas de maximum 5 ori)
  3. User-ul interactioneaza cu matricea de butoane si incearca sa reproduca secventa aparuta anterior:
    1. Daca greseste: se incheie jocul si se trimite un semnal la buzzer pentru a anunta ca s-a gasit Impostorul.
    2. Daca secventa este corecta: se reia pasul 2, doar ca secventele vor fi mai lungi.
  4. Secventele au fost completate cu succes, deci Arduino actioneaza servomotorul, care deschide cutia cu premiu.

SCHEMA BLOC:

Hardware Design

LISTA DE PIESE SI SCOPUL LOR:


SCHEMA HARDWARE
Mediu de dezvoltare: Fusion 360


ALEGEREA PINILOR


FORMA INITIALA SI DOVADA FUNCTIONARII PARTIALE

hardware1_cm.jpeg

FORMA FINALA

forma_finala_cm.jpeg

Software Design

Mediu de dezvoltare: VSCode cu PlatformIO, limbajul C/C++

Biblioteci externe folosite:

Proiectul propriu-zis: github link

Flow-ul principal poate fi reprezentat printr-un state machine destul de basic:
(notatiile pentru stari sunt aceleasi ca cele din fisierul States.h)

Descriere sumara a functiilor si a scheletului:

Laboratoare folosite:

Rezultate Obţinute

Video demonstrativ: Impostor Detector

Concluzii

Avand in vedere ca a fost prima mea interactiune (mai mult decat niste laboratoare cu schelet si placi deja existente) cu un Arduino, am invatat destul de multe lucruri interesante.
Tinand cont de lipsa de experienta, am decis din start sa nu ma indrept spre un proiect extrem de complex, desi nici acesta nu este laturalnic, astfel incat sa detin totusi control asupra lui si sa invat/folosesc cat mai multe elemente de baza.
Imi plac bibliotecile externe, dar am folosit si cateva registre
Nu sunt extrem de multumit de aspectul proiectului, mai ales de cable management, dar este totusi destul de compact si complet functional.

Download

Remember git for source code: github project
Cod, schematic si imagini: Arhiva

Sincer relevant este doar repo-ul de github. Restul sunt imagini care exista pe pagina de ocw deja.

Jurnal

Bibliografie/Resurse

1. Draw.io – pentru diagrame si scheme bloc
2. ATmega328P_Datasheet
3. Optimus Digital - doar un exemplu de piesa. Si restul au fost cumparate tot de aici
4. Laboratoare TSC - cum am invatat sa creez schematic si piese in Fusion 360
5. Modul-4x4-keypad-matrix-buttons - cod matrice butoane
6. Tutorial lcd - samples de cod LCD