This is an old revision of the document!
Ce face proiectul: Proiectul reprezinta un sistem automatizat capabil sa masoare viteza unui vehicul in miscare folosind doi senzori cu infrarosu (IR) si sa actioneze un “bumper” (limitator de viteza/bariera fizica) controlat de un servomotor. Daca vehiculul depaseste limita de viteza stabilita (30 km/h), bumperul se ridica, iar un semnal sonor de avertizare este emis. Viteza si starea limitei sunt afisate in timp real pe un ecran LCD.
Care este scopul lui: Scopul principal este sporirea sigurantei active in trafic, in special in zonele cu limitari stricte de viteza (zone rezidentiale, scoli, treceri de pietoni), prin implementarea unui sistem fizic de descurajare a vitezei excesive.
Ideea de la care am pornit: Limitatoarele de viteza clasice (bumperele din asfalt) afecteaza toate vehiculele, inclusiv pe cele care circula regulamentar, cauzand uzura inutila a suspensiilor si disconfort. Ideea a fost crearea unui sistem “inteligent” de aerodinamica sau limitare fizica, care sa actioneze doar impotriva soferilor care incalca regulile, lasand calea libera pentru cei care respecta viteza.
De ce este util: Pentru societate, acest concept ar putea eficientiza fluidizarea traficului si reduce poluarea fonica/uzura auto in zonele rezidentiale.
Proiectul este structurat intr-o unitate centrala de procesare (microcontrollerul ATmega328P) care interactioneaza cu doua categorii de module: de intrare (Senzori IR) si de iesire (Servomotor, Buzzer, LCD).
Interactiunea modulelor (Logica de functionare):
Schema bloc:
Lista de piese si Rolul lor in proiect:
Conectarea componentelor si justificarea pinilor folositi:
Schema electrica:
Schema ilustreaza conexiunile logice si de alimentare prezentate in sectiunea anterioara. Microcontrollerul este alimentat prin regulatorul placii, iar de pe liniile de 5V/GND sunt alimentate toate perifericele externe.
Proiectul in functiune:
Bumper coborat. Vehiculul circula cu viteza legala (< = 30 km/h)
Bumper ridicat. Vehiculul circula cu viteza ilegala (> 30 km/h)
Mediul de dezvoltare si biblioteci folosite: Pentru dezvoltarea firmware-ului am utilizat platforma PlatformIO integrata in mediul de dezvoltare VS Code, folosind toolchain-ul `avr-gcc`.
Alegerea bibliotecilor: Proiectul foloseste exclusiv bibliotecile standard C pentru AVR (`<avr/io.h>`, `<avr/interrupt.h>`, `<util/delay.h>`, `<stdio.h>`). Am evitat in mod intentionat bibliotecile third-party (precum `LiquidCrystal_I2C.h` sau `Servo.h`) pentru a construi drivere proprii si a implementa comunicarea cu perifericele la nivel de registru.
Elementul de noutate: Spre deosebire de limitatoarele de viteza clasice care afecteaza fluiditatea traficului indiferent de comportamentul soferului, noutatea software consta in algoritmul de decizie in timp real. Microcontrollerul calculeaza viteza instantaneu si activeaza bariera fizica exclusiv pentru vehiculele care incalca regulamentul, transformand o solutie de trafic pasiva intr-una activa si inteligenta.
Laboratoare utilizate ca referinta:
Scheletul proiectului:
Ierarhia de fisiere a proiectului in PlatformIO:
SmartBumper/
└── src/
├── main.c
├── i2c.h
├── i2c.c
├── lcd.h
└── lcd.c
Descrierea componentelor software:
In fundal, Timer1 numara milisecundele. Trecerea vehiculului declanseaza `INT0`, care salveaza timpul initial (`t_start = systicks`). Trecerea prin cel de-al doilea senzor declanseaza `INT1`, salvand `t_stop` si ridicand un flag (`measure_complete = 1`). Bucla infinita `while(1)` proceseaza flag-ul, calculeaza viteza (V = d/t), o afiseaza pe LCD si comanda perifericele de avertizare (buzzer si servo) in functie de pragul setat de 30 km/h.
Calibrarea elementelor de senzoristica: Pentru a asigura o functionare corecta, au fost realizate doua calibrari software:
1. Ajustarea distantei: Distanta dintre cei doi senzori IR de pe macheta a fost definita ca macro (`DISTANCE_M 1`) pentru a calcula corect viteza in m/s si ulterior in km/h. Valoarea de 1 metru definita in cod este o distanta teoretica, stabilita in urma testelor pentru a facilita demonstrarea functionalitatii sistemului. Deoarece pe macheta senzorii sunt montati la doar cativa centimetri distanta, simularea manuala a diferitelor praguri de viteza la scara reala ar fi fost extrem de dificil de controlat.
2. Calibrarea servomotorului SG90: Deoarece motoarele difera mecanic, s-au testat mai multe latimi de puls (delay in microsecunde). S-au stabilit empiric valorile `PULS_INITIAL_US = 500` pentru pozitia ascunsa a bumperului si `PULS_RIDICAT_US = 800` pentru inaltarea corespunzatoare la detectia depasirii vitezei.
Optimizari:
In urma asamblarii si scrierii firmware-ului, a rezultat un sistem hardware-software perfect functional, capabil sa reactioneze in timp real la evenimente fizice. Sistemul masoara cu succes timpul dintre cele doua puncte de referinta folosind rutine de tratare a intreruperilor (ISR) foarte rapide, evitand polling-ul. Viteza este calculata corect in bucla principala (raportata la distanta teoretica de 1 metru impusa pentru usurinta testarii manuale a senzorilor) si este afisata pe ecranul LCD folosind driverul I2C creat de la zero. In cazul depasirii pragului de 30 km/h, sistemul de actiune (servomotorul si alarma sonora) este declansat instantaneu prin manipularea directa a pinilor GPIO.
Proiectul “SmartBumper” reprezinta o aplicatie completa de embedded systems care integreaza multiple periferice hardware si concepte software intr-un produs coeziv, capabil sa functioneze in timp real.
Implementarea acestui sistem a contribuit semnificativ la aprofundarea programarii la nivel low-level a microcontrolerului ATmega328P. Dezvoltarea firmware-ului a consolidat intelegerea si aplicarea unor concepte critice precum: configurarea Timerelor hardware pentru masurarea precisa a timpului, gestionarea Intreruperilor Externe pentru reactii asincrone imediate, manipularea directa a registrilor GPIO pentru controlul mecanic si acustic, precum si implementarea de la zero a protocolului de comunicatie I2C.
In final, proiectul demonstreaza modul in care conceptele tehnice independente, pot fi imbinate cu succes intr-un dispozitiv interactiv si functional, pentru a rezolva o problema reala din domeniul sigurantei rutiere.
Aici puteti gasi arhiva completa cu codul sursa:
Sau link-ul de la repository: SmartBumper
Resurse Hardware:
Resurse Software: