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/25 19:50]
cosmin.pascu1902 [Bibliografie/Resurse]
pm:prj2021:apredescu:door_knock_locker [2021/05/28 13:21] (current)
cosmin.pascu1902 [Download]
Line 1: Line 1:
 ====== Door Knock Locker ====== ====== Door Knock Locker ======
 +Autor: Pascu Cosmin
  
 ===== Introducere ===== ===== Introducere =====
Line 9: Line 10:
  
 ===== Descriere Generala ===== ===== Descriere Generala =====
 +{{ :​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, 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 
-  - Speaker ​Piezo+  - Buton 
 +  - Senzor ​Piezo
   - Leduri RGB   - Leduri RGB
   - Tranzistor   - Tranzistor
Line 22: 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()//​.
  
-===== Rezultate Obtinute =====+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 =====
 +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 39: Line 54:
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
 +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.1619369400.txt.gz · Last modified: 2021/04/25 19:50 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