Aparat de masura cu ultrasunete arduino hc-sr04, clasa robotica

Detectorul de distanță este un dispozitiv pentru măsurarea distanței față de un anumit obiect. Detectorul de rază de acțiune ajută roboții în situații diferite. Un robot simplu cu roți poate folosi acest dispozitiv pentru a detecta obstacolele. Dronul zburător folosește un detector de distanță pentru a se deplasa peste pământ la o anumită altitudine. Cu ajutorul unui telemetru de distanță, puteți chiar să construiți o hartă a camerei utilizând un algoritm special numit SLAM.







Aparat de masura cu ultrasunete arduino hc-sr04, clasa robotica

1. Principiul funcționării

De data aceasta vom analiza activitatea unuia dintre cei mai populari senzori - ultrasunete (ultrasunete). Există multe modificări diferite ale unor astfel de dispozitive, dar toate funcționează prin principiul măsurării timpului de trecere a sunetului reflectat. Adică senzorul trimite un semnal audio în direcția specificată, apoi captează ecoul reflectat și calculează timpul de zbor al sunetului de la senzor la obstacol și spate.

Din cursul fizicii școlare știm că viteza sunetului într-un mediu este constantă, dar depinde de densitatea mediului. Cunoscând viteza sunetului în aer și timpul de zbor al sunetului către țintă, putem calcula distanța parcursă de sunet în funcție de formula:

unde v este viteza sunetului în m / s și t este timpul în secunde. Viteza de zgomot în aer, apropo, este de 340,29 m / s.

Pentru a face față sarcinilor sale, telemetrul are două caracteristici de design importante. În primul rând, pentru a se asigura că sunetul este bine reflectat de obstacole, senzorul emite ultrasunete la o frecvență de 40 kHz. Pentru a face acest lucru, senzorul are un radiator piezoceramic care este capabil să genereze un sunet de o frecvență atât de înaltă. În al doilea rând, radiatorul este proiectat astfel încât sunetul să nu se răspândească în toate direcțiile (cum se întâmplă cu difuzoarele convenționale), dar într-o direcție îngustă. Figura prezintă modelul de direcționare al unui detector tipic de frecvență ultrasonică.

Aparat de masura cu ultrasunete arduino hc-sr04, clasa robotica

Așa cum se poate vedea în diagrama, unghiul de vizualizare al celui mai simplu detector de frecvențe ultrasonice este de aproximativ 50-60 de grade. Pentru un caz tipic de utilizare, atunci când senzorul detectează obstacolele din fața dvs., acest unghi de vizionare este perfect potrivit. Ecografia poate detecta chiar și piciorul scaunului, în timp ce detectorul de la distanță, de exemplu, poate să nu o observe.

Dacă ne hotărâm să scanăm spațiul din jur, rotind telemetrul într-un cerc ca un radar, detectorul de frecvențe ultrasonice ne va da o imagine foarte inexactă și zgomotoasă. În aceste scopuri, este mai bine să utilizați un aparat de căutare cu laser.

De asemenea, există două deficiențe grave ale aparatului de măsură cu ultrasunete. Primul este că suprafețele care au o structură poroasă absorb ultrasunete, iar senzorul nu poate măsura distanța față de ele. De exemplu, dacă intenționăm să măsuram distanța de la un multicopter la o suprafață de câmp cu o iarbă înaltă, vom obține cel mai probabil date foarte neclare. Aceleași probleme ne așteaptă la măsurarea distanței față de peretele acoperit cu cauciuc spumant.

Al doilea dezavantaj este legat de viteza undei sonore. Această viteză nu este suficient de mare pentru a face procesul de măsurare mai frecvent. Să presupunem că există un obstacol în fața robotului la o distanță de 4 metri. Pentru a suna zborul înainte și înapoi, va dura până la 24 ms. Ar trebui măsurată de 7 ori înainte de a plasa un detector cu ultrasunete pe roboți care zboară.

2. Detector cu ecartament HC-SR04







În această lecție vom lucra cu senzorul HC-SR04 și controlerul Arduino Uno. Acest telemetru popular poate măsura distanța de la 1-2 cm la 4-6 metri. În același timp, precizia măsurării este de 0,5 - 1 cm.

Există diferite versiuni ale aceluiași HC-SR04. Unii funcționează mai bine, alții mai rău. Le puteți deosebi prin desenarea plăcii pe partea din spate. Versiunea care funcționează bine arată astfel:

Aparat de masura cu ultrasunete arduino hc-sr04, clasa robotica
Aparat de masura cu ultrasunete arduino hc-sr04, clasa robotica

Dar versiunea care poate eșua:

Aparat de masura cu ultrasunete arduino hc-sr04, clasa robotica
Aparat de masura cu ultrasunete arduino hc-sr04, clasa robotica

3. Conectați HC-SR04

HC-SR04 are patru ieșiri. În plus față de teren (Gnd) și de putere (Vcc) există încă Trig și Echo. Ambele aceste ieșiri digitale, astfel încât să ne conectăm la orice concluzii Arduino Uno:

Schema schematică a dispozitivului

Aparat de masura cu ultrasunete arduino hc-sr04, clasa robotica

Aspectul aspectului

Aparat de masura cu ultrasunete arduino hc-sr04, clasa robotica

4. Programul

Deci, să încercăm să ordonăm senzorului să trimită un puls cu ultrasunete și să-și fixeze întoarcerea. Să vedem cum arată schema timpului HC-SR04.

Aparat de masura cu ultrasunete arduino hc-sr04, clasa robotica

Diagrama arată că, pentru a începe măsurarea, trebuie să generăm un impuls pozitiv de 10 μs la pinul Trig. După aceea, senzorul va elibera o serie de 8 impulsuri și va ridica nivelul la pinul Echo. trecerea la modul de așteptare al semnalului reflectat. De îndată ce detectorul de distanță simte că sunetul sa întors, el va completa un impuls pozitiv asupra Echo.

Se pare că trebuie să facem doar două lucruri: creați un impuls pe Trig pentru a începe măsurarea și măsurați lungimea impulsului pe Echo, apoi calculați distanța printr-o formulă simplă. Noi facem.

Funcția pulseIn măsoară lungimea impulsului pozitiv pe piciorul echoPin în microsecunde. În program, înregistrăm timpul de zbor al sunetului în durata variabilă. După cum am explicat deja, trebuie să multiplicăm timpul cu viteza sunetului:

s = durata * v = durata * 340 m / s

Transmitem viteza sunetului de la m / s în cm / μs:

s = durată * 0,034 m / μs

Pentru comoditate, vom transforma zecimală într-un obișnuit:

s = durata * 1/29 = durata / 29

Și acum rețineți că sunetul a trecut două distanțe căutate: la țintă și la spate. Vom împărți totul cu 2:

s = durata / 58

Acum știm de unde a venit numărul 58!

Descărcați programul pe Arduino Uno și deschideți monitorul portului serial. Acum, să încercăm să îndreptăm senzorul spre obiecte diferite și să vedem distanța calculată pe monitor.

Acum, că știm cum să calculeze distanța cu ajutorul unui mijloc de apropiere, vom face câteva dispozitive utile.

  1. Găsiți gama de clădiri. Programul la fiecare 100 ms măsoară distanța cu ajutorul unui detector de distanță și afișează rezultatul pe un afișaj LCD caracteristic. Pentru confort, dispozitivul rezultat poate fi plasat într-o carcasă mică și alimentat de la baterii.
  2. Trestie ultrasonică. Să scriem un program care va "scuipa" cu un buzzer la o frecvență diferită, în funcție de distanța măsurată. De exemplu, dacă distanța față de obstacol este mai mare de trei metri - soneria emite un sunet o dată la o jumătate de secundă. Cu o distanță de 1 metru - la fiecare 100ms. Mai puțin de 10 cm - întotdeauna squeals.

concluzie

Dispozitivul de măsurare cu ultrasunete este un senzor ușor de utilizat, ieftin și precis, care își îndeplinește perfect funcția pe mii de roboți. După cum am învățat din lecție, senzorul are dezavantaje care ar trebui luate în considerare la construirea unui robot. O soluție bună poate fi partajarea unui telemetru cu ultrasunete în tandem cu un laser. În acest caz, ei vor echilibra neajunsurile unul de celălalt.







Articole similare

Trimiteți-le prietenilor: