This shows you the differences between two versions of the page.
pm:prj2024:rpascale:maria.sfiraiala [2024/05/14 20:08] maria.sfiraiala [Hardware Design] |
pm:prj2024:rpascale:maria.sfiraiala [2024/05/26 11:24] (current) maria.sfiraiala [Software Design] |
||
---|---|---|---|
Line 33: | Line 33: | ||
Schema folosită pentru asamblarea diferitelor module hardware este: | Schema folosită pentru asamblarea diferitelor module hardware este: | ||
+ | |||
+ | {{pm:prj2024:rpascale:pm-schema-electrica2.png?775|700}} | ||
După cum este evidențiat în schema electrică, rolul componentelor și elementele lor de conectare sunt: | După cum este evidențiat în schema electrică, rolul componentelor și elementele lor de conectare sunt: | ||
Line 41: | Line 43: | ||
* **Keypad 4x4**: folosit pentru a introduce caracterele parolei; conectat prin 4 linii la pinii digitali D9, D8, D7, D6 și prin 4 coloane la pinii digitali D5, D4, D3, D2, [[https://www.circuitbasics.com/how-to-set-up-a-keypad-on-an-arduino/ | după cum specifică datasheet-ul]], astfel un buton al tastaturii este identificat printr-un pin de coloană și unul de linie. | * **Keypad 4x4**: folosit pentru a introduce caracterele parolei; conectat prin 4 linii la pinii digitali D9, D8, D7, D6 și prin 4 coloane la pinii digitali D5, D4, D3, D2, [[https://www.circuitbasics.com/how-to-set-up-a-keypad-on-an-arduino/ | după cum specifică datasheet-ul]], astfel un buton al tastaturii este identificat printr-un pin de coloană și unul de linie. | ||
* **Senzor de mișcare PIR**: folosit pentru a determina dacă utilizatorul se regăsește la cel puțin 1m de alarmă, este setat în modul single trigger pentru a anunța o singură dată intrarea utilizatorului în aria de acțiune; conectat la GND și 5V pentru a fi alimentat și la pinul analogic A3 (ales aleator) pentru a trimite semnalul de pornire a alarmei în cazul apropierii utilizatorului. | * **Senzor de mișcare PIR**: folosit pentru a determina dacă utilizatorul se regăsește la cel puțin 1m de alarmă, este setat în modul single trigger pentru a anunța o singură dată intrarea utilizatorului în aria de acțiune; conectat la GND și 5V pentru a fi alimentat și la pinul analogic A3 (ales aleator) pentru a trimite semnalul de pornire a alarmei în cazul apropierii utilizatorului. | ||
+ | |||
+ | Proof of work: | ||
+ | |||
+ | {{pm:prj2024:rpascale:pm-proof-of-work.jpeg?775|700}} | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | **Mediu de dezvoltare**: VSCode PlatformIO | ||
+ | |||
+ | **Biblioteci folosite**: | ||
+ | * ''%%marcoschwartz/LiquidCrystal_I2C@^1.1.4%%'' - folosită pentru display-ul LCD care afișează parola | ||
+ | * ''%%chris--a/Keypad@^3.1.1%%'' - folosită pentru keypad-ul care introduce parola | ||
+ | * ''%%arduinogetstarted/ezBuzzer@^1.0.0%%'' - folosită pentru activarea buzzer-ului asincron (adică fără funcția ''%%delay()%%'') | ||
+ | |||
+ | **Funcții și structuri folosite**: | ||
+ | * ''%%activate_alarm()%%'' - activează alarma în urma input-ului primit de la senzorul de mișcare | ||
+ | * ''%%introduce_passwd()%%'' - primește input-ul de la keypad pe care îl afișează pe LCD; setează un flag legat de ce acțiune s-a ales: introducere parolă curentă sau update parolă | ||
+ | * ''%%check_passwd()%%'' - verifică parola în cazul în care s-a ales introducerea ei; în cazul în care se face update la parolă, se verifică parola veche și se face update la cea nouă | ||
+ | * ''%%play_melody()%%'' - emite melodia care anunță introducerea corectă a parolei | ||
+ | * ''%%play_alarm()%%'' - emite alarmă care anunță introducerea greșită a parolei | ||
- | <note tip> | ||
- | Descrierea codului aplicaţiei (firmware): | ||
- | * mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR) | ||
- | * librării şi surse 3rd-party (e.g. Procyon AVRlib) | ||
- | * algoritmi şi structuri pe care plănuiţi să le implementaţi | ||
- | * (etapa 3) surse şi funcţii implementate | ||
- | </note> | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== |