This is an old revision of the document!


Mini Barrier

Autor: ^_^Frățiman Bogdan-Gabriel^_^
Grupa: 333CD

Introducere

Mini Barrier este un sistem automat de control al accesului, care detectează vehiculele care se apropie și acționeaza o barieră cu ajutorul unui servomotor. Utilizând un senzor ultrasonic, sistemul estimează distanța până la vehicul și decide automat dacă trebuie ridicată bariera. Pentru a permite și intervenția umană există și un buton care acționează manual bariera. Pe lângă acestea, un ecran LCD afișează distanța până la vehicul și contorizează numărul total de vehicule care au trecut prin sistem.

Scopul proiectului este de a simula un sistem inteligent de control al accesului vehiculelor similar celor întâlnite în parcări, complexe rezidențiale sau centre logistice. Proiectul urmărește automatizarea unui proces des întâlnit, oferind date statistice in timp real, utile pentru gestionarea traficului prin sistem.

Ideea proiectului a pornit de la observarea sistemelor moderne de acces auto și dorința de a aduce un plus de eficiență prin reducerea intervenției umane, păstrând o evidență a vehiculelor, dar și siguranța sistemului si a șoferilor prin senzorul ultrasonic.

Acest sistem este util deoarece oferă o soluție pentru automatizarea accesului auto în spații precum parcări private, curți, zone rezidențiale sau industriale. Prin automatizarea procesului de ridicare a barierei, se economisește timp, se reduc costurile cu personalul și se minimizează riscurile generate de erori umane. Ecranul LCD cu distanța și contorul de vehicule oferă un plus de transparență și control asupra traficului din zona respectivă.

Descriere generală

Mini Barrier este compus din următoarele module principale care interacționează între ele pentru a asigura buna funcționare a sistemului:

Fluxul de funcționare

  1. Detecția unui vehicul: Senzorul ultrasonic măsoară continuu distanța și transmite date către Arduino.
  2. Procesarea logică: Dacă distanța este sub pragul ales, Arduino activeaza servomotrul pentru ridicarea barierei si modifică culoarea LED-ului corspunzător.
  3. Afișare informații:
    • Pe LCD sunt afișate distanța până la vehicul, iar după ce acesta a trecut se incrementeaza numărul actual de vehicule
    • Pe interfața serială apare un log complet al activitații.
  4. Control manual: Butonul permite ridicarea/coborârea manuală a barierei.

Hardware Design

:!: Listă componente: :!:

  1. Placa Arduino UNO R3
  2. Senzor ultrasonic HC-SR04
  3. Servomotor SG90
  4. LCD 16×2 cu adaptor I2C
  5. Buton tactil
  6. LED-uri
  7. Rezistențe (220Ω, 10kΩ)
  8. Breadboard
  9. Cabluri jumper

Schema electrică

Software Design

Mediu de dezvoltare: Arduino IDE 8-O

Librării şi surse 3rd-party: LiquidCrystal_I2C.h - pentru interfața I2C a LCD-ului

Algoritmi şi structuri: Structura sistemului este asemănătoare unui state machine cu 4 stări: IDLE, CAR_IN, CAR_OUT și FULL, determinate de distanța măsurată și starea butonului, tratat ca întrerupere externă. Controlul servomotorului se face prin generarea unui semnal PWM folosind Timer1, configurat in mod fast PWM cu TOP = ICR1.

Surse şi funcţii implementate:

  • setup() - Inițializează toate perifericele și configurează Timer1 în mod Fast PWM (WGM13:0 = 14) cu TOP = ICR1 = 40000, pentru a genera un semnal PWM de 50 Hz pe pinul OC1A (pin 9), cu un prescaler de 8, potrivit pentru servomotorul SG90.
  • setServoAngle(int angle) - Primește un unghi între 0° și 180°, îl convertește într-un impuls PWM între 750 și 2300 µs, apoi setează valoarea în OCR1A.
  • handleButtonPress() - Activează rutina de întrerupere pentru buton setând flag-ul buttonPressed.
  • loop() - Bucla principală.

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

Concluzii

Download

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.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

pm/prj2025/iotelea/bogdan.fratiman.1748194899.txt.gz · Last modified: 2025/05/25 20:41 by bogdan.fratiman
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