Differences

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

Link to this comparison view

pm:prj2023:apredescu:seifdestept [2023/05/29 01:59]
isabela_maria.avram
pm:prj2023:apredescu:seifdestept [2023/05/30 00:30] (current)
isabela_maria.avram
Line 11: Line 11:
  
 ===== Descriere generală ===== ===== Descriere generală =====
-Proiectul este un seif care poate fi deschis printr-un cifru (stabilit inițial în interiorul codului, deci este ceva prestabilit). Dacă cifrul corespunde parolei stabilite inițial, atunci este acționat servo motorul care deschide (printr-un zăvor) ușa seifului. În cazul în care cifrul introdus nu corespunde celui corect, atunci ușa va rămâne închisă. Totodată, la începutul programului,​ ușa se va închide automat. Se vor afișa mesaje corespunzătoare fiecărei etape în care se află seiful.+Proiectul este un seif care poate fi deschis printr-un cifru (stabilit inițial în interiorul codului, deci este ceva prestabilit). Dacă cifrul corespunde parolei stabilite inițial, atunci este acționat servo motorul care deschide (printr-un zăvor) ușa seifului. În cazul în care cifrul introdus nu corespunde celui corect, atunci ușa va rămâne închisă. Totodată, la începutul programului,​ ușa se va închide automat. Se vor afișa mesaje corespunzătoare fiecărei etape în care se află seiful. Seiful va avea 3 melodii încorporate,​ acestea fiind redate la începutul fiecărei acțiuni importante din cadrul programului (pornire seif, deschidere ușă, cod greșit).
  
-{{:​pm:​prj2023:​apredescu:​schema_bloc_pm.png?700|}}+{{ :​pm:​prj2023:​apredescu:​seif_destept_schema_bloc.png?700 |}}
  
 ===== Hardware Design ===== ===== Hardware Design =====
Line 23: Line 23:
   * Ecran LCD I2C   * Ecran LCD I2C
   * Fire   * Fire
 +  * Buzzer Pasiv
 +  * Rezistență 100Ω
 +  * Breadboard
  
 2. Schema electrică: 2. Schema electrică:
  
-{{:​pm:​prj2023:​apredescu:​pm_proiect.png?700|}}+{{ :​pm:​prj2023:​apredescu:​seif_destept_schema_electrica.png?900 |}}
  
 ===== Software Design ===== ===== Software Design =====
Line 36: Line 39:
   * LiquidCrystal_I2C.h   * LiquidCrystal_I2C.h
   * Servo.h   * Servo.h
 +  * pitches.h
  
 Descrierea funcționalității codului: Descrierea funcționalității codului:
   * Prima etapă a fost să declar toți parametrii de care am avut nevoie.   * Prima etapă a fost să declar toți parametrii de care am avut nevoie.
   * Funcționalitatea dată seifului este practic de a se deschide când este introdusă parola corectă, altfel acesta este menținut închis. Parolele (cea setată = corectă și cea introdusă de la tastatură) sunt verificate caracter cu caracter. Programul nu acceptă mai mult de 4 caractere pentru parolă, fapt pentru care vor fi luate în considerare doar primele 4 caractere introduse de la tastatură.   * Funcționalitatea dată seifului este practic de a se deschide când este introdusă parola corectă, altfel acesta este menținut închis. Parolele (cea setată = corectă și cea introdusă de la tastatură) sunt verificate caracter cu caracter. Programul nu acceptă mai mult de 4 caractere pentru parolă, fapt pentru care vor fi luate în considerare doar primele 4 caractere introduse de la tastatură.
-  * Sistemul de închidere este format dintr-un servo motor, un zăvor metalic și o sârmă, astfel că modul în care funcționează acesta depinde în totalitate de corectitudinea parolei introduse, dacă este corectă, servo motorul își va schima poziția în "​unlockPos",​ iar dacă este incorectă, servo motorul va rămâne în poziția "​lockPos"​. Din poziția "​unlockPos",​ utilizatorul poate alege să închidă seiful, servo motorul schimbându-și poziția în "​lockPos"​.+  * Sistemul de închidere este format dintr-un servo motor, un zăvor metalic și o sârmă, astfel că modul în care funcționează acesta depinde în totalitate de corectitudinea parolei introduse, dacă este corectă, servo motorul își va schima poziția în "​unlockPos",​ iar dacă este incorectă, servo motorul va rămâne în poziția "​lockPos"​. Din poziția "​unlockPos",​ utilizatorul poate alege să închidă seiful ​apăsând pe butonul cu caracterul "#"​astfel ​servo motorul schimbându-și poziția în "​lockPos"​. Procesul se poate relua astfel la nesfârșit. 
 + 
 +Funcțiile implementate în cod sunt următoarele:​ 
 +  * **void setup()**:​ 
 +    * se configurează pinul buzzer-ului;​ 
 +    * se închide ușa (servo motorul va trece în poziția "​lockPos"​);​ 
 +    * se inițializează ecranul LCD și se afișează un mesaj de start; 
 +    * se redă una dintre melodiile definite; 
 +  * **void loop()**: 
 +    * aici se verifică starea ușii, dacă este deschisă (caz în care se verifică dacă se vrea închiderea ușii cu ajutorul tastei "#",​ dacă este apăsată, atunci se va trece servo motorul în poziția "​lockPos"​) sau nu (se va ține ușa deschisă cu ajutorul funcției **void Open()**);​ 
 +  * **void clearData()**:​ 
 +    * această funcție șterge parola introdusă anterior de utilizator pentru a putea avea buffer-ul gol la următoarea introducere noi parole; 
 +  * **void ServoOpen()**:​ 
 +    * această funcție aduce servo motorul în poziția "​unlockPos",​ ceea ce înseamnă că ușa se va deschide; 
 +  * **void ServoClose()**:​ 
 +    * această funcție aduce servo motorul în poziția "​lockPos",​ ceea ce înseamnă că ușa se va închide; 
 +  * **void Open()**: 
 +    * în acestă funcție se așteaptă introducerea unei parole de acces la seif; 
 +    * când o tastă este apăsată, aceasta va fi reținută într-un string care, după introducerea celor 4 caractere necesare, va fi comparat cu parola setată implicit în program (care este și cea corectă);​ 
 +    * dacă cele două stringuri sunt egale ca valoare, atunci se va apela funcția amintită anterior **void ServoOpen()**,​ altfel doar se va modifica valoarea variabilei care reține dacă ușa este încuiată sau nu (noua valoare va fi 1, însemnând că ușa este închisă);​ 
 +    * la final se va apela funcția **void clearData()** amintită mai sus; 
 +  * **void lionSleepsTonight(),​ void nokia(), void pinkPanther()**:​ 
 +    * aceste funcții au fost preluate și folosite pentru a reda melodii în cadrul programului,​ sursele vor fi adăugate la final în Bibliografie.
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-Care au fost rezultatele obţinute în urma realizării proiectului ​vostru.+**Link către un mic demo al proiectului: https://​youtu.be/​Zww7OANcRqY** 
 + 
 +{{:​pm:​prj2023:​apredescu:​seif3.jpeg?​200 |}}  {{:​pm:​prj2023:​apredescu:​seif4.jpeg?​200 |}}  {{:​pm:​prj2023:​apredescu:​seif5.jpeg?​200 |}}
  
 ===== Concluzii ===== ===== Concluzii =====
 +A fost destul de interesant să lucrez la acest proiect, deși cred că una dintre cele mai mari provocări a fost construirea efectivă a seifului. Mi-am dorit să existe și o notă de personalitate,​ așa că am adăugat și melodiile pentru puțină atmosferă drăguță =).
  
 ===== Download ===== ===== Download =====
  
-<​note ​warning+<​note>​ 
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului:​ surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). +{{:pm:prj2023:apredescu:proiectpm_avramisabelamaria.zip|}}
- +
-Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:​pm:​prj20??:​c?​** sau **:​pm:​prj20??:​c?:​nume_student** (dacă este cazul). **Exemplu:​** Dumitru Alin, 331CC -> **:pm:prj2009:cc:dumitru_alin**.+
 </​note>​ </​note>​
  
Line 59: Line 86:
  
 <note tip> <note tip>
 +  * 29.05.2023: Definitivare documentație OCW
 +  * 28.05.2023: Finalizare parte software
   * 21.05.2023: Implementare hardware + schemă bloc + schemă electrică   * 21.05.2023: Implementare hardware + schemă bloc + schemă electrică
   * 01.05.2023: Adăugare informații pe pagină   * 01.05.2023: Adăugare informații pe pagină
Line 65: Line 94:
  
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
 +1. Resurse software:
 +   * https://​github.com/​hibit-dev/​buzzer/​tree/​master/​src
 +   * https://​forum.arduino.cc/​
 +   * https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab1-2022
 +   * https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab3-2023
 +   * https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab6-2022
  
-<​note>​ +2. Resurse hardware: 
-Listă cu documente, datasheet-uri,​ resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. +   ​https://www.sigmanortec.ro/
-</note>+
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
pm/prj2023/apredescu/seifdestept.1685314750.txt.gz · Last modified: 2023/05/29 01:59 by isabela_maria.avram
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