Autor: Adrian ROMAN
Proiectul consta intr-o intersectie semaforizata inteligenta realizata cu ajutorul LED-urilor pentru simularea semafoarelor si cu ajutorul senzorilor IR pentru a detecta daca un drum este liber sau nu astfel incat daca drumul A este liber, iar pe drumul B a sosit o masina la semafor care are culoarea rosie, semaforul corespunzator drumului B va trece pe culoarea verde.
Ideea proiectului a plecat de la pasiunea mea pentru masini. M-am gandit sa fac ceva legat de acest subiect, iar o intersectie semaforizata pe care sa o gandesc dupa o logica proprie mi s-a parut o idee buna.
Intersectia va functiona normal, avand doua drumuri care se intalnesc, cu mentiunea ca atunci cand un drum este liber si are culoarea verde a semaforului, aceasta va trece pe rosu daca pe drumul perpendicular vin masini.
Legenda:
- negru = GROUND
- rosu, verde, galben = Conexiunea de la pini la LED-urile fiecarui semafor
- maro = VCC = 5V
- bleo = V_OUT SENZORI IR
Componente
Folosesc urmatoarele componente ale placii Arduino:
- Alimentarea (Vcc) de 5V, GND
- pinii 2 - 4 pentru comandarea ledurilor de pe semafoarele drumului A
- pinii 5 - 7 pentru comandarea ledurilor de pe semafoarele drumului B
- pinii 8 - 11 pentru obtinerea tensiunii de output a senzorilor
- led-uri simple de 5mm, de culoare rosie, galbena si verde
- sunt comandati de pinii placii Arduino
- fire mama-tata (realizeaza legaturile dintre senzor si placa electronica)
- fire tata-tata (realizeaza legaturile dintre pinii placii Arduino si placa electronica)
- fire pentru cablaj (sunt folosite pentru legarea dintre firele mentionate anterior pe spatele placii)
- module de senzori infrarosu cu 3 pini: alimentare (Vcc=5V), ground (GND) si tensiune de iesire (V_out). Cand senzorul detecteaza un obiect, ambele leduri de pe acesta se aprind si tensiunea de iesire este zero
- pot detecta obiecte aflate la 2cm - 30cm in fata lor, prin folosirea unui transmitator si a unui receptor
- pentru acest proiect, sunt calibrati la distanta minima de detectare (aprox 2cm)
Pentru software am folosit urmatoarele unelte:
- define-uri pentru a retine rolul diverselor entitati (de exemplu pinul ce comanda culoarea rosu a unui drum, durata in milisecunde a culorii galben sau numarul total de iteratii pentru o bucla)
- functia digitalWrite pentru a aprinde anumite led-uri in functie de logica programului si functia digitalRead pentru a citi rezultatele senzorilor IR
- functii definite pentru setarea anumitor stari (de exemplu, set_red_a seteaza pe HIGH pinul corespunzator ledurilor rosii de pe drumul A)
Codul este disponibil la link-ul: https://github.com/adrianRoman24/Traffic-Controller-Arduino si este descris prin diagrama de mai jos la care sunt de adaugat urmatoarele observatii:
- o bucla (de exemplu ROAD_A_LOOP) are un numar stabilit de iteratii, iar la fiecare iteratie se verifica senzorii si in caz ca drumul curent este liber si drumul perpendicular pe acesta este ocupat se incrementeaza contorul, altfel contorul se reseteaza. Cand contorul ajunge la un prag stabilit se iese din bucla, astfel permitandu-i semaforului de pe drumul perpendicular sa treaca pe verde, iar altfel se asteapta un timp pana la urmatoarea iteratie.
- notatia SENSOR ON se refera la faptul ca valoarea contorului a ajuns la pragul stabilit in urma analizei senzorilor
Link prezentare: https://www.youtube.com/watch?v=aIv00eGcgYg&t=51s
Constructia acestor semafoare micute a fost realizata prin decuparea unei bucati de placa pe care am lipit cele trei led-uri si cele trei rezistente. Pinii acestui modul de la stanga la dreapta sunt: GND, pin Arduino rosu, pin Arduino galben si pin Arduino verde.
In principiu, culorile folosite sunt: negru pentru GND, rosu pentru pinii ce comanda un led rosu, verde pentru pinii ce comanda un led verde si albastru pentru pinii ce comanda un led galben.
Proiectul a fost realizat asa cum mi-am propus initial: o intersectie semaforizata inteligenta in miniatura realizata pe o placa electronica cu ajutorul LED-urilor si senzorilor IR.
Partea de cod nu a fost greu de implementat intrucat este o logica destul de simpla, insa partea hardware a necesitat mai mult timp si precizie din cauza cablajului realizat cu ajutorul pistolului de lipit pe spatele placii si pe spatele semafoarelor.
- sa folosesc placa Arduino pentru a realiza un proiect practic
- sa folosesc pistolul de lipit pentru realizarea cablajelor
- sa organizez componentele unui proiect si sa gandesc legaturile dintre ele
Link cod: https://github.com/adrianRoman24/Traffic-Controller-Arduino
Link demo: https://www.youtube.com/watch?v=aIv00eGcgYg&t=51s