Be on the Safe Side

Talina Laura-Florina
Grupa: 334CB

Introducere

Be on the Safe Side este un concept de semafor inteligent care se asigura de doua ori pentru tine. Aceste este menit sa asigure siguranta pietonilor si bunastarea traficului rutier, si poate fi amplasat in zonele in care nu exista o cantitate asa mare de pietoni, pentru a avea un semafor normal care sa se declanseze la un anumit interval de timp. Astfel acesta fluidizeaza traficul, intrucat permite pietonilor sa treaca doar daca detecteaza prezenta lor.

Descriere generală

Proiectul contine doua leduri RGB, reprezentand un semafor pentru soferi si un semafor pentru pietoni, un senzor de miscare care detecteaza prezenta pietonilor. In momentul in care prezenta pietonului este detectata se asteapta un anumit timp, dupa care semaforul soferilor da semnal cu privire la faptul ca culoarea verde o sa dispara, se face galben iar apoi rosu. Considerand un anumit timp care sa permita masinilor sa franeze in siguranta, este declansata o bariera, reprezentate printr-un servomotor. Culoarea semaforului pentru pietoni se face verde. \\Dupa un anumit timp in care pietonii pot trece, verdele pietonilor blink-uieste, dupa care semaforul se face rosu. Bariera este ridicata si se permite masinilor sa isi reia circulatia.
Mai exista un LCD, pe care sunt afisate mesaje pentru pieton.

Hardware Design

Componente:

  1. Placuta Arduino UNO R3
  2. Senzor de miscare PIR
  3. 2 leduri RGB
  4. LCD
  5. Servomotor
  6. Fire
  7. Rezistente
  8. Buzzer

Schema bloc:

Schema electrica:

Software Design

Mediu de dezvoltare:

  1. Dezvoltare cod si incarcarea acestuia pe arduino: Arduino IDE, Tinkercad
  2. Realizare schema bloc: Word
  3. Realizare schema electrica: Tinkercad

Biblioteci:

- Arduino: Servo.h LiquidCrystal_I2C.h

Descrierea codului:

In prima faza, ledul corespondent semaforului soferilor este setat pe verde, iar cel al pietonilor este setat pe rosu. Pe LCD se afiseaza un mesaj pentru pietoni, indicand ca acestia trebuie sa astepte culoarea verde. Se verifica in permanenta daca senzorul de miscare detecteaza ceva, in caz afirmativ, cand valoarea primita de la senzor este “HIGH”, se asteapta o perioada de timp, folosind fie functia delay(), fie niste functii predefinite care asteapta un anumit numar de secunde, si se apeleaza o functie care face ledul verde pentru soferi sa blink-uiasca, dupa care este rosu. Dupa acest moment, se asteapta o perioada de timp, se da semnal sonor si se modifica pozitia servomotorului, aducandu-l in pozitie orizontala. Ledul soferilor este facut rosu. Pe LCD va fi afisat un mesaj pentru pietoni, indicand faptul ca acestia pot traversa. Se asteapta o perioada de timp mai mare, pentru a permite pietonilor sa treaca, dupa aceasta perioada de timp, se apeleaza o functie care face ca ledul verde a pietonilor sa blink-uiasca, buzzerul scoate din nou un sunet specific, servomotorul este adus in pozitie verticala, si ledul soferilor se face verde. Pe LCD se va reveni la mesajul initial, indicand pietonilor sa astepte.
S-a introdus un interval de timp, pentru cazul in care pietonii vin cu o frecventa foarte ridicata, astfel, culoarea verde a pietonilor se declanseaza doar dupa ce acest interval de timp trece si se detecteaza miscare.

Functii:

- Arduino:

  • setup() → initializarea display-ului LED, a ledurilor, a servomotorului
  • void driver_color(int red, int green, int blue) → seteaza culoarea pentru semaforul soferilor
  • void pedestrian_color(int red, int green, int blue) → seteaza culoarea pentru semaforul pietonilor
  • void wait_10sec() → functie care introduce delay de 10 secunde
  • void wait_20sec() → functie care introduce delay de 20 secunde
  • void wait_30sec() → functie care introduce delay de 30 secunde
  • void wait_60sec() → functie care introduce delay de 60 secunde
  • void blink_driver_led() → face blink pe culoarea verde a ledului soferului
  • void blink_pedestrian_led() → face blink pe culoarea verde a ledului pietonului
  • void pedestrian_crossing() → simuleaza trecerea pietonului, incluzand punerea ledului pietonului pe verde si afisarea pe LCD a unui mesaj ce contine informatia “POTI TRAVERSA” + numarul de secunde ramase
  • void end_pedestrian_crossing() → simuleaza incetarea trecerii pietonului, incluzand blink-ul ledului verde, colorarea in rosu, si afisarea pe LCD a informatiei “ASTEAPTA CULOAREA VERDE”
  • void activate_buzzer() → functie care activeaza buzzerul, facandu-l sa scoata un sunet distinctiv de 3 ori
  • loop() → verifica daca senzorul de miscare detecteaza miscare, daca intervalul de timp de la ultima detectare este respectat, si in acest caz respecta toata logica definita la Descrierea codului. Se foloseste de functiile definite anterior, iar in plus, controleaza ledul soferilor atunci cand este nevoie, si bariera.

Rezultate Obţinute

Concluzii

Mi-a placut foarte mult sa lucrez la acest proiect si as dori sa ii mai adaug noi functionalitati pe viitor, pentru ca desi este o idee simpluta, ea are o aplicabilitate reala si ar fi foarte utila de pus in practica, oferind mai multa siguranta pietonilor, dar ajutand si la fluidizarea traficului si evitarea producerii aglomerarii. De asemenea, am facut primii mei pasi in lumea Arduino si mi-am dat seama ca nu este atat de greu asa cum imi imaginam, ci necesita doar dorinta de a cauta informatii despre piese, despre modul lor de conectare si de a realiza ceva frumos.

Download

Jurnal

  • 19.04.2022 - alegere tema proiect
  • 09.05.2022 - comandare pise
  • 11.05.2022 - sosire piese
  • 15.05.2022 - conectarea pieselor
  • 21.05.2022 - procurarea pieselor lipsa/defecte
  • 25.05.2022 - finalizare proiect
  • 27.05.2022 - etapa 2 wiki

Bibliografie/Resurse

pm/prj2022/sgherman/beonthesafeside.txt · Last modified: 2022/06/02 00:03 by laura.talina
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0