Boxă cu Radar
Autor
Introducere
Proiectul consta intr-o boxa (in acest caz un buzzer pasiv) care evita obstacole pentru a obtine calitatea optima a sunetului.
Descriere generală
Proiectul are la baza un sistem radar, format dintr-un senzor ultrasonic atasat la un servomotor care se va misca stanga-dreapta constant pe un unghi de 120 de grade. La acest sistem se va atasa un alt servomotor cu buzzer, care va scoate constant un sunet si se va misca in zonele in care radarul nu detecteaza niciun obstacol. Daca un obstacol a fost detectat, servomotorul cu buzzer se va opri si va continua sa se miste in pozitia in care radarul nu a mai detectat nimic. De asemenea, buzzer-ul va scoate un sunet distinct atunci cand senzorul ultrasonic a detectat un obstacol.
Hardware Design
Listă de piese
Schema bloc
Schema electrică
Software Design
Mediul de dezvoltare
Arduino IDE
Visual Studio Code
Biblioteci
Servo.h
– Folosit pentru a putea comunica cu servomotoarele.
Descrierea implementării
Funcția setup()
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
Concluzii
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 in proiectarea cu microprocesoare.
Download
Jurnal
26/04 - Alegere tema proiect
10/05 - Crearea paginii de wiki
02/06 - Finalizare paginii de wiki
Bibliografie/Resurse