Autor: Pascu Cosmin
Lista piese:
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.
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