This shows you the differences between two versions of the page.
pm:prj2021:agrigore:senzor-parcare [2021/04/25 16:10] iulia_anita.grigore created |
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 distanata in cm. | + | 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 10 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 frecventa sunetului. Pe tot parcursul functionarii, se va afisa pe un display distanta si, eventual, 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 | + | * Senzor de distanță (HC-SR04) |
* Buzzer | * Buzzer | ||
- | * Fire | + | * Jumper wires |
+ | * 1.44' 128*128 TFT_LCD | ||
+ | |||
+ | ==== Schema electrică ==== | ||
+ | {{: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==== | ||
+ | * **Arduino IDE** -> dezvoltarea codului și încărcarea acestuia pe Arduino | ||
+ | * **Eagle** -> realizarea schemei electrice | ||
+ | * **Draw.io** -> realizarea schemei bloc | ||
+ | |||
+ | ====Librarii folosite==== | ||
+ | * Pentru Eagle: | ||
+ | * 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 pentru senzorul HC-SR04 ((https://www.diymodules.org/eagle-show-object?type=dm&file=diy-modules.lbr&device=ULTRASONIC-HC-SR04)) | ||
+ | * Pentru Arduino IDE: | ||
+ | * Libraria Adafruit GFX ((https://github.com/adafruit/Adafruit-GFX-Library)) | ||
+ | |||
+ | ====Structura codului==== | ||
+ | Î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 afișa informații pe LCD, am implementat funcțiile: | ||
+ | * ''printUI'' | ||
+ | * ''printSelf'' | ||
+ | * ''printDistance'' | ||
+ | * ''printDistanceCircle'' | ||
+ | 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]] \\ | ||
+ | {{: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 \\ | ||
+ | 22 Mai -> realizarea și adăugarea schemei electrice \\ | ||
+ | 24 Mai -> adăugare sofware design \\ | ||
+ | 28 Mai -> adăugare demo, concluzii și arhivă \\ | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | [[https://ocw.cs.pub.ro/courses/pm/prj2021/agrigore/senzor-parcare?do=export_pdf |Download PDF]] | ||
- | |||