Differences

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

Link to this comparison view

pm:prj2023:alexau:seiffe [2023/05/23 17:04]
andrei.ciobanu2508 Add silencing feature
pm:prj2023:alexau:seiffe [2023/05/28 12:58] (current)
andrei.ciobanu2508 [Bibliografie/Resurse] Add content
Line 71: Line 71:
  
 ===== Software Design ===== ===== Software Design =====
 +==== Biblioteci utilizate ====
 +  * [[https://​reference.arduino.cc/​reference/​en/​libraries/​liquidcrystal-i2c/​|LiquidCrystal I2C]]
 +  * [[https://​reference.arduino.cc/​reference/​en/​libraries/​mfrc522/​|MFRC522]]
 +  * [[https://​www.arduino.cc/​reference/​en/​language/​functions/​communication/​spi/​|SPI]]
 +  * [[https://​www.arduino.cc/​reference/​en/​libraries/​servo/​|Servo]]
  
 +==== Detalii implementare ====
  
-<note tip> +=== Setup === 
-Descrierea codului aplicaţiei ​(firmware): +  * Se configurează și activează timerul pentru alarmă ​(Timer1 - COMPB//​[configureAlarmTimer() + enableAlarmTimer()]//​ 
-  * mediu de dezvoltare ​(if any) (e.g. AVR Studio, CodeVisionAVR+  * Se configurează întreruperea externă INT0 pentru funcția ​de oprire a alarmei la apăsarea de buton //​[configureSilencer()]// 
-  * librării şi surse 3rd-party (e.gProcyon AVRlib) +  * Se configurează LCD-ul 
-  * algoritmi şi structuri ​pe care plănuiţi să le implementaţi +  * Se configurează pinii prin setarea de registre de I/O 
-  * (etapa 3) surse şi funcţii implementate +  * Se inițializează biblioteca SPI, respectiv cea pentru MFRC522 
-</note>+  * Se configurează servomotorul 
 +  * Se afișează mesajul pentru starea __blocat__ a seifului 
 + 
 +=== Loop === 
 +  * Pentru fiecare iterație, se calculează distanța prin intermediul datelor măsurate de senzorul ultrasonic de distanță
 +  * Dacă seiful se află în starea __blocat__, iar distanța calculată este mai mică decât un threshold //​[LOCK_DISTANCE]//,​ atunci se încearcă citirea de card de acces. Dacă se citește un card, iar acesta nu face parte din lista de carduri autorizate, atunci ​pe LCD se va afișa un mesaj de refuz //​[printDeniedMessage()]//​ timp de trei secunde. Altfel, dacă respectivul card face parte din lista de carduri autorizate, seiful va trece în starea __deblocat__ //​[unlockSeiffe()]//​ (șse afișează mesajul corespunzător pe LCD //​[printUnlockedMessage()]//​). 
 +  * Dacă seiful se află în starea __deblocat__,​ se așteaptă ca ușa să ajungă să fie deschisă îndeajuns //​[OPEN_DISTANCE]//,​ inainte de a trece în starea de pregătire a încuierii //[canLock == true]//. Odată ce ușa este închisă, aceasta trebuie să rămână închisă pentru un număr de iterații de procesare a distanței //​[LOCK_THRESHOLD]//​ pentru a putea fi într-adevăr considerată închisă - moment în care seiful trece înapoi în starea __blocat__. 
 + 
 +=== Informații adiționale === 
 +  * Sunetul produs de buzzer îșschimbă frecvența în funcție de configurația Timer1 - în întreruperea asociată COMPB. 
 +  * Tratarea întreruperii INT0 constă în dezactivarea alarmei //​[isAlarmActive ​<- false]//. 
 +  * Calculul distanței cu ajutorul HC-SR04 este realizat pe baza unei durate medii - pentru un număr de citiri determinat empiric //​[NUM_OF_DISTANCE_READS]//​.
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +==== Video ==== 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru. +[[https://​www.youtube.com/watch?​v=sLkMaJZUBaM|Video rezultat final]]
-</note>+
  
-===== Concluzii =====+==== Photo shoot ==== 
 +{{:​pm:​prj2023:​alexau:​1685263805489.jpg?​800|}} 
 +{{:​pm:​prj2023:​alexau:​1685263805487.jpg?​800|}} 
 +{{:​pm:​prj2023:​alexau:​1685263805484.jpg?​800|}} 
 +{{:​pm:​prj2023:​alexau:​1685263805481.jpg?​800|}} 
 +{{:​pm:​prj2023:​alexau:​1685263805479.jpg?​800|}} 
 +{{:​pm:​prj2023:​alexau:​1685263805476.jpg?​800|}} 
 +{{:​pm:​prj2023:​alexau:​1685263805472.jpg?​800|}}
  
 ===== Download ===== ===== Download =====
  
-<note warning> +==== Cod sursă ==== 
-O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute ​în urma realizării proiectuluisurse, scheme, etcUn fişier README, un ChangeLogun script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).+Codul sursă se află în [[https://github.com/​cioabnu/​seiffe|acest GitHub repository]]. Pentru testarea acestuiaeste necesară instalarea bibliotecilor [[https://​reference.arduino.cc/​reference/​en/​libraries/​liquidcrystal-i2c/​|LiquidCrystal I2C]] și [[https://​reference.arduino.cc/​reference/​en/​libraries/​mfrc522/​|MFRC522]] - [[https://​docs.arduino.cc/​software/​ide-v1/​tutorials/​installing-libraries|Installing Libraries]].
  
-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 Alin331CC -> **:​pm:​prj2009:​cc:​dumitru_alin**. +=== Arhivă - cod sursă + biblioteci incluse === 
-</​note>​+Alternativ, ​se poate descărca [[https://​ocw.cs.pub.ro/​courses/​_media/​pm/​prj2023/​alexau/​seiffe-v1.zip|de aici]] arhiva ce conține atât implementarea Seiffecât și bibliotecile third-party utilizate.
  
 ===== Jurnal ===== ===== Jurnal =====
Line 102: Line 125:
   * 19 mai: adăugare hardware preview   * 19 mai: adăugare hardware preview
   * 23 mai: introducere feature: buton pentru oprirea alarmei   * 23 mai: introducere feature: buton pentru oprirea alarmei
 +  * 28 mai: finalizare documentație
 ===== Bibliografie/​Resurse ===== ===== Bibliografie/​Resurse =====
- +  * [[https://​ocw.cs.pub.ro/​courses/​pm|Laboratoare PM]] 
-<​note>​ +  * [[https://​circuitdigest.com/​microcontroller-projects/​interfacing-rfid-reader-module-with-arduino|Interfacing RFID Reader With Arduino]] 
-Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. +  ​[[https://​howtomechatronics.com/​tutorials/​arduino/​ultrasonic-sensor-hc-sr04/​|Ultrasonic Sensor HC-SR04 and Arduino]] 
-</note>+  * [[https://​stackoverflow.com/|Stack Overflow]]
  
 <​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/alexau/seiffe.1684850663.txt.gz · Last modified: 2023/05/23 17:04 by andrei.ciobanu2508
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