This shows you the differences between two versions of the page.
pm:prj2021:abirlica:traffic-controller [2021/05/30 22:41] adrian.roman2406 [Software Design] |
pm:prj2021:abirlica:traffic-controller [2021/05/31 10:40] (current) adrian.roman2406 [Schema Tinkercad] |
||
---|---|---|---|
Line 3: | Line 3: | ||
===== Introducere ===== | ===== Introducere ===== | ||
- | 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 un drumul A este liber, iar pe drumul B a sosit o masina la semafor, semaforul corespunzator drumului B va trece pe culoarea verde. | + | 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. | 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. | ||
Line 15: | Line 15: | ||
==== Schema electrica ==== | ==== Schema electrica ==== | ||
- | {{:pm:prj2021:abirlica:traffic_controller_schema_electrica.png?300|}} | + | {{:pm:prj2021:abirlica:traffic_controller_schema_electrica.png|}} |
==== Schema Tinkercad ==== | ==== Schema Tinkercad ==== | ||
Line 33: | Line 33: | ||
** Componente ** | ** Componente ** | ||
=== Arduino UNO R3 === | === Arduino UNO R3 === | ||
+ | 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 | ||
+ | |||
{{:pm:prj2021:abirlica:traffic_arduino.jpeg?300|}} | {{:pm:prj2021:abirlica:traffic_arduino.jpeg?300|}} | ||
Line 51: | Line 61: | ||
=== Fire === | === Fire === | ||
- | - fire mama-tata | + | - fire mama-tata (realizeaza legaturile dintre senzor si placa electronica) |
- | - fire tata-tata | + | - fire tata-tata (realizeaza legaturile dintre pinii placii Arduino si placa electronica) |
- | - fire pentru cablaj | + | - fire pentru cablaj (sunt folosite pentru legarea dintre firele mentionate anterior pe spatele placii) |
{{:pm:prj2021:abirlica:traffic_fire.jpeg?300|}} | {{:pm:prj2021:abirlica:traffic_fire.jpeg?300|}} | ||
Line 78: | Line 88: | ||
- functia digitalWrite pentru a aprinde anumite led-uri in functie de logica programului si functia digitalRead pentru a citi rezultatele senzorilor IR | - 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: | **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. | + | - 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 | + | - notatia SENSOR ON se refera la faptul ca valoarea contorului a ajuns la pragul stabilit in urma analizei senzorilor |
{{:pm:prj2021:abirlica:traffic_diagram.png?300|}} | {{:pm:prj2021:abirlica:traffic_diagram.png?300|}} | ||
Line 111: | Line 123: | ||
{{:pm:prj2021:abirlica:traffic_result1.jpeg?300|}} | {{:pm:prj2021:abirlica:traffic_result1.jpeg?300|}} | ||
- | ===== Concluzie ==== | + | ===== Concluzie ===== |
- | Proiectul a fost realizat asa cum mi-am propus initial: o intersectie semaforizata inteligenta in miniatura realizata pe o placa electronica. Partea de cod nu a fost dificil 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. | + | |
+ | === Ce am realizat? === | ||
+ | |||
+ | 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. | ||
+ | |||
+ | === Ce dificultati am intampinat? === | ||
+ | |||
+ | 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. | ||
+ | |||
+ | === Ce am invatat? === | ||
+ | |||
+ | - 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 | ||
===== Download ===== | ===== Download ===== | ||
[[https://ocw.cs.pub.ro/courses/pm/prj2021/abirlica/traffic-controller&do=export_pdf | Pagina in format PDF]] | [[https://ocw.cs.pub.ro/courses/pm/prj2021/abirlica/traffic-controller&do=export_pdf | Pagina in format PDF]] | ||
+ | |||
+ | Link cod: https://github.com/adrianRoman24/Traffic-Controller-Arduino | ||
+ | |||
+ | Link demo: https://www.youtube.com/watch?v=aIv00eGcgYg&t=51s | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
Laborator 0 PM: https://ocw.cs.pub.ro/courses/pm/lab/lab0-2021 | Laborator 0 PM: https://ocw.cs.pub.ro/courses/pm/lab/lab0-2021 | ||
+ | |||
+ | Datasheet ATmega328P: https://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf | ||