This shows you the differences between two versions of the page.
pm:prj2024:iotelea:andreea.simionescu [2024/05/26 21:26] andreea.simionescu [Software Design] |
pm:prj2024:iotelea:andreea.simionescu [2024/05/26 22:49] (current) andreea.simionescu [Bibliografie/Resurse] |
||
---|---|---|---|
Line 17: | Line 17: | ||
Acesta este un proiect în care va exista un senzor de atingere, care dacă este declanșat, va porni un buzzer, respectiv pe LCD va aparea un anumit timp care se va scurge pana cand este introdusa parola la tastatura.Din acest punct, scopul persoanei care a pus degetul pe senzorul de atingere e de a găsi parola corectă pe care trebuie să o introducă la o tastatură. Dacă parola este corectă se va aprinde un led verde, LCD-ul va arăta un mesaj de victorie, iar buzzer-ul se va oprii. Dacă, în schimb, parola este incorectă, LCD-ul va afișa un mesaj care sa semnifice ca teoretic s-a declansat bomba, iar lumina roșie se va aprinde și buzzer-ul se va oprii. | Acesta este un proiect în care va exista un senzor de atingere, care dacă este declanșat, va porni un buzzer, respectiv pe LCD va aparea un anumit timp care se va scurge pana cand este introdusa parola la tastatura.Din acest punct, scopul persoanei care a pus degetul pe senzorul de atingere e de a găsi parola corectă pe care trebuie să o introducă la o tastatură. Dacă parola este corectă se va aprinde un led verde, LCD-ul va arăta un mesaj de victorie, iar buzzer-ul se va oprii. Dacă, în schimb, parola este incorectă, LCD-ul va afișa un mesaj care sa semnifice ca teoretic s-a declansat bomba, iar lumina roșie se va aprinde și buzzer-ul se va oprii. | ||
+ | |||
+ | |||
+ | {{:pm:prj2024:iotelea:schema_pm_andreea_simi.png?700x470|}} | ||
Functionalitate: | Functionalitate: | ||
Line 27: | Line 30: | ||
Dupa fiecare scenariu, daca trec cateva secunde se va relua starea initiala a proiectului, acela unde se asteapta atingerea senzorului | Dupa fiecare scenariu, daca trec cateva secunde se va relua starea initiala a proiectului, acela unde se asteapta atingerea senzorului | ||
+ | Urmatoarea poza contine niste indicii legate de parola corecta. | ||
+ | -hint: ce se gaseste se ia de la stanga la dreapta | ||
- | {{:pm:prj2024:iotelea:schema_pm_andreea_simi.png?700x470|}} | + | {{:pm:prj2024:iotelea:1.png?450|}} |
===== Hardware Design ===== | ===== Hardware Design ===== | ||
Line 63: | Line 68: | ||
Initial ma gandeam atunci cand scadeam din timp sa folosesc delay() dar in punctul in care voiam sa fac si buzzer-ul sa sune din 2 in 2 secunde tot cu ajutorul delay-ului mi-am dat seama ca nu ar fi prea eficient si ca o sa se stranga prea mult timp de inactivitate. Asa ca pentru scurgerea timpului si pentru a seta buzzer-ul sa sune din 2 in 2 secunde si pentru atunci cand se ajunge intr-o stare finala si doresc dupa 4 secunde sa se reseteze tot joculetul am facut operatii cu functia millis(). | Initial ma gandeam atunci cand scadeam din timp sa folosesc delay() dar in punctul in care voiam sa fac si buzzer-ul sa sune din 2 in 2 secunde tot cu ajutorul delay-ului mi-am dat seama ca nu ar fi prea eficient si ca o sa se stranga prea mult timp de inactivitate. Asa ca pentru scurgerea timpului si pentru a seta buzzer-ul sa sune din 2 in 2 secunde si pentru atunci cand se ajunge intr-o stare finala si doresc dupa 4 secunde sa se reseteze tot joculetul am facut operatii cu functia millis(). | ||
- | Pentru a face sa sune sau sa se opreasca buzzer-ul am folosit functiile noTone si tone, pentru a aprinde sau a stringe ledurile am folosit digitalWrite. | + | Pentru a face sa sune sau sa se opreasca buzzer-ul am folosit functiile noTone si tone, pentru a aprinde sau a stinge ledurile am folosit digitalWrite. |
Atunci cand numaratoarea inversa este pornita, salvez intr-un string daca este apasata vreo tasta de la tastatura, iar daca timpul nu s-a scurs si string-ul corespunde cu parola setata de lungime 3 atunci variabila ok se seteaza pe 1, buzzer-ul se opreste si este setat mesajul de victorie si beculetul verde este aprins, dupa 4 secunde se va relua jocul si se va reseta tot. Daca parola este gresita variabila ok va devenii ok = 2, se va inchide buzzer-ul, va aparea un mesaj de esec si se va aprinde becul rosu, dupa 4 secunde se va relua jocul. | Atunci cand numaratoarea inversa este pornita, salvez intr-un string daca este apasata vreo tasta de la tastatura, iar daca timpul nu s-a scurs si string-ul corespunde cu parola setata de lungime 3 atunci variabila ok se seteaza pe 1, buzzer-ul se opreste si este setat mesajul de victorie si beculetul verde este aprins, dupa 4 secunde se va relua jocul si se va reseta tot. Daca parola este gresita variabila ok va devenii ok = 2, se va inchide buzzer-ul, va aparea un mesaj de esec si se va aprinde becul rosu, dupa 4 secunde se va relua jocul. | ||
Line 74: | Line 79: | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | |||
+ | Initial, cand m-am decis pana la urma ce proiect vreau sa fac, mi-a fost putin teama ca n-o sa ma descurc, avand in vedere ca n-am mai facut niciodata un proiect hardware. Dar, in final, dupa ce m-am documentat de cum functioneaza piesele pe care le-am ales si cum pot sa le conectez ca sa iasa un produs functionabil si dupa ce am pus toate cunostiintele in aplicare hardware si software obtinute si din cadrul laboratoarelor, mi-am dat seama ca n-a fost asa rau precum credeam si chiar a fost un proces interesant. | ||
+ | |||
+ | Pe parcursul dezvoltarii proiectului, am intampinat niste mici probleme cu LCD-ul, deoarece nu intelegeam de ce il detecteaza si mi arata adresa, dar nu-mi afisa nimic pe ecran. Rezolvarea a fost sa dau cate putin din potentiometrul din spate :)). In rest ce probleme am intampinat la nivel software am folosit Serial Monitor-ul unde am printat diferite chestii ca sa-mi dau seama daca functioneaza tot cum trebuie. | ||
===== Download ===== | ===== Download ===== | ||
- | <note warning> | + | In acest zip exista codul in Arduino IDE si un video cu proiectul. |
- | O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). | + | |
- | Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:pm:prj20??:c?** sau **:pm:prj20??:c?:nume_student** (dacă este cazul). **Exemplu:** Dumitru Alin, 331CC -> **:pm:prj2009:cc:dumitru_alin**. | + | {{:pm:prj2024:iotelea:safefusesimulator_zip.zip|}} |
- | </note> | + | |
===== Jurnal ===== | ===== Jurnal ===== | ||
- | <note tip> | + | * 26.04.2024 : Alegere tema proiect |
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | * 05.05.2024: Crearea paginii pentru proiect si completarea campului Introducere, Descriere si mentionarea pieselor utilizate. |
- | </note> | + | * 17.05.2024-18.05.2024: Implementarea Hardware a proiectului si introducera in document a pozelor cu schema proiectului si cu rezultatul fizic |
+ | * 23.05.2024: Implementarea Software a proiectului | ||
+ | * 26.05.2024: Completare a site-ului | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
<note> | <note> | ||
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | * https://www.geeksforgeeks.org/how-to-interface-i2c-lcd-display-with-arduino/ |
+ | * https://cleste.ro/modul-senzor-atingere.html - descrierea produsului | ||
+ | * https://www.circuitbasics.com/how-to-set-up-a-keypad-on-an-arduino/ | ||
+ | * https://www.arduino.cc/reference/en/language/variables/data-types/stringobject/ | ||
+ | * https://forum.arduino.cc/t/using-millis-for-timing-a-beginners-guide/483573 | ||
</note> | </note> | ||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||