This is an old revision of the document!
Punctul de plecare a fost problema vitezi excesive de pe drumurile publice din Romania, una dintre principalele cauze ale accidentelor grave de circulatie.
Acest proiect a fost conceput pentru a masura viteza medie a masinilor pe un anumit segment de drum si declanseaza o alarma sonora daca viteza legala este depasita. Sistemul activeaza primul senzor ultrasonic si porneste un timer in momentul in care un vehicul este detectat. Cand vehiculul ajunge la cel de-al doilea senzor, ce este amplasat la o distanta stiuta, timer-ul se opreste si se calculeaza viteza medie pe baza timpului si a distantei dintre senzori. Aceasta este afisata pe un ecran LCD prin intermediul modulului I2C. Daca viteza masurata depaseste o limita prestabilita (configurata manual), un buzzer emite un semnal de alarma, sunetul creste si descreste pe parcursul a cateva secunde.
Proiectul este util deoarece poate fi amplasat pe orice segment de drum pentru colectarea datelor reale despre viteza si a semnala contraventiile din trafic. Acesta incurajeaza soferii sa respecte viteza legala prin feedback-ul audio imediat.
Sistemul este compus din urmatoarele module hardware si software:
| Componenta | Model / Specificatii | Cantitate |
|---|---|---|
| Placa microcontroller | ATmega328P Xplained Mini | 1 |
| Senzor ultrasonic de distanta | HC-SR04 | 2 |
| Afisaj LCD | LCD 16×2 | 1 |
| Modul I2C pentru LCD | CEY4005 | 1 |
| Buzzer pasiv | Compatibil 3.3V-5V | 1 |
| Breadboard | 830 puncte | 1 |
| Fire jumper | Male-to-male, culori diverse | ~20 |
| Fire jumper mama-tata | Female-to-male, culori diverse | 4 |
| Cablu USB | Micro-USB | 1 |
| Sursa de alimentare | 5V prin USB sau externa | 1 |
| Componenta | Rol in proiect |
|---|---|
| ATmega328P Xplained Mini | Microcontroller principal - proceseaza semnalele de la senzori, calculeaza viteza si controleaza afisajul si buzzer-ul |
| HC-SR04 #1 (Senzor 1) | Senzor ultrasonic - detecteaza trecerea unui obiect prin primul punct de masurare |
| HC-SR04 #2 (Senzor 2) | Senzor ultrasonic - detecteaza trecerea aceluiasi obiect prin al doilea punct de masurare |
| LCD 16×2 cu modul I2C (LCD_I2C) | Afiseaza mesajele “Speed Radar” si viteza calculata in km/h |
| Buzzer pasiv | Semnalizare sonora la detectarea unui obiect |
| Breadboard + fire jumper | Interconectarea componentelor |
| Pin ATmega328P | Eticheta | Componenta | Rol |
|---|---|---|---|
| PB2 | PB2 | Buzzer | Semnal digital pentru activarea buzzer-ului |
| PD2 | ECHO1 | HC-SR04 #1 | Receptie semnal ECHO de la senzorul 1 (input) |
| PD3 | ECHO2 | HC-SR04 #2 | Receptie semnal ECHO de la senzorul 2 (input) |
| PD4 | TRIG1 | HC-SR04 #1 | Trimitere puls TRIG catre senzorul 1 (output) |
| PD5 | TRIG2 | HC-SR04 #2 | Trimitere puls TRIG catre senzorul 2 (output) |
| PC4 | SDA | LCD I2C | Linie de date I2C pentru LCD |
| PC5 | SCL | LCD I2C | Linie de ceas I2C pentru LCD |
| VCC | +5V | Toate componentele | Alimentare 5V |
| GND | GND | Toate componentele | Masa comuna |
Am ales pinii ECHO pe PD2/PD3 deoarece corespund intreruperilor externe INT0 si INT1 ale ATmega328P Xplained Mini, permitand capturarea precisa a timpului semnalelor ultrasunetelor prin intreruperi hardware, fara polling.
Comunicatia I2C (SDA/SCL pe PC4/PC5) pentru a putea transmite semnalele.
Schema prezinta:
Cei 2 senzori HC-SR04 sunt plasati la o distanta fixa si cunoscuta d (in cm) pe acelasi ax. Cand un obiect trece prin deptul primului senzor, microcontroller-ul porneste un cronometru. Cand acelasi obiect trece prin dreptul celui de-al doilea senzor, cronometrul se opreste si calculeaza viteza.
Imaginea de mai sus prezinta cum am legat cablurile. Cei 2 senzori plasati la capetele unui suport rigid, LCD-ul cu modulul I2C in centru si buzzer-ul atasat lateral. LCD-ul afiseaza “Speed Radar / Viteza XX km/h”.
In imaginea de mai sus se observa clar cum LCD-ul prin I2C reuseste sa afiseze viteza corespunzatoare calculata.
In imaginea de mai sus se observa cum senzorul 1 a detectat un obiect, a trimis semnal, dureaza pana ajunge obiectul la senzorul 2. Cand obiectul a ajuns la senzorul 2 acesta il detecteaza, trimite semnal iar microcontroller-ul calculeaza viteza, trimite catre I2C sa o afiseze pe LCD. Executia se opreste pentru cateva secunde, iar apoi incepem iar detectarea pe senzorul 1 prin resetare.
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.