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 19:50]
andreea.simionescu [Descriere generală]
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 55: Line 60:
  
  
-<note tip> +Ca mediu de dezvoltare ​am folosit Arduino IDE. 
-Descrierea codului aplicaţiei (firmware):​ +Librariile pe care le-am folosit sunt: LiquidCrystal_I2C(acesta este folosit pentru a afisa diferite mesaje pe LCD), Keypad(Acesta l-am ales pentru tastatura matriceala 4x4). 
-  * mediu de dezvoltare (if any) (e.gAVR StudioCodeVisionAVR+Tot codul scris se afla in functiile setup si loopIn setup am initializat LCD ul si am setat diferiti pini ca fiind de intrare sau iesire(senzorul de atingere de inputiar celelalte gen buzzer, led-uri ca output). 
-  * librării şi surse 3rd-party (e.gProcyon AVRlib) + 
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi +Am o variabila globala countdown_on care atunci cand valoarea de input a senzorului de atingere ​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
-  ​* ​(etapa 3surse şi funcţii implementate + 
-</​note>​+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 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.
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
Line 70: 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.1716742205.txt.gz · Last modified: 2024/05/26 19:50 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