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.
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.
Tool-uri folosite pentru realizarea proiectului:
Biblioteci folosite:
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
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.
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
https://github.com/robsoncouto/arduino-songs/tree/master/gameofthrones
https://github.com/robsoncouto/arduino-songs/tree/master/pinkpanther
https://github.com/robsoncouto/arduino-songs/tree/master/nevergonnagiveyouup
https://ocw.cs.pub.ro/courses/pm