Interactive Infinity Mirror

Student: Ștefania Novac

Grupa: 334CC

Introducere

Interactive Infinity Mirror este un obiect decorativ care produce iluzia unei adâncimi infinite într-un obiect, cu ajutorul a două oglinzi plasate una în fața celeilalte și a unei benzi de LED-uri. Pornind de la această idee, proiectul implementează și două funcționalități interactive pentru a oferi un element de divertisment utilizatorului.

În starea neinteractivă, obiectul poate fi folosit ca o lampă decorativă în locuința personală, care poate fi reglată în funcție de preferințe. Astfel, există mai multe pattern-uri prestabilite pentru aprinderea LED-urilor și pot fi ajustate culorile lor.

În starea interactivă, obiectul poate fi folosit pentru a juca doua jocuri arcade sau pentru a reacționa la muzica din jur. Primul joc presupune apăsarea unui buton în momentul în care un indicator luminos se află pe o anumită poziție în cercul format de LED-uri. Al doilea joc presupune ghidarea indicatorului către LED-ul verde și evitarea LED-ului roșu, folosind butonul pentru a schimba direcția de deplasare. Cu cât nivelul de dificultate este mai mare, cu atât indicatorul luminos se va muta mai repede. În plus, jocurile sunt însoțite de diverse efecte sonore.

Funcția de interacțiune cu sunetul se referă la faptul că banda de LED-uri poate reacționa la muzică pentru a crea un ambient de petrecere sau o atmosferă mai animată.

Descriere generală

Schemă bloc

Arduino UNO este componenta centrală a proiectului, responsabilă pentru coordonarea tuturor componentelor din circuit.

Senzorul de sunet detectează nivelurile de sunet și trimite semnale către Arduino, care poate utiliza aceste semnale pentru a controla banda de LED-uri astfel încât să reacționeze la sunetul muzicii.

Fotorezistorul măsoară intensitatea luminii din mediul ambiant și trimite semnale către Arduino. Acesta este utilizat pentru a ajusta intensitatea LED-urilor în funcție de nivelul de lumină din încăpere. Potențiometrele sunt utilizate pentru a regla culorile LED-urilor.

Butoanele sunt folosite pentru a selecta modul de funcționare și pentru a activa jocurile. Sunt conectate direct la Arduino și trimit semnale atunci când sunt apăsate. Buzzer-ul redă efecte sonore în timpul jocului.

Hardware Design

Listă de piese

  • Arduino UNO
  • Bandă LED adresabilă WS2812
  • Senzor de sunet
  • Fotorezistor
  • Buzzer
  • Potențiometre
  • Butoane

Software Design

Am folosit Arduino IDE pentru dezvoltarea codului proiectului și biblioteca Adafruit NeoPixel pentru programarea benzii de LED-uri.

Proiectul se poate afla în mai multe stări în funcție de modul de funcționare, de pattern-ul ales sau de jocul curent.

Apăsarea butonului folosit în cadrul jocurilor se detectează cu ajutorul întreruperilor și are semnificații diferite în funcție de joc. Buzzer-ul poate reda două efecte sonore, la victorie și la eșec, iar la 3 câștiguri consecutive, LED-urile se iluminează într-un model “rainbow”. De asemenea, folosit am un timer de pe Arduino pentru a se reveni la un pattern de aprindere a LED-urilor în cazul inactivității în joc.

Datele transmise de senzorul de sunet, potențiometre si fotorezistor sunt citite cu ajutorul funcției analogRead(), după care se mapează la niște valori utile pentru a fi folosite în continuare. Luminozitatea LED-urilor se reglează la fiecare intrare în loop(), iar valorile sunetului înregistrat și a culorilor se folosesc în stările corespunzătoare.

Rezultate Obţinute

Concluzii

Proiectul este complet funcțional și am reușit să implementez toate funcționalitățile pe care le-am propus la început. În plus, am adăugat al doilea joc dupa începerea realizării proiectului pentru că mi-a plăcut cel mai mult acest mod de funcționare.

Funcția de interacțiune cu sunetul ar putea fi îmbunătățită prin folosirea unui senzor mai calitativ și prin experimentarea cu modele de iluminare mai complexe.

Download

Cod sursă:

infinity_mirror.zip

Bibliografie/Resurse

pm/prj2023/danield/interactive-infinity-mirror.txt · Last modified: 2023/05/29 15:11 by stefania.novac
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