Differences

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

Link to this comparison view

pm:prj2021:apredescu:door_knock_locker [2021/04/29 11:56]
cosmin.pascu1902
pm:prj2021:apredescu:door_knock_locker [2021/05/28 13:21] (current)
cosmin.pascu1902 [Download]
Line 10: Line 10:
  
 ===== Descriere Generala ===== ===== Descriere Generala =====
-{{ :​pm:​prj2021:​apredescu:​schema_bloc_door_locker.png |{{:​pm:​prj2021:​apredescu:​schema_bloc_door_locker.png|}} +{{ :​pm:​prj2021:​apredescu:​schema_bloc_door_locker_2.png |}} 
-  * Senzorul Piezo receptioneaza sunetele batailor, transmite datele catre Arduino, acolo se va analiza pattern-ul. In cazul in care pattern-ul este corect, va fi activat servomotorul care va debloca incuietoarea ​si se va aprinde becul verde. In cazul in care pattern-ul nu este corect si va aprinde doar ledul rosu.+  * Senzorul Piezo receptioneaza sunetele batailor, transmite datele catre Arduino, acolo se va analiza pattern-ul. In cazul in care pattern-ul este corect, ​se va deschide incuitoarea electrica ​si se va aprinde becul verde. In cazul in care pattern-ul nu este corect si va aprinde doar ledul rosu.
  
 ===== Hardware Design ===== ===== Hardware Design =====
 +Schema electrica:
 +{{ :​pm:​prj2021:​apredescu:​pascu_cosmin_331cc_circuit_electric_2.jpg |}}
 +
 +Lista piese:
  
   - Arduino UNO   - Arduino UNO
-  - Servomotor+  - Incuietoare electrica
   - Buton   - Buton
-  - Speaker ​Piezo+  - Senzor ​Piezo
   - Leduri RGB   - Leduri RGB
   - Tranzistor   - Tranzistor
Line 25: Line 29:
   - Baterie   - Baterie
   - Breadboard   - Breadboard
 +  - Releu
  
 ===== Software Design ===== ===== Software Design =====
 +Pentru implementare am folosit pentru input un pin analog(pentru senzorul Piezo), un pin digital pentru butonul de inregistrare si, iar pentru output-uri am folosit 3 pini digitali (1-led Rosu, 1-led Verde, 1-pentru incuietoare).
  
 +Ideea principala a implementarii consta in compararea a doi vectori ce contin intervalele de timp intre batai. In functia de //loop()// ascult pentru o bataie (o vibratie care depaseste o sensibilitate selectata) si verific daca este apasat butonul de inregistrare. Daca a fost sesizata o bataie, atunci apelez functia ce inregistreaza bataile //​listenToSecretKnock()//​.
  
 +In functia //​listenToSecretKnock()//​ salvez noile batai si in functie daca este apasat butonul de inregistrare sau nu, fie verific daca bataile respecta pattern-ul de deblocare, fie actualizez noul pattern. Pentru fiecare tip de actiune aprind ledurile intr-un anumit mod pentru a oferi si un feedback vizual.
 +
 +Pentru partea de comparare intre cei 2 vectori voi face o diferenta in modul intre valori si de fiecare data verific cu o constanta pentru a putea accepta micile diferente si adun aceste dieferente intr-o variabila pentru ca la final suma erorilor sa nu depaseasca o anumita valoare(care este si ea o constanta). Cele 2 constante precizate anterior pot fi modificate in cod ptr a avea o toleranta mai mica sau mai mare la erori.
 ===== Rezultate Obtinute ===== ===== Rezultate Obtinute =====
 +In final proiectul indeplineste functiile propuse (deblocarea incuietorii la recunoasterea unui pattern si posibilitatea de inregistrare unui nou pattern).
  
 +Link catre videoclip: [[https://​www.youtube.com/​watch?​v=EKXjxHanSCI]]
 ===== Concluzii ===== ===== Concluzii =====
  
  
 ===== Download ===== ===== Download =====
 +{{:​pm:​prj2021:​apredescu:​door_knock_locker_pascu_cosmin_331cc.zip|}}
  
  
Line 43: Line 55:
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
 https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​apredescu/​door_knock_locker?​do=export_pdf https://​ocw.cs.pub.ro/​courses/​pm/​prj2021/​apredescu/​door_knock_locker?​do=export_pdf
 +
 +[[https://​www.youtube.com/​watch?​v=zE5PGeh2K9k]]
pm/prj2021/apredescu/door_knock_locker.1619686572.txt.gz · Last modified: 2021/04/29 11:56 by cosmin.pascu1902
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