EZpark
Introducere
Proiectul constă în crearea unui ansamblu de senzori de proximitate ce pot ghida o mașină în locuri fără vizibilitate.
De aceea, voi pune un senzor în față și unul în spatele mașinii. În momentul când detectează un obiect în apropiere, un led RGB va semnala situația, un buzzer va reda cat de aproape e pericolul ajustând frevența, iar pe un ecran LCD va fi reprezentată zona și distanța (un fel de HUD).
Pentru a face proiectul mai interesant voi atașa senzorii și plăcuța pe o macheta de mașina.
Descriere generală
Cu ajutorul a doi senzori de proximitate, o mașină va putea “vedea” obiectele din calea sa. Cei doi senzori vor returna distanța față de obstacole, iar aceasta va fi prelucrată astfel încât:
un buzzer va suna, dacă un obiect este periculos de aproape, iar intensitatea sunetului va fi în funcție de gradul de apropiere
un led RGB va fi verde dacă mașina are cale libera, galben dacă a sesizat un eventual pericol și roșu dacă accidentul e iminent
un ecran LCD măricel sau două ecrane pentru fiecare senzor de proximitate, unde pot reprezenta mașina și obiectele în funcție de distanță
Schema bloc:
Hardware Design
Listă piese:
Schema electrica:
.
Software Design
Mediu dezvoltare:
Librării şi surse 3rd-party:
Descriere sursa şi funcţii implementate:
La inceput am definit pentru buzzer, led_rgb si ecranele lcd
In setup() am setat pinii de output si am initializat interfata LCD.
In loop() apelez functia distSensor(). De aici codul meu se imparte in mai multe functii.
In distSensor(), pentru inceput calculez distanta detectata de fiecare din cei doi senzori de proximitate cu ajutorul functiei readUltrasonicDistance(), apoi urmeaza 4 conditii in functie de aceste distante realizate cu ajutorul if else. Conditiile implica nivelul de amenintare detectat de senzorul de distanta. Astfel, daca una din distante e mai mica de 7 cm programul va aprinde ledul rgb pe culoarea rosie, buzzerul va suna foarte ascutit si des, iar pe ecran se va afisa DANGER IMINENT! si o reprezentare a distantei cu linii pentru o intelegere mai usoara. Analog, daca distantele sunt intre 7 si 15 cm ledul va fi portocaliu, buzzerul va suna mai rar si cu o tonalitate mai joasa, iar pe ecran va scrie MEDIUM DANGER! si vor afisate mai multe linii decat in cazul precedent. Daca distantele sunt intre 15 si 25 de cm ledul va fi galben, buzzerul va suna rar si jos, iar lcd-ul va afisa CAUTION DANGER!. Altfel, daca distantele sunt mai mari de 30 de cm va ledul va fi verde, buzzerul nu va suna, iar pe ecran nu se va afisa nimic. Daca distantele nu intra pe niciuna din conditiile de mai sus ledul va fi mov. Pentru a aprinde ledul o anume culoare vom folosi functia RGB_color(). Pentru a porni buzzerul si a modifica frecventa si amplitudinea sunetului vom folosi functia tone() inclusa in libraria Arduino. Pentru a afisa pe ecranele lcd vom apela functiile displayBack() si displayFront().
Functia readUltrasonicDistance() primeste ca parametri triggerPin si echoPin de la senzorul ultrasonic, pune pinul trigger pe HIGH timp de 10 ms, iar apoi citeste de pe pinul echo si returneaza timpul in ms al undei de sunet pana cand intalneste un obiect.
Functia RGB_color() primeste 3 parametrii R, G, B si scrie aceste valori pe pinii ledului RGB aprinzandu-l in diferite culori.
Functiile displayBack() si displayFront() afiseaza diferite mesaje pe ecranele corespunzatoare senzorului de proximitate din fata, respectiv cel din spate.
}
Rezultate Obţinute
De mentionat faptul ca programul prioritizeaza severitatea apropierii, astfel incat daca un obiect e la o distanta medie, iar altul foarte aproape, ledul va semnala obiectul cel mai aproape.
Concluzii
A fost printre cele mai interesante proiecte pe care le-am facut
Am cumparat 3 ecrane in total deoarece 2 ecrane lcd 20×4 nu functionau cand le conectam, asa ca am luat inca unul I2C
A fost foarte util sa fac proiectul in Tinkercad, iar apoi doar sa-l asamblez
Am ars un led RGB
Am invatat ca la astfel de proiecte e foarte util sa ai piese de rezerva
Nu exista niciun magazin fizic de unde sa iei componentele in Bucuresti, asa ca de fiecare data cand iti trebuie ceva e nevoie sa dai o comanda pe internet
Download
Jurnal
21.04.2022 - Alegere tema proiect, descriere proiect
05.05.2022 - Cumparare componente
20.05.2022 - Finalizare schita proiect in Tinkercad
22.05.2022 - Asamblare proiect, e nevoie de un nou ecran lcd
27.05.2022 - Documentatie finala
28.05.2022 - Nou ecran lcd
Bibliografie/Resurse