Joc de lumini si sunete securizat

Introducere

Sistemul este format din 2 matrici de leduri, un buzzer si un senzor de distanta. Cand userul va trece mana pe deasupra senzorului efectul luminii si sunetul se vor schimba (vor fi mai multe efecte). Pentru a putea accesa sistemul, userul va trebui intai sa introduca un cod de acces pe un numpad, daca se introduce codul gresit, se va activa o alarma (buzzerul va scoate un sunet de alarma) ce va fi activa pana cand se va introduce un alt cod pentru a o opri.

Descriere generală

Pentru inceput aplicatia va cere un cod (pus de mine 2134), care va activa sunetul si luminile. Daca este introdus gresit buzzerul va scoate un sunet de alarma pana cand se introduce codul de dezactivare al alarmei (tot de mine pus 4321). N-am gasit sa cumpar numpad full cu toate cifrele, asa ca m-am folosit de unul 1×4, doar cu cifrele 1,2,3,4. Dupa ce a fost dezactivata alarma, se va cere din nou codul de acces. Cand codul de acces introdus este corect, va porni muzica si jocul de lumini.

Datorita memoriei scazute alocata pentru variabile, am reusit sa pun doar 3 melodii ca sa ramana implementarea stabila, daca puneam mai multe apareau erori la buzzer si la matrici. Melodiile sunt fragmente din: Game of Thrones theme song, Never Gonna Give You Up si Pink Panther theme song. Pe matrici apar diverse forme prestabilite random, astfel: pe una apar forme atunci cand buzzerul se activeaza pe o nota, iar cealalta cand nu e nicio nota, deci matricile nu vor lumina in acelasi timp, ci intermitent. Melodia se poate schimba activand senzorul ultrasonic, ceea ce se face de la o distanta de maxim 5 centimetri. Potentiometrul are rolul de a accelera sau decelera melodia.

Schema Bloc

Hardware Design

Piese necesare:

  • Arduino Uno
  • breadboard
  • fire
  • 2 x matrice de leduri
  • buzzer
  • senzor de distanta
  • tastatura matriceala
  • potentiometru
  • rezistenta

Schema Electrica

Software Design

Tool-uri folosite pentru realizarea proiectului:

  • Arduino IDE
  • Eagle
  • Google Draw (pentru schema bloc)

Biblioteci folosite:

  • LedControl, pentru folosirea matricelor de leduri

Implementare:

Pentru inceput am conectat numpadul, ce are 4 pini digitali, cate unul pentru fiecare cifra si un pin de GND.
Pentru a putea introduce un cod, citesc cifre de la numpad, pana cand am obtinut 4 cifre, apoi compar inputul
cu codul deja salvat, care activeaza celelalte componente (care nu pot fi folosite pana cand nu se introduce codul).
Daca se introduce codul gresit, se intra in modul alarma, unde se asteapta introducerea codului ce
dezactiveaza alarma, iar buzzerul se activeaza pe un sunet de alarma. Codul de alarma se introduce repetat
pana cand se introduce codul corect.
Cand s-a introdus codul corect, buzzerul se opreste si se introduce din nou codul de acces.

Cand s-a introdus codul de acces incepe prima melodie (Game of Thrones) si matricile incep sa lumineze.
Din potentiometru se poate regla, rotind, viteza melodiei, in functie de tensiunea calculata (valorile
se mapeaza de la 0, 1023 la -0.5, 0.5, se scade din 1 aceasta valoare, pentru a regla viteza intre 0.5 si 1.5).
Senzorul ultrasonic se activeaza cand detecteaza un obiect la mai putin de 5 cm si itereaza prin melodii
(am ales o distanta asa mica pentru a limita schimbarea melodiei neintentionat).
Matricile de led-uri folosesc functii din biblioteca LedControl:
  * setIntensity, pentru setarea intensitatii ledurilor
  * shutdown, pentru activarea matricilor
  * clearDisplay, pentru a stinge toate luminile
  * setRow, pentru a aprinde anumiti biti pe o linie

Rezultate Obţinute

Concluzii

A fost destul de interesanta implementarea pe cont propriu a unui proiect mai complex, am invatat destul de multe. Pe parcurs am intampinat ceva dificultati: am cumparat matrici fara modul, pe care nu le-am putut folosi si a trebuit sa cumpar altele, lucru care putea fi evitat daca ceream un sfat inainte :)). O alta problema pe care am intampinat-o a fost memoria redusa a placutiei arduino Uno, care a limitat numarul de melodii si lungimea acestora, intrucat aplicatia devenea instabila.

Download

Jurnal

21.04.2022 - Am creat pagina wiki si am adaugat introducere, schema bloc si echipamentul necesar pentru proiect.

25.04.2022 - Decizia privind ce piese voi folosi si comandarea acestora

13.05.2022 - Inceperea implementarii proiectului

23.05.2022 - Finalizarea unui produs final (aplicatie functionala)

24.05.2022 - 27.05.2022 - Mici retusuri + explicarea codului

27.05.2022 - Finalizarea paginii de wiki

Bibliografie/Resurse

pm/prj2022/arosca/jocdeluminisisunetesecurizat.txt · Last modified: 2022/05/27 22:08 by bogdan_elvis.ghitan
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