This shows you the differences between two versions of the page.
pm:prj2021:agrigore:senzor-parcare [2021/05/24 23:46] iulia_anita.grigore |
pm:prj2021:agrigore:senzor-parcare [2021/05/28 23:09] (current) iulia_anita.grigore |
||
---|---|---|---|
Line 3: | Line 3: | ||
[[iulia_anita.grigore@stud.acs.upb.ro|Grigore Iulia-Anita]] | [[iulia_anita.grigore@stud.acs.upb.ro|Grigore Iulia-Anita]] | ||
===== Introducere ===== | ===== Introducere ===== | ||
- | Proiectul are ca scop crearea unui senzor de parcare ce va emite sunete pe frecvente diferite in functie de apropierea fata de un obstacol si va afisa pe un display distanta in cm si un mic desen reprezentativ pentru a ilustra apropierea fata de obiect. Ideea acestui proiect a venit din dorinta de a crea ceva cu aplicabilitate practica in viata reala, chiar daca implementarea mea este una minimalista. | + | Proiectul are ca scop crearea unui senzor de parcare ce va emite sunete pe frecvențe diferite în funcție de apropierea față de un obstacol și va afișa pe un display distanță în cm și un mic desen reprezentativ pentru a ilustra apropierea față de obiect. Ideea acestui proiect a venit din dorința de a crea ceva cu aplicabilitate practică în viață reală, chiar dacă implementarea mea este una minimalistă. |
===== Descriere generală ===== | ===== Descriere generală ===== | ||
Line 9: | Line 9: | ||
{{:pm:prj2021:agrigore:schema-bloc-anitagrigore.png?500|}} | {{:pm:prj2021:agrigore:schema-bloc-anitagrigore.png?500|}} | ||
==== Funcționalitate ==== | ==== Funcționalitate ==== | ||
- | Proiectul presupune utilizarea unui senzor de distanta pentru a detecta gradul de apropiere fata de un obstacol. In momentul in care un anumit prag a fost atins (ex.obiectul se afla la 50 cm de senzor), un buzzer se va declansa si va emite sunete pe o anumita frecventa. Cu cat obiectul se apropie/departeaza, se va schimba rapiditatea emiterii sunetului. Pe tot parcursul functionarii, se va afisa pe un display distanta si un desen minimal care sa reprezinte masina si obiectul. | + | Proiectul presupune utilizarea unui senzor de distanță pentru a detecta gradul de apropiere față de un obstacol. În momentul în care un anumit prag a fost atins (ex.obiectul se află la 50 cm de senzor), un buzzer se va declanșa și va emite sunete pe o anumită frecvența. Cu cât obiectul se apropie/depărtează, se va schimbă rapiditatea emiterii sunetului. Pe tot parcursul funcționarii, se va afișa pe un display distanță și un desen minimal care să reprezinte mașină și obiectul. |
===== Hardware Design ===== | ===== Hardware Design ===== | ||
Line 15: | Line 15: | ||
* Arduino Uno | * Arduino Uno | ||
* Breadboard | * Breadboard | ||
- | * Senzor de distanta (HC-SR04) | + | * Senzor de distanță (HC-SR04) |
* Buzzer | * Buzzer | ||
* Jumper wires | * Jumper wires | ||
Line 22: | Line 22: | ||
==== Schema electrică ==== | ==== Schema electrică ==== | ||
{{:pm:prj2021:agrigore:schema_electrica_senzor_p.jpeg?500|}} \\ | {{:pm:prj2021:agrigore:schema_electrica_senzor_p.jpeg?500|}} \\ | ||
+ | {{:pm:prj2021:agrigore:schema2.jpg?300|}} | ||
+ | {{:pm:prj2021:agrigore:schema1.jpg?300|}} | ||
+ | {{:pm:prj2021:agrigore:schema3.jpg?300|}} | ||
+ | |||
===== Software Design ===== | ===== Software Design ===== | ||
====Mediul de dezvoltare==== | ====Mediul de dezvoltare==== | ||
- | * **Arduino IDE** -> dezvoltarea codului si incarcarea acestuia pe Arduino | + | * **Arduino IDE** -> dezvoltarea codului și încărcarea acestuia pe Arduino |
* **Eagle** -> realizarea schemei electrice | * **Eagle** -> realizarea schemei electrice | ||
* **Draw.io** -> realizarea schemei bloc | * **Draw.io** -> realizarea schemei bloc | ||
Line 30: | Line 34: | ||
====Librarii folosite==== | ====Librarii folosite==== | ||
* Pentru Eagle: | * Pentru Eagle: | ||
- | * Libraria Adafruit pentru adaugarea schemei pentru Arduino ((https://github.com/adafruit/Adafruit-Eagle-Library)) | + | * Libraria Adafruit pentru adăugarea schemei pentru Arduino ((https://github.com/adafruit/Adafruit-Eagle-Library)) |
* Libraria TFT Display ((https://www.diymodules.org/eagle-show-library?type=usr&id=1012211175)) | * Libraria TFT Display ((https://www.diymodules.org/eagle-show-library?type=usr&id=1012211175)) | ||
* Libraria pentru senzorul HC-SR04 ((https://www.diymodules.org/eagle-show-object?type=dm&file=diy-modules.lbr&device=ULTRASONIC-HC-SR04)) | * Libraria pentru senzorul HC-SR04 ((https://www.diymodules.org/eagle-show-object?type=dm&file=diy-modules.lbr&device=ULTRASONIC-HC-SR04)) | ||
Line 37: | Line 41: | ||
====Structura codului==== | ====Structura codului==== | ||
- | Intreaga functionalitate a proiectului este impartita in functii cat mai specifice, ce sunt apelate in ''loop''. Asfel, pentru a lua informatii de la senzor, m-am folosit de acest [[https://create.arduino.cc/projecthub/knackminds/how-to-measure-distance-using-ultrasonic-sensor-hc-sr04-a-b9f7f8|tutorial]]. | + | Întreaga funcționalitate a proiectului este împărțită în funcții cât mai specifice, ce sunt apelate în ''loop''. Asfel, pentru a lua informații de la senzor, m-am folosit de acest [[https://create.arduino.cc/projecthub/knackminds/how-to-measure-distance-using-ultrasonic-sensor-hc-sr04-a-b9f7f8|tutorial]]. |
- | Pentru a afisa informatii pe LCD, am implementat functiile: | + | Pentru a afișa informații pe LCD, am implementat funcțiile: |
* ''printUI'' | * ''printUI'' | ||
* ''printSelf'' | * ''printSelf'' | ||
* ''printDistance'' | * ''printDistance'' | ||
* ''printDistanceCircle'' | * ''printDistanceCircle'' | ||
- | Ultimul pas a fost sa recreez sunetul emis se un senzor de parcare de la o masina reala. Pentru a face acestu lucru, am folosit un buzzer pe care l-am programat folosind doua intreruperi: una pentru cand incepe sa se auda si una pentru cand trebuie sa se opreasca. Frecventa emiterii sunetului este calculata in functie de distanta obiectului fata de senzor (in functia ''beep_freq''). | + | Ultimul pas a fost să recreez sunetul emis de un senzor de parcare de la o mașină reală. Pentru a face acestu lucru, am folosit un buzzer pe care l-am programat folosind două întreruperi: una pentru când începe să se audă și una pentru când trebuie să se oprească. Frecvența emiterii sunetului este calculată în funcție de distanță obiectului față de senzor (in funcția ''beep_freq''). |
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
+ | **Demo** \\ | ||
+ | [[https://youtu.be/ZTuM_Yb7WtA|YouTube link]] \\ | ||
+ | [[https://youtu.be/yc4x-VXK_Hc|YouTube link]] \\ | ||
+ | |||
+ | În final, rezultatul este un "senzor de parcare" (pentru mașini de jucărie cel mult), care măsoară distanță unui obstacol aflat la maxim 1m față de "mașină" și afișează pe display distanță în cm și un desen simbolic. În acest desen avem un punct fix alb, ce reprezintă mașină și un cerc care se află mai aproape sau mai departe, în funcție de unde se află obstacolul. De asemenea, avem și sunetul caracteristic. Un buzzer începe să scoată sunete când obstacolul este la mai puțin de 50 cm și scade perioada emiterii sunetului o dată cu apropierea obstacolului. | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | |||
+ | Pot spune cu certitudine că acest proiect m-a făcut să înțeleg mult mai multe despre cum pot crea ceva cu utilitate practică, cum pot folosi diverse piese hardware și cum pot programa întregul ansamblu de piese pentru a ajunge la un rezultat. Pentru rezultate mai performante, ar fi trebuit folosit un senzor de distanță cu laser în loc de cel cu ultrasunete. Însă consider că pentru un prim proiect am învățat foarte multe și sunt fericită că a ieșit ceva funcțional din mâinile mele =). | ||
===== Download ===== | ===== Download ===== | ||
- | [[https://ocw.cs.pub.ro/courses/pm/prj2021/agrigore/senzor-parcare?do=export_pdf |Download PDF]] | + | [[https://ocw.cs.pub.ro/courses/pm/prj2021/agrigore/senzor-parcare?do=export_pdf |Download PDF]] \\ |
+ | {{:pm:prj2021:agrigore:arhiva_anita.zip|Arhivă}} | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
20 Aprilie -> alegerea temei proiectului \\ | 20 Aprilie -> alegerea temei proiectului \\ | ||
- | 26 Aprilie -> creare pagina de documentatie \\ | + | 26 Aprilie -> creare pagină de documentație \\ |
03-22 Mai -> lucru la montajul hardware \\ | 03-22 Mai -> lucru la montajul hardware \\ | ||
- | 22 Mai -> realizarea si adaugarea schemei electrice \\ | + | 22 Mai -> realizarea și adăugarea schemei electrice \\ |
- | 24 Mai -> adaugare sofware design \\ | + | 24 Mai -> adăugare sofware design \\ |
+ | 28 Mai -> adăugare demo, concluzii și arhivă \\ | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||