This shows you the differences between two versions of the page.
pm:prj2023:avaduva:shoppingsafebox [2023/05/28 16:29] anicolae2406 [Software Design] |
pm:prj2023:avaduva:shoppingsafebox [2023/05/29 01:20] (current) anicolae2406 [Software Design] |
||
---|---|---|---|
Line 69: | Line 69: | ||
===== Software Design ===== | ===== Software Design ===== | ||
- | == Biblioteci utilizate: == | + | == Biblioteci folosite: == |
* Servo.h | * Servo.h | ||
* LiquidCrystal_I2C.h | * LiquidCrystal_I2C.h | ||
Line 75: | Line 75: | ||
* SPI.h | * SPI.h | ||
* MFRC522.h | * MFRC522.h | ||
+ | * Wire.h | ||
== Funcții implementate: == | == Funcții implementate: == | ||
* **void setup()**: | * **void setup()**: | ||
- | * Configurez pinii I/O pentru cele 2 butoane și servomotor; | + | * Setez pinul pentru buzzer si il pornesc; |
+ | * Setez pinul pentru servomotor si il fixez la o pozitie initiala; | ||
+ | * Initializez LCD si lumina lui; | ||
+ | * Pornesc protocolul SPI si initializez modulul RFID RC522. | ||
* **void loop()**: | * **void loop()**: | ||
+ | * Verific cu variabila isPasswordSet daca parola a fost setata: | ||
+ | -cat timp parola nu este setata, o setez folosind functia set password, verificand si daca are exact 4 caractere,in plus afisez pe lcd mesaje corespunzatoare; | ||
+ | -daca parola are formatul bun, se blocheaza servomotorul. | ||
+ | * Apoi dupa ce s-a setat parola, se va incerca deblocarea servomotorului prin introducerea parolei setate; | ||
+ | * Dupa aceea, verific daca codul intrdus este acelasi cu cel setat: | ||
+ | -in caz afirmativ, se deblocheaza servomotorul si se afiseaza pe LCD un mesaj sugestiv; | ||
+ | -in caz negativ, numarul de incercari scade si se reia procesul; | ||
+ | -daca numarul de incercari a ajuns la zero, se va aprinde un led rosu si va suna un buzzer ssfe box-ul blocandu-se si nemaipermitand introducerea unei noi parole; | ||
+ | -safe box-ul va fi blocat pana la validarea unui card la modulul RFID,daca acest modul citeste cardul servomotorul se va debloca, iar apoi se poate seta o parola noua. | ||
+ | | ||
+ | * **void buzzerOn()**: | ||
+ | * Buzzer-ul incepe sa sune. | ||
- | ===== Rezultate Obţinute ===== | + | * **void buzzerOff()**: |
+ | * Buzzer-ul se opreste din sunat. | ||
- | <note tip> | + | * **void setPassword()**: |
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | * Setez parola,introducand exact 4 caractere in sirul de caractere pentru parola, afisand pe LCD o * atunci cand se primeste un caracter. |
- | </note> | + | |
- | ===== Concluzii ===== | + | * **void lockServo()**: |
+ | * Efectuez miscarea progresiva a servomotorului pentru a bloca safe box-ul. | ||
- | ===== Download ===== | + | * **void unlockServo()**: |
+ | * Efectuez miscarea progresiva a servomotorului pentru a debloca safe box-ul. | ||
+ | |||
- | <note warning> | + | ===== Rezultate Obţinute ===== |
- | 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:avaduva:i01_cutie_int.jpeg|}} |
+ | {{:pm:prj2023:avaduva:img01_cutie.jpeg|}} | ||
- | 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**. | + | ===== Concluzii ===== |
- | </note> | + | In acest proiect, am observat cum se poate programa o placuta Arduino pentru a rezolva probleme din viata cotidiana, precum seiful ce poate fi gasit la intrarea in diverse magazine.In plus, am inteles mai bine cum se foloseste un servomotor,un buzzer si modulul RFID RC522, ce are foarte multe utilizari, de la obisnuitul interfon la cartele de acces. De-a lungul acestui proiect, consider ca am folosit notiuni din laboratorul 1 (UART) pentru |
+ | a face debugging pentru setarea parlei si LCD;notiuni din laboratorul 3, parte de PWM, deoarece am folosit servomotorul;notiuni din laboratorul 5 cu SPI, deoarece am folosit modulul RFID RC522 ce se bazeaza pe protocolul SPI si notiuni din laboratorul 6 I2C, deoarece am folosit un LCD cu modul I2C. | ||
- | ===== Jurnal ===== | + | Video cu simularea proiectului:[[https://youtu.be/UMDtQTFe7b8]] |
- | + | ===== Download ===== | |
- | <note tip> | + | In aceasta arhiva este codul Arduino si un video cu functionarea safe box-ului. |
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | {{:pm:prj2023:avaduva:336CA_Nicolae Alexandru-Dimitrie_PMProj.zip|}} |
- | </note> | + | |
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | <note> | + | * Aplicatia in care s-a realizat schema bloc: [[https://app.diagrams.net/]] |
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | * Aplicatia in care am simulat proiectul fara modulul RFID RC522: [[https://www.tinkercad.com/]] |
- | </note> | + | * Componente: [[https://emag.ro/]] |
+ | * Folosire modul RFID RC522: [[https://lastminuteengineers.com/how-rfid-works-rc522-arduino-tutorial/]] | ||
+ | * Folosire LCD 16X2 cu modul I2C: [[https://lastminuteengineers.com/i2c-lcd-arduino-tutorial/]] | ||
+ | * Arduino IDE, versiunea 2.1.0: [[https://www.arduino.cc/en/software]] | ||
<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> | ||