This shows you the differences between two versions of the page.
|
pm:prj2026:bianca.popa1106:alexandru.cazacu05 [2026/05/02 13:17] alexandru.cazacu05 [Hardware Design] |
pm:prj2026:bianca.popa1106:alexandru.cazacu05 [2026/05/02 13:45] (current) alexandru.cazacu05 [Jurnal] |
||
|---|---|---|---|
| Line 35: | Line 35: | ||
| **Lista de piese utilizate:** | **Lista de piese utilizate:** | ||
| - | * 1 x Modul ESP32-CAM (Unitatea centrala cu Wi-Fi si slot camera) | + | * 1 x ESP32-CAM (Unitatea centrala cu Wi-Fi si slot camera) |
| * 1 x Senzor de Amprenta AS608 (Alimentare 3.3V, comunicare UART) | * 1 x Senzor de Amprenta AS608 (Alimentare 3.3V, comunicare UART) | ||
| * 1 x Camera OV2640 (Conectata prin interfata CSI) | * 1 x Camera OV2640 (Conectata prin interfata CSI) | ||
| Line 51: | Line 51: | ||
| - | <note tip> | + | Descrierea software-ului se concentreaza pe integrarea procesarii de imagine, a autentificarii biometrice si a conectivitatii Wi-Fi, utilizand mecanisme de sincronizare pentru a asigura stabilitatea sistemului pe arhitectura Dual-Core a ESP32-CAM. |
| - | 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 ===== | + | 1. Mediu de dezvoltare |
| + | * Arduino IDE: Utilizat pentru scrierea, compilarea si incarcarea codului pe modulul ESP32-CAM. | ||
| + | * Monitor Serial: Utilizat la o rata de transfer de 921600 baud pentru monitorizare. | ||
| - | <note tip> | + | 2. Librarii si surse 3rd-party |
| - | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | * Adafruit_Fingerprint.h: Gestionarea comunicatiei UART cu senzorul optic AS608. |
| - | </note> | + | * ESP32QRCodeReader.h: Librarie pentru procesarea cadrelor video si decodarea continutului codurilor QR. |
| + | * ESP32Servo.h & ESP32PWM: Controlul precis al actuatorului SG90 si al buzzerului folosind timerele hardware ale ESP32. | ||
| + | * WiFi.h & esp_http_server.h: Implementarea stivei de retea si a serverului web asincron pentru streaming video. | ||
| - | ===== Concluzii ===== | + | 3. Algoritmi si structuri implementate |
| - | ===== Download ===== | + | **Multitasking si Sincronizare (FreeRTOS):** |
| + | * Sistemul utilizeaza semafoare de tip mutex pentru a arbitra accesul la resursele partajate (Camera si magistrala de date). Aceasta previne coliziunile intre thread-ul care proceseaza codurile QR si cel care trimite stream-ul video prin HTTP. | ||
| + | * Algoritmul de control ruleaza pe ambele nuclee, delegand cititorul de coduri QR pe nucleul 1 pentru a nu bloca executia logicii de control. | ||
| + | **Automat de stari si Logica de control:** | ||
| + | * Metoda de acces hibrid: Sistemul verifica ciclic prezenta unei amprente valide (getFingerprintID) sau a unui cod QR valid. | ||
| + | * Gestionarea timpului: Implementarea unui mecanism de tip non-blocking delay prin macro-ul TIME_PASSED, permitand executia fluida a codului fara intreruperi de tip delay(). | ||
| + | * Auto-Lock: Implementarea unei structuri de temporizare care asigura re-inchiderea automata a seifului dupa 10 secunde de la deblocare. | ||
| + | |||
| + | 4. Surse si functii principale | ||
| + | * setup(): Initializeaza perifericele, configureaza serverul web si porneste inrolarea obligatorie a unei amprente la pornire. | ||
| + | * stream_handler(): Gestioneaza fluxul MJPEG, captand cadre de la camera OV2640 si trimitandu-le catre client sub forma de chunks HTTP. | ||
| + | * checkQR() / onQrCodeTask(): Analizeaza cadrele video in cautarea unui cod QR si valideaza payload-ul text. | ||
| + | * unlock() / lock(): Functii de executie care controleaza unghiul servomotorului si ofera feedback sonor diferentiat prin buzzer la frecvente de 700Hz, respectiv 1500Hz. | ||
| + | * getFingerprintID(): Interogheaza rapid baza de date interna a senzorului AS608 pentru a gasi o potrivire cu degetul scanat. | ||
| - | <note warning> | ||
| - | 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ă ;-). | ||
| - | 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> | ||
| ===== Jurnal ===== | ===== Jurnal ===== | ||
| - | <note tip> | + | * **01.03.2026 - 01.05.2026:** alegerea temei, cumpararea componentelor, implementarea proiectului pe breadboard, testarea proiectului pe breadboard. |
| - | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | * **02.05.2026 - 25.05.2026:** implementarea proiectului pe placi de prototipare, construire carcasa. |
| - | </note> | + | |
| ===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
| + | Resurse Hardware: | ||
| - | <note> | ||
| - | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | ||
| - | </note> | ||
| - | |||
| - | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||
| + | * [[https://www.handsontec.com/dataspecs/module/ESP32-CAM.pdf|Datasheet ESP32CAM]] | ||
| + | * [[https://handsontec.com/dataspecs/sensor/AS608%20Finger%20print%20Sensor.pdf|Datasheet Senzor Amprenta AS608]] | ||
| + | * [[http://www.ee.ic.ac.uk/pcheung/teaching/DE1_EE/stores/sg90_datasheet.pdf|Datasheet SG90 Micro Servo]] | ||