Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2024:rpascale:maria.sfiraiala [2024/05/05 14:22]
maria.sfiraiala created
pm:prj2024:rpascale:maria.sfiraiala [2024/05/26 11:24] (current)
maria.sfiraiala [Software Design]
Line 12: Line 12:
 În cazul în care utilizatorul introduce parola greșit în număr de 3 ori pe parcursul a 5 minute, alarma declanșează un sunet prelung. În cazul în care utilizatorul introduce parola greșit în număr de 3 ori pe parcursul a 5 minute, alarma declanșează un sunet prelung.
 Dacă utilizatorul introduce parola greșit dar nu atinge limita de 3 încercări în 5 minute, pentru fiecare încercare eșuată, alarma declanșează un sunte scurt. Dacă utilizatorul introduce parola greșit dar nu atinge limita de 3 încercări în 5 minute, pentru fiecare încercare eșuată, alarma declanșează un sunte scurt.
-În cazul în care parola a fost introdusă corect, utilizatorul va fi întâmpinat cu mesajul sonor "​Congrats,​ you've entered the zone".+În cazul în care parola a fost introdusă corect, utilizatorul va fi întâmpinat cu o melodie interpretată de buzzer.
  
 Alarma va aștepta input doar dacă utilizatorul se află la un 1 metru față de dispozitivul protejat. Alarma va aștepta input doar dacă utilizatorul se află la un 1 metru față de dispozitivul protejat.
  
-<note tip> +{{pm:prj2024:rpascale:pm-initial-scheme2.png}}
-O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită de o descriere a acestora precum şi a modului în care interacţionează. +
- +
-Exemplu de schemă blochttp://www.robs-projects.com/​mp3proj/​newplayer.html +
-</​note>​+
  
 ===== Hardware Design ===== ===== Hardware Design =====
Line 26: Line 22:
 <note tip> <note tip>
 Lista pieselor folosite: Lista pieselor folosite:
-  * Arduino Uno +  * [[https://​www.optimusdigital.ro/​ro/​placi-avr/​4561-placa-de-dezvoltare-compatibila-cu-arduino-uno-r3-atmega328p-atmega16u2-cablu-50-cm.html?​search_query=arduino+uno&​results=138 | Arduino Uno]] 
-  * Speaker +  * [[https://​www.optimusdigital.ro/​ro/​audio-buzzere/​634-buzzer-pasiv-de-5-v.html?​search_query=buzzer&​results=62 | Buzzer pasiv 5V]] 
-  * LCD+  * [[https://​www.optimusdigital.ro/​ro/​optoelectronice-lcd-uri/​62-lcd-1602-cu-interfata-i2c-si-backlight-galben-verde.html?​search_query=lcd&​results=211 | LCD 16x2 I2C]] 
 +  * [[https://​www.optimusdigital.ro/​ro/​senzori-senzori-de-atingere/​470-tastatura-matriceala-4x4-cu-conector-pin-de-tip-mama.html?​search_query=keypad&​results=5 | Keypad 4x4]] 
 +  * [[https://​www.optimusdigital.ro/​ro/​fire-fire-mufate/​896-fir-pentru-baterie-de-9v.html?​search_query=Fir+pentru+Baterie+de+9V+cu+Mufa+DC&​results=8 | Fir pentru Baterie de 9V cu Mufa DC]] (nice to have)
   * Senzor de mișcare   * Senzor de mișcare
-  * SD card +  * Breadboard 
-  * Keypad+  * Fire
 </​note>​ </​note>​
 +
 +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:
 +
 +  * **Arduino Uno**: folosit ca putere de calcul și memorie în cazul buzzerului; conectat prin cablu USB AM la sursa de alimentare.
 +  * **Buzzer pasiv 5V**: folosit pentru a reda o melodie (salvată în memoria microcontrolerului) în cazul introducerii corecte a parolei sau atenționarea utilizatorului altfel; conectat la pinul 10 PWM (ales aleator dintre pinii de PWM) și la GND.
 +  * **LCD 16x2 I2C**: folosit pentru a reda pe prima linie mesajul "Type passwd",​ iar pe a doua linie parola introdusă în clar; conectat la GND și 5V pentru a fi alimentat și la pinii analogici A4 și A5 prin SDA și SCL [[https://​arduinogetstarted.com/​tutorials/​arduino-keypad-lcd | după cum specifică datasheet-ul]].
 +  * **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.
 +
 +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 =====
pm/prj2024/rpascale/maria.sfiraiala.1714908156.txt.gz · Last modified: 2024/05/05 14:22 by maria.sfiraiala
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