This shows you the differences between two versions of the page.
pm:prj2021:amocanu:boxacuradar [2021/06/02 16:29] bogdan_mihai.radoi [Concluzii] |
pm:prj2021:amocanu:boxacuradar [2021/06/02 21:09] (current) bogdan_mihai.radoi [Hardware Design] |
||
---|---|---|---|
Line 23: | Line 23: | ||
=== Schema bloc === | === Schema bloc === | ||
- | {{:pm:prj2021:amocanu:schema_bloc_f.png?500|}} | + | {{:pm:prj2021:amocanu:schema_bloc_boxaradar.png?500|}} |
=== Schema electrică === | === Schema electrică === | ||
Line 30: | Line 30: | ||
===== Software Design ===== | ===== Software Design ===== | ||
- | ===Mediu de dezvoltare=== | + | ===Mediul de dezvoltare=== |
* Arduino IDE | * Arduino IDE | ||
Line 39: | Line 39: | ||
-- Folosit pentru a putea comunica cu servomotoarele. | -- Folosit pentru a putea comunica cu servomotoarele. | ||
- | ===Descrierea implementarii=== | + | ===Descrierea implementării=== |
+ | ==Funcția setup()== | ||
+ | * Am initializat pinii pentru servomotoare. | ||
+ | * Am setat pinii de input si output. | ||
+ | |||
+ | ==Funcția loop()== | ||
+ | |||
+ | * Am realizat doua structuri for pentru rotatia servomotorului cu senzorul ultrasonic de la 0 la 120 de grade si invers. | ||
+ | * In aceste for-uri am folosit functia write pentru a realiza miscarea servomotoarelor. | ||
+ | * Am calculat distanta detectata de senzorul ultrasonic folosind functia calculateDistance. | ||
+ | * Cat timp distanta detectata de senzor este mai mare decat 50, se va roti si servomotorul cu buzzer-ul pasiv de jos. | ||
+ | * Daca un obstacol a fost detectat (distanta este mai mica decat 50), acesta se va opri, va scoate un sunet acut folosind functia tone si isi va continua miscarea cand obstacolul nu mai este detectat, sunetul fiind de data aceasta grav. | ||
+ | * Am folosit print pentru a afisa valoarea lui i (unghiul la care se afla senzorul ultrasonic) si distanta corespunzatoare. Astfel a fost mai usor sa fac debugging. | ||
+ | |||
+ | |||
+ | ==Funcția calculateDistance()== | ||
+ | |||
+ | * Pentru a calcula distanta detectata de senzorul ultrasonic am inceput prin a ma asigura ca pinul de trigger este setat pe LOW, apoi dupa 2μs il voi seta pe HIGH pentru a genera semnalul ultrasonic. | ||
+ | * Am calculat durata deplasarii semnalului folosind pulseIn. | ||
+ | * In final am calculat distanta inmultind durata cu viteza sunetului si impartind la 2 pentru a compensa pentru drumul dus-intors al semnalului. | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
+ | |||
+ | [[https://www.youtube.com/watch?v=UNAuH2X-Q9Q|Demo]] | ||
+ | |||
+ | {{:pm:prj2021:amocanu:boxacuradar1.jpg?300 |}} | ||
+ | {{:pm:prj2021:amocanu:boxacuradar2.jpg?300 |}} | ||
+ | {{:pm:prj2021:amocanu:boxacuradar3.jpg?300 |}} | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
* Proiectul a fost realizat in intregime, toate functionalitatile propuse fiind implementate. | * Proiectul a fost realizat in intregime, toate functionalitatile propuse fiind implementate. | ||
- | * Proiectul mi s-a parut foarte interesant si a reprezentat o introducere buna in Arduino si proiectarea cu microprocesoare. | + | * Proiectul mi s-a parut foarte interesant si a reprezentat o introducere buna in Arduino si in proiectarea cu microprocesoare. |
===== Download ===== | ===== Download ===== | ||
- | <note warning> | + | {{:pm:prj2021:amocanu:radoi_bogdan-mihai_333cb_pm_boxa_cu_radar_2021.zip|}} |
- | O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-). | + | |
- | + | ||
- | Fişierele se încarcă pe wiki folosind facilitatea **Add Images or other files**. Namespace-ul în care se încarcă fişierele este de tipul **:pm:prj20??:c?** sau **:pm:prj20??:c?:nume_student** (dacă este cazul). **Exemplu:** Dumitru Alin, 331CC -> **:pm:prj2009:cc:dumitru_alin**. | + | |
- | </note> | + | |
===== Jurnal ===== | ===== Jurnal ===== | ||