This is an old revision of the document!
Sistem Inteligent de Semaforizare cu Feedback Vizual si Sonor
Introducere
Proiectul consta in implementarea unui sistem interactiv de semaforizare pentru o trecere de pietoni, controlat de un microcontroler ATmega328P.
Ce face: Sistemul gestioneaza traficul dintr-o intersectie simpla, avand un semafor complet pentru masini (Rosu, Galben, Verde) si unul pentru pietoni (Rosu, Verde). Trecerea pietonilor este conditionata de actionarea unui buton si de respectarea unui timp de garda (cooldown) pentru a nu bloca abuziv traficul auto. In plus, sistemul ofera feedback vizual printr-un ecran LCD I2C si feedback sonor printr-un buzzer.
Care este scopul lui: Scopul principal este simularea unei situatii reale de trafic urban, punand accent pe siguranta pietonilor si fluidizarea circulatiei rutiere prin algoritmi de temporizare.
Care a fost ideea de la care ati pornit: Am dorit sa transpun o problema clasica din viata de zi cu zi (asteptarea la semafor) intr-un automat de stari (State Machine). Am vrut un proiect care sa combine mai multe tipuri de periferice (GPIO, Timere hardware, comunicare I2C).
De ce credeti ca este util: La nivel didactic, proiectul ajuta la consolidarea conceptelor de programare low-level (lucrul cu registri, intreruperi, debounce pentru butoane si evitarea functiilor blocante de tip delay). La nivel practic, arhitectura poate fi extinsa pentru sisteme de asistenta a persoanelor cu deficiente de vedere in spatiile publice.
Descriere generala
Arhitectura sistemului se bazeaza pe o unitate centrala de procesare (microcontrolerul de pe placa Xplained Mini) care comunica cu mai multe module de Input/Output:
Modulul de Input (Cerere traversare): Un buton tactil (momentary switch) configurat cu rezistenta de pull-up interna. Apasarea sa este preluata si procesata de microcontroler. Pentru a preveni citirile false (bouncing), se va face debounce software/hardware, iar preluarea comenzii va fi validata doar daca timpul de garda pentru masini a expirat.
Modulul Output Vizual 1 (Semafoare): Format din 5 LED-uri controlate prin pinii GPIO. Doua stari principale sunt alternate: Trafic Auto Permis (Verde Masini, Rosu Pietoni) si Traversare Permisa (Rosu Masini, Verde Pietoni), legate printr-o stare de tranzitie (Galben Masini).
Modulul Output Vizual 2 (Interfata Text): Un display LCD 1602 conectat prin interfata I2C (pinii SDA si SCL). Acesta afiseaza starea curenta a intersectiei (“Asteptati…”, “Traversati”, “Timp auto…”) si ofera un contor invers in timpul traversarii.
Modulul Output Sonor: Un buzzer activ care emite un semnal de avertizare atunci cand semaforul pietonal este verde, pentru a asista persoanele cu deficiente de vedere.
Functionarea de ansamblu este dirijata de un Timer Hardware pe 16 biti (ex. Timer1) configurat in modul CTC, care asigura numararea secundelor si controlul starilor fara a bloca executia programului principal, permitand actualizarea fluenta a ecranului LCD.
Hardware Design
Lista de piese:
1x Placa de dezvoltare ATmega328P Xplained Mini
1x Breadboard (200 / 400 puncte)
5x LED-uri 5mm (2x Rosu, 1x Galben, 2x Verde)
5x Rezistoare 220 ohmi (pentru limitarea curentului prin LED-uri)
1x Buton tactil (Momentary Push Button) 6x6x6 mm
1x Display LCD 1602 cu modul I2C integrat
1x Buzzer Activ 5V
Fire de conexiune (Jumper wires: tata-tata si mama-tata)
Scheme electrice:
Software Design
Mediu de dezvoltare: Microchip Studio (fostul Atmel Studio) / C pur.
Librarii si surse 3rd-party:
Algoritmi si structuri:
Implementarea unui Finite State Machine (FSM) pentru logica semaforului.
Utilizarea Timer1 pentru generarea de intreruperi la intervale de 1 secunda (sau diviziuni), asigurand functionarea asincrona.
Rutina de Debounce software pentru buton.
Rezultate Obtinute
Concluzii
Download
Jurnal
Bibliografie/Resurse