This shows you the differences between two versions of the page.
|
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]] | ||