This is an old revision of the document!


Smart Management Barrier Parking

Introducere

Proiectul consta intr-un sistem inteligent de management al accesului intr-o parcare, capabil sa valideze identitatea utilizatorilor, sa controleze o bariera fizica si sa tina evidenta locurilor disponibile in timp real. Sistemul interactioneaza atat cu lumea digitala (baze de date de carduri, afisaje), cat si cu cea fizica (actionarea mecanica a barierei si detectarea vehiculelor).

Scopul principal este realizarea unui sistem integrat care sa demonstreze lucrul simultan cu multiple protocoale de comunicatie (SPI, I2C) si periferice hardware interne (Timere, generare PWM).

Totul a plecat de la necesitatea optimizarii fluxului de masini intr-un spatiu inchis. Am pornit de la ideea unui sistem autonom care nu doar permite accesul oricum, ci urmareste fizic trecerea masinii pentru a evita erorile de contorizare.

Pentru mine, utilitatea este didactica si practica: invat sa stapanesc interactiunea dintre senzori asincroni (RFID, Ultrasonic) si actuatoare (Servomotor) folosind o arhitectura de tip Finite State Machine (FSM), eliminand total functiile blocante de tip delay(). Pentru un utilizator real, sistemul ofera un feedback clar (pe ecranul LCD) si un acces fluid.

Descriere generala

Sistemul este centralizat in jurul microcontrolerului ATmega328P. La momentul scanarii unui card, microcontrolerul interogheaza senzorul RFID prin protocolul SPI. Daca UID-ul cardului este validat si exista locuri disponibile, sistemul trimite date prin I2C catre ecranul LCD pentru actualizarea interfetei si genereaza un semnal PWM pentru a ridica servomotorul (bariera).

Ulterior, controlul este preluat de senzorul ultrasonic. Folosind functiile de temporizare (Timere hardware), microcontrolerul masoara timpul de raspuns al ecoului pentru a determina cand masina a eliberat complet zona de tranzit. Odata confirmata trecerea, bariera coboara, iar contorul locurilor de parcare este decrementat.

Hardware Design

Lista de piese:

  • Placa de dezvoltare ATmega328P-Xplained Mini (Microcontroler central si interfata de debugging mEDBG).
  • Modul RFID RC522 (13.56 MHz) - Alimentat la 3.3V, conectat la pinii SPI (MOSI, MISO, SCK, SS).
  • Display LCD 1602 retroiluminat cu modul I2C PCF8574 lipit pe spate - Alimentat la 5V, conectat la pinii SDA (PC4) si SCL (PC5).
  • Servomotor SG90 - Alimentat la 5V, semnal de control conectat la un pin capabil de PWM (Timer1).
  • Senzor Ultrasonic HC-SR04 - Alimentat la 5V, conectat la pini GPIO/Input Capture pentru masurarea impulsului de ecou.
  • Breadboard si fire de conexiune DuPont (Tata-Tata, Mama-Tata).

*(Aici se va adauga o schema electrica desenata in Fritzing, Proteus sau Eagle, detaliind conexiunile mentionate mai sus).*

Software Design

Mediu de dezvoltare:

  • Microchip Studio (fostul Atmel Studio) / toolchain-ul AVR-GCC. Codul este scris in C pur (<avr/io.h>, <avr/interrupt.h>).

Arhitectura si Algoritmi: Fluxul programului este implementat sub forma unui Automat de Stari (State Machine) pentru a asigura non-blocarea executiei:

  1. STARE_IDLE: Asteapta citirea unui card prin SPI si afiseaza numarul de locuri.
  2. STARE_VALIDARE: Verifica daca UID-ul citit are permisiuni si daca contorul locuri_libere > 0.
  3. STARE_DESCHIS: Genereaza semnal PWM pentru 90 de grade, deschizand bariera.
  4. STARE_IN_TRANZIT: Interogheaza non-blocant senzorul ultrasonic. Asteapta scaderea distantei (masina este sub bariera) si apoi cresterea acesteia (masina a trecut).
  5. STARE_INCHIDERE: Coboara bariera (PWM la 0 grade), actualizeaza variabila globala de locuri si comunica prin I2C noile date catre LCD.

Librarii si surse 3rd-party:

  • Librarie adaptata pentru comunicarea I2C/TWI si driver-ul afisajului HD44780 (ex. adaptari ale librariei lui Peter Fleury).
  • Librarie bare-metal C pentru manipularea registrilor modulului MFRC522 (SPI).

Rezultate Obtinute

Concluzii

Download

Jurnal

  • Saptamana 1: Achizitia componentelor, lipirea pinilor I2C pe modulul LCD. Setup-ul mediului Microchip Studio pentru placa ATmega328P-Xplained Mini.
  • Saptamana 2: Implementarea comunicatiei I2C (TWI) si testarea afisarii de text si variabile pe LCD.
  • Saptamana 3: Configurarea Timerului 1 pentru generarea de semnal PWM (50Hz) si testarea miscarilor servomotorului.
  • Saptamana 4: Implementarea senzorului Ultrasonic fara delay(). Adaugarea librariei SPI pentru RFID.
  • Saptamana 5: Integrarea modulelor prin FSM (Automat de stari) si testarea logica (scaderea corecta a locurilor).

Bibliografie/Resurse

Resurse Hardware:

  • Datasheet ATmega328P: Documentatia oficiala Microchip pentru registrii TWI, SPI si Timere.
  • Datasheet MFRC522: Documentatia NXP pentru harta registrilor modulului RFID.
  • Datasheet HD44780: Setul de instructiuni pentru ecranul LCD.

Resurse Software:

  • Laboratoarele PM UPB: sectiunile legate de SPI, PWM, ADC si I2C.
  • Coduri de referinta GitHub pentru adaptarea MFRC522 in C.

Export to PDF

pm/prj2026/atoader/theodor.mitrofan.1778332201.txt.gz · Last modified: 2026/05/09 16:10 by theodor.mitrofan
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