Cuprins:

Localizator ecou senzor dual: 7 pași (cu imagini)
Localizator ecou senzor dual: 7 pași (cu imagini)

Video: Localizator ecou senzor dual: 7 pași (cu imagini)

Video: Localizator ecou senzor dual: 7 pași (cu imagini)
Video: Ультразвуковой сонар с HC-SR04, сервоприводом, SSD1306 128x64 OLED и NodeMCU ESP32S на Arduino IDE 2024, Noiembrie
Anonim
Image
Image
Localizator ecou senzor dual
Localizator ecou senzor dual
Localizator ecou senzor dual
Localizator ecou senzor dual

Această instrucțiune explică modul de localizare a unui obiect folosind un Arduino, doi senzori cu ultrasunete și formula Heron pentru triunghiuri. Nu există părți în mișcare.

Formula Heron vă permite să calculați aria oricărui triunghi pentru care sunt cunoscute toate laturile. Odată ce cunoașteți aria unui triunghi, puteți calcula poziția unui singur obiect (relativ la o linie de bază cunoscută) folosind trigonometria și Pitagora.

Precizia este excelentă. Sunt posibile zone de detectare mari folosind senzorii cu ultrasunete HC-SR04 sau HY-SRF05 disponibile în mod obișnuit.

Construcția este simplă … tot ce aveți nevoie este un cuțit ascuțit, două burghie, un fier de lipit și un ferăstrău pentru lemn.

Imagini

  • Videoclipul arată unitatea în funcțiune.
  • Fotografia 1 arată „localizatorul de ecouri” asamblat
  • Fotografia 2 prezintă un afișaj tipic. Obiectul este punctul roșu (intermitent).
  • Fotografia 3 arată configurarea testului video. A fost necesar să poziționați cei doi senzori cu ultrasunete HY-SRF05 la 50cm sub linia de bază pentru a „ilumina” complet zona de detecție cu sunet.

Pasul 1: Schema de cablare

Schema de conexiuni
Schema de conexiuni

Fotografia 1 prezintă schema de conectare a „localizatorului de ecou cu senzor dual”.

Senzorul B este redat „pasiv” prin plasarea mai multor straturi de bandă de mascare peste traductorul de transmisie (T). Această bandă blochează sunetul cu ultrasunete care altfel ar fi emis.

Pasul 2: Lista pieselor

Lista de componente
Lista de componente

După cum se arată în fotografia 1, sunt necesare foarte puține părți pentru a finaliza acest proiect:

Următoarele părți au fost obținute de pe

  • 1 numai Arduino Uno R3 complet cu cablu USB
  • 2 numai HY-SRF05 sau HC-SR04, traductoare cu ultrasunete

Următoarele părți au fost obținute local:

  • 1 singură bandă de antet arduino de sex masculin
  • 2 numai benzi de antet feminin arduino
  • 2 numai bucăți de resturi de aluminiu
  • 2 doar bucăți mici de lemn
  • 2 numai șuruburi mici
  • 3 numai legături de cablu
  • Sârmă acoperită din plastic de numai 4 lungimi (culori asortate) [1]

Notă

[1]

Lungimea totală a fiecărui fir trebuie să fie egală cu distanța dorită între senzori plus o cantitate mică pentru lipire. Firele sunt apoi răsucite împreună pentru a forma un cablu.

Pasul 3: Teorie

Teorie
Teorie
Teorie
Teorie
Teorie
Teorie

Modele de grinzi

Fotografia 1 prezintă modelele de fascicule suprapuse pentru traductorul A și traductorul B.

Senzorul A va primi un ecou de la orice obiect din „zona roșie”.

Senzorul B va primi un ecou numai dacă obiectul se află în „zona mov”. În afara acestei zone nu este posibil să se determine coordonatele unui obiect. [1]

Sunt posibile zone mari de detectare „mov” dacă senzorii sunt spațiați pe scară largă.

Calcule

Cu referire la fotografia 2:

Aria oricărui triunghi poate fi calculată din formula:

zona = baza * înălțimea / 2 ………………………………………………………………………. (1)

Rearanjarea ecuației (1) ne oferă înălțimea (coordonata Y):

înălțime = suprafață * 2 / bază ………………………………………………………………………. (2)

Până acum, bine … dar cum calculăm suprafața?

Răspunsul este spațierea a două traductoare cu ultrasunete la o distanță cunoscută (linia de bază) și măsurarea distanței dintre fiecare senzor și obiect prin intermediul ultrasunetelor.

Fotografia 2 arată cum este posibil acest lucru.

Traductorul A trimite un impuls care sări de pe obiect în toate direcțiile. Acest impuls este auzit atât de traductorul A, cât și de transductorul B. Niciun impuls nu este trimis de transductorul B … doar ascultă.

Calea de întoarcere către traductorul A este afișată în roșu. Când este împărțit la doi și se ia în considerare viteza sunetului, putem calcula distanța „d1” de la formula: [2]

d1 (cm) = timp (microsecunde) / 59 ……………………………………………… (3)

Calea către traductorul B este afișată în albastru. Dacă scădem distanța „d1” din această lungime a căii, obținem distanța „d2”. Formula pentru calcularea „d2” este: [3]

d2 (cm) = timp (microsecunde / 29,5 - d1 …………………………………….. (4)

Acum avem lungimea tuturor celor trei laturi ale triunghiului ABC … introduceți „Heron”

Formula Heron

Formula Heron folosește ceva numit „semi-perimetru” în care adăugați fiecare dintre cele trei laturi ale unui triunghi și împărțiți rezultatul la două:

s = (a + b + c) / 2 ……………………………………………………………………………. (5)

Suprafața poate fi acum calculată folosind următoarea formulă:

area = sqrt (s * (s-a) * (s-b) * (s-c)) ……………………………………………………. (6)

Odată ce cunoaștem zona, putem calcula înălțimea (coordonata Y) din ecuația (2) de mai sus.

Pitagora

Coordonata X poate fi acum calculată prin scăderea unei perpendiculare de la vârful triunghiului la linia de bază pentru a crea un triunghi unghiular. Coordonata X poate fi acum calculată folosind Pitagora:

c1 = sqrt (b2 - h2) ………………………………………………………………….. (7)

Note

[1]

Zona țintă poate fi complet „iluminată” cu sunet prin poziționarea senzorilor sub linia de bază.

[2]

Valoarea 59 pentru constantă este derivată după cum urmează:

Viteza sunetului este de aproximativ 340m / S, care este de 0,034cm / uS (centimetri / microsecundă).

Reciprocitatea de 0,034cm / uS este 29,412uS / cm care, înmulțită cu 2 pentru a permite calea de întoarcere, este egală cu 58,824 sau 59 când este rotunjită.

Această valoare poate fi ajustată în sus / în jos pentru a ține seama de temperatura aerului, umiditatea și presiunea.

[3]

Valoarea 29,5 pentru constantă este derivată după cum urmează:

Nu există cale de întoarcere, așa că folosim 29.5, care este jumătate din valoarea utilizată în [2] de mai sus.

Pasul 4: Construcție

Constructie
Constructie
Constructie
Constructie

Suporturi de montare

Două consolă de montaj au fost realizate din tablă de aluminiu cu calibru 20, folosind metoda descrisă în

Dimensiunile pentru paranteze sunt afișate în fotografia 1.

Cele două găuri marcate cu „linia de bază” sunt destinate atașării unui șir la fiecare senzor. Pur și simplu legați șirul la spațiul necesar pentru o configurare ușoară.

Prize senzor

Soclele senzorului (foto 2) au fost realizate din soclurile standard pentru antet Arduino.

Toți știfturile nedorite au fost scoase și o gaură de 3 mm a fost forată prin plastic.

Când lipiți conexiunile, aveți grijă să nu scurtați firele la suportul din aluminiu.

Eliberări de tulpini

O mică bucată de tub termocontractibil la fiecare capăt al cablului împiedică desfacerea firelor.

Legăturile pentru cabluri au fost utilizate pentru a preveni mișcarea nedorită a cablului.

Pasul 5: Instalarea software-ului

Instalați următorul cod în această ordine:

IDE Arduino

Descărcați și instalați Arduino IDE (mediu de dezvoltare integrat) de la https://www.arduino.cc/en/main/software dacă nu este deja instalat.

Procesare 3

Descărcați și instalați Processing 3 de pe

Schiță Arduino

Copiați conținutul fișierului atașat, „dual_sensor _echo_locator.ino”, într-o „schiță” Arduino, salvați, apoi încărcați-l pe Arduino Uno R3.

Închideți ID-ul Ardino, dar lăsați cablul USB conectat.

Schiță de procesare

Copiați conținutul fișierului atașat, „dual_sensor_echo_locator.pde” într-o „Schiță” de procesare.

Acum faceți clic pe butonul „Run” din stânga sus … ar trebui să apară un ecran grafic pe ecran.

Pasul 6: Testare

Testarea
Testarea
Testarea
Testarea

Conectați cablul USB Arduino la computerul dvs.

Rulați „dual_sensor_echo_locator.pde” făcând clic pe butonul de rulare „sus-stânga” de pe IDE-ul dvs. Processing 3 (mediu de dezvoltare integrat).

Numerele, separate prin virgulă, ar trebui să înceapă să ruleze pe ecran, așa cum se arată în fotografia 1.

Mesaj de eroare la pornire

Este posibil să primiți un mesaj de eroare la pornire.

Dacă da, modificați [0] din linia 88 a fotografiei 1 pentru a se potrivi cu numărul asociat portului „COM”.

Mai multe porturi „COM” pot fi listate în funcție de sistemul dvs. Unul dintre numere va funcționa.

În fotografia 1, numărul [0] este asociat cu „COM4” al meu.

Poziționarea senzorilor

Distanțează senzorii la o distanță de 100 cm, cu obiectul de 100 cm în față.

Rotiți încet ambii senzori spre colțul opus diagonal al unui pătrat imaginar de 1 metru.

Pe măsură ce rotiți senzorii, veți găsi o poziție în care apare un punct roșu intermitent pe afișajul grafic.

De asemenea, vor apărea date suplimentare (foto 2) odată ce senzorii au localizat obiectul:

  • distanță1
  • distanță2
  • de bază
  • decalaj
  • semi-perimetral
  • zonă
  • Coordonata X
  • Coordonata Y

Pasul 7: Afișați

Afişa
Afişa

Afișajul a fost scris folosind Procesarea 3 … este afișată o linie de bază de 100cm.

Schimbarea liniei de bază

Să schimbăm linia de bază de la 100cm la 200cm:

Modificați „Linia de bază float = 100;” în antetul Prelucrare pentru a citi „Linia de bază plutitoare = 200;”

Schimbați etichetele „50” și „100” în rutina „Draw_grid ()” Procesare pentru a citi „100” și „200”.

Schimbarea offsetului

Zonele țintă mai mari pot fi monitorizate dacă poziționăm senzorii sub linia de bază.

O variabilă „Offset” din antetul Prelucrare trebuie modificată dacă alegeți să faceți acest lucru.

Faceți clic aici pentru a vedea celelalte instructabile ale mele.

Recomandat: