Differences

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

Link to this comparison view

pm:prj2023:ndrogeanu:rfidbasedalarmclock [2023/05/24 19:26]
lavinia.barbu1512 [💤 Alarm Clock based on RFID 💤]
pm:prj2023:ndrogeanu:rfidbasedalarmclock [2023/05/30 11:30] (current)
lavinia.barbu1512 [Software Design]
Line 45: Line 45:
 <note tip> <note tip>
 Descrierea codului aplicaţiei (firmware): Descrierea codului aplicaţiei (firmware):
-  * mediu de dezvoltare ​(if any) (e.g. AVR Studio, CodeVisionAVR) +  ​* **mediu de dezvoltare**: Arduino IDE 
-  * librării ​şi surse 3rd-party (e.gProcyon AVRlib+  ​* **librării**:  
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi +       * SPI.h: pentru comunicarea utilizând protocolul de comunicație serială sincronă SPI 
-  * (etapa 3) surse şi funcţii implementate+       * MFRC522.h: pentru a interacționa cu modulul RFID bazat pe cipul MFRC522 
 +       * IRremote.h: pentru a controla dispozitivele infraroșu (IR Receiver & Remote
 +  * **Schemă bloc**: diagrams.net 
 +  * **Design circuit**: TinkerCad
 </​note>​ </​note>​
 +
 +Codul a fost realizat astfel:
 +
 +**Definiții**:​
 +
 +Diverse note muzicale sunt definite cu valorile lor de frecvență corespunzătoare pentru redarea melodiei Mario.
 +Sunt definiti pini pentru cititorul RFID, buzzerul pasiv, afișajul cu 7 segmente și receptorul IR.
 +
 +**Variabile globale**: Variabile pentru stocarea timpului de alarmă, timpului curent, vitezei melodiei, luminozității afișajului,​ etc.
 +
 +**Funcția de setup()**:
 +
 +   * Inițializează comunicarea serială, busul SPI, cititorul RFID MFRC522 și receptorul IR.
 +   * Setează modurile de pin pentru buzzer, indicatorul LED, afișajul cu 7 segmente și pini de cifre.
 +
 +**Funcția de loop()**:
 +
 +   * Afișează timpul de alarmă setat pe afișajul cu 7 segmente.
 +   * Ascultă semnalele IR folosind receptorul IR pentru a seta timpul de alarmă.
 +   * Când butonul "​power"​ de pe telecomanda IR este apăsat, setează timpul de alarmă în funcție de semnalul IR primit.
 +   * Când butonul "​stop"​ de pe telecomanda IR este apăsat, pornește numărătoarea inversă a alarmei.
 +   * În interiorul buclei de numărătoare inversă a alarmei, verifică dacă timpul a expirat sau dacă cititorul RFID detectează o carte.
 +   * Dacă timpul a expirat, redă melodia temei Mario folosind buzzerul pasiv.
 +   * Dacă cititorul RFID detectează o carte, întrerupe numărătoarea inversă a alarmei până când cartea este îndepărtată.
 +
 +**Funcții ajutătoare**:​
 +
 +   * translateIR() - Traduce semnalul IR primit într-o funcție specifică.
 +   * Display() și Display_once() - Funcții pentru afișarea valorilor de timp pe afișajul cu 7 segmente.
 +   * timeToNum() - Converteste orele și minutele într-un număr de 4 cifre în scopuri de afișare.
 +   * convert() - Converteste cifrele individuale din semnalul IR în valorile lor întregi corespunzătoare.
 +   * buzz() - Redă o notă muzicală specifică pe buzzerul pasiv pentru o durată dată.
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
  
-<note tip> +{{:​pm:​prj2023:​ndrogeanu:​whatsapp_image_2023-05-29_at_22.46.47.jpeg?​300|}} 
-Care au fost rezultatele obţinute în urma realizării proiectului vostru+{{:​pm:​prj2023:​ndrogeanu:​whatsapp_image_2023-05-29_at_22.46.46_1_.jpeg?​500|}} 
-</​note>​+{{:​pm:​prj2023:​ndrogeanu:​whatsapp_image_2023-05-29_at_22.46.47_1_.jpeg?​300|}}
  
 ===== Concluzii ===== ===== Concluzii =====
  
 +A fost un proiect interesant de unde am invatat foarte multe lucruri. Sunt extrem de încântată că proiectul a atins obiectivele pe care mi le-am propus de la bun început. În plus, am dobândit mult mai multă experiență cu mediul de dezvoltare Arduino. ^_^
 ===== 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, etcUn fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). +În arhiva atașată se poate găsi și un demo8-) 
- +{{:pm:prj2023:ndrogeanu:alarmadeceas.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 74: Line 109:
   - 07.05.2023 - Completare milestone 1   - 07.05.2023 - Completare milestone 1
   - 21.05.2023 - Adaugare schema electrica   - 21.05.2023 - Adaugare schema electrica
 +  - 28.05.2023 - Completare parte de software + Finalizare pagina wiki
 </​note>​ </​note>​
  
Line 79: Line 115:
  
 <​note>​ <​note>​
-Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**.+https://​www.instructables.com/​Interfacing-RFID-RC522-With-Arduino-MEGA-a-Simple-/​ 
 +https://​www.circuitbasics.com/​arduino-7-segment-display-tutorial/​ 
 +http://​www.handsontec.com/​dataspecs/​RC522.pdf 
 </​note>​ </​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/ndrogeanu/rfidbasedalarmclock.1684945613.txt.gz · Last modified: 2023/05/24 19:26 by lavinia.barbu1512
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