Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2024:iotelea:andreea.simionescu [2024/05/26 21:22]
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 54: Line 59:
 ===== Software Design ===== ===== Software Design =====
  
- 
-<note tip> 
  
 Ca mediu de dezvoltare am folosit Arduino IDE. Ca mediu de dezvoltare am folosit Arduino IDE.
Line 63: Line 66:
 Am o variabila globala countdown_on care atunci cand valoarea de input a senzorului de atingere e pe low se face 1 si determina faptul ca a inceput procesul in care se va scurge timpul.Aceasta variabila in punctul in care se termina numaratoarea/​ se ajunge la mesajul final se va reseta la 0 ca sa se poata relua procesul de la inceput. Am o variabila globala countdown_on care atunci cand valoarea de input a senzorului de atingere e pe low se face 1 si determina faptul ca a inceput procesul in care se va scurge timpul.Aceasta variabila in punctul in care se termina numaratoarea/​ se ajunge la mesajul final se va reseta la 0 ca sa se poata relua procesul de la inceput.
  
-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 va desincroniza tot procesul ​de count down. 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 76: 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>​
  
pm/prj2024/iotelea/andreea.simionescu.1716747759.txt.gz · Last modified: 2024/05/26 21:22 by andreea.simionescu
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