Dima Cristian, 333CA
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.
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.
Lista de piese:
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); }
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.