This shows you the differences between two versions of the page.
|
pm:prj2026:bianca.popa1106:radu.georgescu2211 [2026/05/08 00:46] radu.georgescu2211 [Introducere] |
pm:prj2026:bianca.popa1106:radu.georgescu2211 [2026/05/25 02:21] (current) radu.georgescu2211 [Rezultate Obţinute] |
||
|---|---|---|---|
| Line 16: | Line 16: | ||
| ===== Descriere generală ===== | ===== Descriere generală ===== | ||
| - | <note tip> | + | Sistemul comuta intre 3 stari principale: Standby (asteptare card, LED rosu aprins), Acces Permis (cod valid, LED verde si deschidere usa) si Acces Respins (cod invalid, LED rosu intermitent si alerta sonora). Controlul intregului proces este asigurat de placa ATmega328P-XMINI, care proceseaza datele de la cititor si coordoneaza perifericele. |
| - | O schemă bloc cu toate modulele proiectului vostru, atât software cât şi hardware însoţită de o descriere a acestora precum şi a modului în care interacţionează. | + | |
| - | Exemplu de schemă bloc: http://www.robs-projects.com/mp3proj/newplayer.html | + | Interactiunea modulelor: |
| - | </note> | + | |
| + | * **Cititorul RFID (RC522)**: Este interfata de intrare a sistemului. Acesta comunica cu microcontrolerul prin protocolul SPI (pinii SCK, MOSI, MISO si SS). Modulul scaneaza constant prezenta unui tag, iar la detectie transmite UID-ul catre procesor pentru validare. | ||
| + | |||
| + | * **Servomotorul (SG90)**: Reprezinta elementul de executie mecanica pentru poarta/usa. Microcontrolerul genereaza un semnal PWM pentru a controla pozitia precisa a bratului. La primirea comenzii de acces valid, servomotorul se roteste la 90 de grade, revine la pozitia initiala dupa un interval de timp presetat. | ||
| + | |||
| + | * **Modulul LED RGB**: Ofera feedback vizual instantaneu. Cele doua culori principale (Rosu si Verde) sunt controlate prin pini digitali GPIO. In starea de repaus sau la eroare, este activat pinul pentru culoarea rosie, iar la autorizarea cu succes este activat pinul pentru culoarea verde. | ||
| + | |||
| + | * **Buzzer Activ**: Este utilizat pentru confirmarea sonora a operatiunilor. Fiind un buzzer activ, acesta este controlat printr-un semnal digital simplu (HIGH/LOW). Genereaza beep-uri scurte la citirea oricarui card si semnale prelungite in cazul in care accesul este refuzat. | ||
| + | |||
| + | * **Monitorizare Seriala**: Sistemul este conectat la calculator prin interfata seriala. Prin aceasta conexiune, se monitorizeaza in timp real log-urile de acces (cine a incercat sa intre si daca a reusit) si se pot trimite comenzi de configurare din consola. | ||
| + | |||
| + | **Schema bloc:** | ||
| + | |||
| + | {{ :pm:prj2026:bianca.popa1106:usb5v_power_supply_to-2026-05-07-220257.png?600 | Schema Bloc }} | ||
| ===== Hardware Design ===== | ===== Hardware Design ===== | ||
| - | <note tip> | + | ^ Componenta ^ Model ^ Interfata cu MCU ^ Functie ^ |
| - | Aici puneţi tot ce ţine de hardware design: | + | | **Microcontroler** | ATmega328P-XMINI | — | Unitate centrala de procesare | |
| - | * listă de piese | + | | **Cititor RFID** | RC522 | SPI (MISO, MOSI, SCK, SS) | Identificarea cardurilor si tag-urilor | |
| - | * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri, e.g. http://www.captain.at/electronic-atmega16-mmc-schematic.png) | + | | **Servomotor** | SG90 | PWM (Pin Digital) | Actionarea mecanica a usii | |
| - | * diagrame de semnal | + | | **Afisaj Vizual** | Modul LED RGB | GPIO (Pini Digitali) | Semnalizare optica (Acces Permis/Respins) | |
| - | * rezultatele simulării | + | | **Feedback audio** | Buzzer Activ | GPIO (Pin Digital) | Semnalizare sonora la scanare si alerte | |
| - | </note> | + | | **Comunicatie** | Interfata Seriala | UART (TX, RX via USB) | Monitorizarea accesului si debug | |
| + | | **Alimentare** | Cablu USB | — | Sursa de energie 5V pentru intregul sistem | | ||
| - | ===== Software Design ===== | + | ==== Schema Cablaj ==== |
| + | {{ :pm:prj2026:bianca.popa1106:circuit_image_radu.georgescu2211.png?600 | Schema Bloc }} | ||
| - | <note tip> | + | ===== Software Design ===== |
| - | 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 ===== | ||
| - | <note tip> | + | === Mediul de dezvoltare === |
| - | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | * Firmware: Visual Studio Code cu extensia PlatformIO (toolchain GCC pentru AVR). |
| - | </note> | + | * Aplicație Web: Python (pentru backend/server) și HTML/CSS/JS (pentru frontend). |
| - | ===== Concluzii ===== | + | === Librarii si surse 3rd-party === |
| + | Pe Firmware | ||
| + | * <avr/io.h> – pentru accesarea directa a registrilor hardware (pini, SPI, USART). | ||
| + | * <util/delay.h> – pentru generarea temporizarilor necesare protocolului hardware si semnalelor de actuatie. | ||
| - | ===== Download ===== | + | Pe Backend |
| + | * flask – pentru crearea si gazduirea serverului web local. | ||
| + | * pyserial – pentru citirea si scrierea datelor pe portul serial, comunicand direct cu placuta. | ||
| - | <note warning> | + | Pe Frontend |
| - | 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ă ;-). | + | * socket.io.js – librarie client pentru recepționarea live a evenimentelor de la server fara reincarcarea paginii. |
| - | 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**. | + | === Etapa 3: Surse si functii implementate === |
| - | </note> | + | Sursa Firmware |
| + | * main.c :initializare, receptie, accesPermis(), accesRespins() pentru coordonare servomotor si buzzer | ||
| - | ===== Jurnal ===== | + | Sursa aplicatie web |
| + | * app.py pentru server | ||
| + | * index.html pentru interfata | ||
| + | |||
| + | ===== Rezultate Obţinute ===== | ||
| <note tip> | <note tip> | ||
| - | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | Exemplificare mod de functionare: |
| + | [[https://www.youtube.com/shorts/rxki0IP8voQ|Test run]] | ||
| </note> | </note> | ||
| + | |||
| + | ===== Concluzii ===== | ||
| + | |||
| + | In concluzie, acest proiect a reprezentat o aplicatie practica interesanta prin care am reusit sa inteleg mai bine modul in care mai multe componente pot lucra impreuna pentru a realiza un sistem real si usor de folosit. Realizarea sistemului mi-a oferit experienta atat pe partea de programare, cat si pe partea de integrare hardware. | ||
| ===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
| <note> | <note> | ||
| - | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | [[https://ww1.microchip.com/downloads/aemDocuments/documents/MCU08/ProductDocuments/DataSheets/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf|ATmega328P 8-bit AVR Microcontroller Datasheet]] |
| + | |||
| + | [[https://scl.engr.uconn.edu/courses/ece3411/preliminaries/Atmel-42287-ATmega328P-Xplained-Mini-User-Guide_UserGuide.pdf|ATmega328P Xplained Mini User Guide]] | ||
| + | |||
| + | [[https://www.nxp.com/docs/en/data-sheet/MFRC522.pdf|RC522 RFID Reader Datasheet (NXP MFRC522)]] | ||
| </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> | ||