Autor: Marin Daniel Florin - 333CB
Proiectul meu doreste sa implementeze un radar ultrasonic rotativ, folosind o placuta arduino. Astfel, se va afisa pe ecran un radar de 180 de grade, si obiectele pe care acesta le detecteaza. La detectearea unor obiecte, se emite un sunet asemenea celui de radar din filme.
Proiectul meu va consta intr-un senzor ultrasonic si un motoras rotativ. In plus, vor fi si leduri care sa indice daca dupa o tura completa nu a fost detectat niciun obiect, si deci spatiul este sigur de avansat.
Dupa ce este conectat aparatul la sursa de alimentare, acesta va fi direct gata pentru analizarea mediului inconjurator. Motorasul roteste senzorul de la stanga la dreapta si cand se detecteaza un obiect in proximitate, semnalele sonore si vizuale sunt activate. Pe ecranul utilizatorului va aprea si graficul mediului inconjurator, asemenea imaginii de mai jos.
Exista si butonul pentru a opri functionearea radarului, in modul stand-by.
Piesele sunt in mare parte luate din kit-ul “super starter kit” pe care nu il recomand deloc deoarece a venit cu LCD-ul stricat si a trebuit sa regandescr proiectul Utilizatorul poate amplasa motorul rotativ pe o suprafata plata si apoi apasa pe butonul aflat pe breadboard, si scanarea incepe. Ledurile, buzzerul si butonul se afla pe breadboard, aceasta actionant pe post de “centrul de comanda”.
Circuitul pentru aparatul radar:
Schema proiectului:
Mediu de dezvoltare este Arduino IDE pentru suport, compilarea și încărcarea codului direct pe placa Arduino. Pentru a randa radarul pe ecran si a putea face o interfata grafica intuitiva, am folosit Processing.
codul de pe arduino:
In primul rand, folosesc biblioteca <servo.h> pentru a putea controla motorasul.
In functia de setup setez pinii de input si output si ce pin este conectat la motorasul servo ( pinul 12 ).
In functia loop se roteste motorasul pe care este atasat senzorul, si se duce inainte si inapoi intre 15 si 165 de grade ( nu am ales sa fac 360 ca sa nu se incalceasca firele ). Totodata se apeleaza si functia ce calculeaza distanta masurata de senzor.
calculateDistance() este functia in care se trimit undele, dupa care am pus un delay de 10 microsecunde pentru a avea timp sa se intoarca, si celalalt senzor de capteaza. Durata parcurgerii este masurata pe pinul echo, in timp ce distanta poate fi calculata cand inmultim durata drumului cu 0.034 ( viteza sunetului) si impart la 2 pentru ca unda ultrasonica a facut drumul dus-intors.
Intregul cod deste uploadat pe pagina de github a proiectului.
Proiectul final este un radar functional, de mici dimensiuni ( de birou ), ce detecteaza obiectele de pe masa si le mapeaza pe ecran asa cum se vede in imaginea de mai jos.
Radarul se roteste in permanenta, si ledul rgb este verde dupa o tura completa ( 180 de grade ) in care nu a fost detectat niciun obstacol, semnaland ca terenul este sigur.
In concluzie, acesta a fost un proiect ce m-a invatat multe atat pe partea de hardware, cat si pe partea de software. Radarul este complet functional, asa cum planuiam de la inceput, insa de-a lungul drumului a fost nevoie de cateva compromisuri ( sa renunt la lcd pentru ca era unul dintre pini indoit, sa schimb breadboard-ul de 2 ori cu o colega, si alte iteratii prin cod ).