Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2022:sgherman:beonthesafeside [2022/05/27 23:29]
laura.talina
pm:prj2022:sgherman:beonthesafeside [2022/06/02 00:03] (current)
laura.talina [Download]
Line 16: Line 16:
   - Fire   - Fire
   - Rezistente   - Rezistente
 +  - Buzzer
  
 __**Schema bloc:**__ __**Schema bloc:**__
  
-{{:​pm:​prj2022:​sgherman:​p1.png?700|}}+{{:​pm:​prj2022:​sgherman:​laura_bloc.jpg?700|}}
  
 __**Schema electrica:​**__ __**Schema electrica:​**__
  
-{{:​pm:​prj2022:​sgherman:​p2.png?700|}}+{{:​pm:​prj2022:​sgherman:​laura_schema.jpg?700|}}
  
 ===== Software Design ===== ===== Software Design =====
Line 38: Line 39:
  
 ===Descrierea codului:=== ===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 acesta ​este galben, iar apoi rosu. Dupa acest moment, se asteapta o perioada de timp 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,​ 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.+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:​== ==Functii:​==
 - Arduino: - Arduino:
   * setup() -> initializarea display-ului LED, a ledurilor, a servomotorului   * setup() -> initializarea display-ului LED, a ledurilor, a servomotorului
   * void driver_color(int red, int green, int blue) -> seteaza culoarea pentru semaforul soferilor   * void driver_color(int red, int green, int blue) -> seteaza culoarea pentru semaforul soferilor
-  * void passer_color(int red, int green, int blue) -> seteaza culoarea pentru semaforul pietonilor +  * void pedestrian_color(int red, int green, int blue) -> seteaza culoarea pentru semaforul pietonilor
-  * loop() -> verifica daca senzorul de miscare detecteaza miscare, daca intervalul de timp de la ultima detectare este respectat, si respecta toata logica definita la Descrierea codului+
   * void wait_10sec() -> functie care introduce delay de 10 secunde   * void wait_10sec() -> functie care introduce delay de 10 secunde
   * void wait_20sec() -> functie care introduce delay de 20 secunde   * void wait_20sec() -> functie care introduce delay de 20 secunde
   * void wait_30sec() -> functie care introduce delay de 30 secunde   * void wait_30sec() -> functie care introduce delay de 30 secunde
   * void wait_60sec() -> functie care introduce delay de 60 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.
  
  
Line 57: Line 62:
 ===== Concluzii ===== ===== 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. 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 =====
 +{{:​pm:​prj2022:​sgherman:​laura_arh.zip.zip|}}
  
 ===== Jurnal ===== ===== Jurnal =====
pm/prj2022/sgherman/beonthesafeside.1653683368.txt.gz · Last modified: 2022/05/27 23:29 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