This shows you the differences between two versions of the page.
pm:prj2024:rpascale:maria.sfiraiala [2024/05/13 13:41] maria.sfiraiala [Hardware Design] |
pm:prj2024:rpascale:maria.sfiraiala [2024/05/26 11:24] (current) maria.sfiraiala [Software Design] |
||
---|---|---|---|
Line 16: | Line 16: | ||
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. | ||
- | {{pm:prj2024:rpascale:pm-initial-scheme.png}} | + | {{pm:prj2024:rpascale:pm-initial-scheme2.png}} |
===== Hardware Design ===== | ===== Hardware Design ===== | ||
Line 22: | 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]] |
- | * Buzzer | + | * [[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 | ||
- | * Keypad | + | * Breadboard |
+ | * 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 ===== |