This shows you the differences between two versions of the page.
|
pm:prj2021:apredescu:door_knock_locker [2021/05/23 11:11] cosmin.pascu1902 [Descriere Generala] |
pm:prj2021:apredescu:door_knock_locker [2021/05/28 13:21] (current) cosmin.pascu1902 [Download] |
||
|---|---|---|---|
| Line 14: | Line 14: | ||
| ===== 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]] | ||