Parcare Garaj

Dima Cristian, 333CA

Introducere

Scopul proiectului este de a facilita parcarea unei masini in spatii restranse, in cazul meu, intr-un garaj. Senzorii de proximitate sunt montati pe peretii din lateral si din spatele garajului. Majoritatea masinilor au deja senzori de parcare, insa nu toate. Proiectul meu ar ajuta persoanele care nu au senzori de parcare pe masina si nu pot/nu vor sa isi puna, astfel si-i pot monta separat in garaj.

Descriere generală

Fiecare senzor de parcare va trimite date catre arduino, acesta va decide daca este necesara emiterea semnalelor acustico-vizuale si la ce intensitate. Sunt luate in considerare doar distantele mai mici de 1m fata de senzor, iar la mai putin de 1m sunt 5 “nivele” de intensitate.

Hardware Design

Lista de piese:

  • Arduino UNO
  • Breadboard
  • 3x HC-SR04 Ultrasonic Sensor 3V
  • 3x Buzzer
  • 3x LED
  • Rezistente de 150Ω
  • Fire

Observatie: Senzorii ultrasonici din Tinkercad functioneaza la o tensiune de 5V, in cadrul proiectului fizic i-am conectat la tensiunea de 3V

Software Design

IDE-ul folosit a fost Arduino IDE 1.8.19

Pentru a calcula distanta relativa fata de senzor am folosit urmatoarea functie:

int CDistance(int a, int b){    //Calculating distance function, it takes two arguments (Trigger and Echo) and it executes the usual process of the HC-SR04
     digitalWrite(a, LOW); 
     delayMicroseconds(2);       
     digitalWrite(a, HIGH);
     delayMicroseconds(10);      
     digitalWrite(a, LOW); 
     duration = pulseIn(b, HIGH); 
     distance = duration*(0.034/2); 
     return distance;   //Return the distance calculated
}

Pe care am preluat-o de aici: https://create.arduino.cc/projecthub/SurtrTech/parking-radar-sensor-bf2269

Snippet de cod ce reprezinta tratarea cazului in care masina se afla suficient de aproape de partea din dreapta (celelalte fiind similare)

//THE RIGHT SIDE
    if(distanceR > 0 && distanceR < Maxdistance){   //Range of distance
      short LevelR=map(distanceR,0,Maxdistance,5,0);    //Scaling the distance from 0-100 m to a scale from 5-0
      tone(buzzR, 500 * LevelR);
      analogWrite(buzzR, 75 * LevelR);
      LedRDelay = 500 * (5 - LevelR);
    }
    if(distanceR > Maxdistance) {   //We're safe, there's enough space
      noTone(buzzR);
      LedRDelay = 2000;
    }
    if((timeNow - prevBlinkLedR)%2000 > LedRDelay) {
      prevBlinkLedR += timeNow;
      digitalWrite(ledR, HIGH);
    }

Rezultate Obţinute

Am realizat proiectul fizic pe un singur breadboard, pentru a-l putea transporta. Senzorii au ajuns sa fie foarte aproape unul de celalalt, asa ca am scos firele de legatura ale celui din mijloc (reprezentand partea din spate a garajului), deoarece era foarte usor sa se activeze toti de la acelasi stimul. Pot reface legatura daca este cazul.

Datorita delay-ului din cadrul calculului distantei, uneori buzzer-ele/led-urile nu se updateaza instant (raman putin blocate pe nivelul anterior).

Initial aveam in plan sa simulez un display printr-o banda de led-uri sectionata in 3 zone a cate 5 led-uri (cate una pentru fiecare parte, un led pentru fiecare nivel), insa nu am fost atent cand am dat comanda si mi-a venit una analog :'( . Am improvizat si am folosit 3 led-uri banale.

Download

Jurnal

  • 21.04.2022: Alegere tema proiect
  • 05.05.2022: Comanda piese
  • 01.06.2022: Asamblare + Software
  • 01.06.2022: Documentatie

Bibliografie/Resurse

pm/prj2022/sionescu/28.txt · Last modified: 2022/06/02 07:35 by cristian.dima0308
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