Inhoudsopgave:

Dual Sensor Echo Locator - Ajarnpa
Dual Sensor Echo Locator - Ajarnpa

Video: Dual Sensor Echo Locator - Ajarnpa

Video: Dual Sensor Echo Locator - Ajarnpa
Video: Dual Sensor Echo Locator 2024, Juli-
Anonim
Image
Image
Dual Sensor Echo Locator
Dual Sensor Echo Locator
Dual Sensor Echo Locator
Dual Sensor Echo Locator

Deze instructable legt uit hoe je de locatie van een object kunt bepalen met behulp van een Arduino, twee ultrasone sensoren en de formule van Heron voor driehoeken. Er zijn geen bewegende delen.

Met de formule van Heron kunt u de oppervlakte berekenen van elke driehoek waarvan alle zijden bekend zijn. Als je eenmaal de oppervlakte van een driehoek kent, kun je de positie van een enkel object (ten opzichte van een bekende basislijn) berekenen met behulp van trigonometrie en Pythagoras.

De nauwkeurigheid is uitstekend. Grote detectiegebieden zijn mogelijk met behulp van algemeen beschikbare HC-SR04 of HY-SRF05 ultrasone sensoren.

De constructie is eenvoudig … alles wat je nodig hebt is een scherp mes, twee boren, een soldeerbout en een houtzaag.

Afbeeldingen

  • De videoclip toont het apparaat in werking.
  • Foto 1 toont de gemonteerde “echo locator”
  • Foto 2 toont een typische weergave. Het object is de rode (knipperende) stip.
  • Foto 3 toont de video testopstelling. Het was noodzakelijk om de twee HY-SRF05 ultrasone sensoren 50 cm onder de basislijn te plaatsen om het detectiegebied volledig met geluid te "verlichten".

Stap 1: Bedradingsschema

Schakelschema
Schakelschema

Foto 1 toont het bedradingsschema voor de “dual sensor echo locator”.

Sensor B wordt "passief" gemaakt door meerdere lagen afplakband over de zend (T) transducer te plaatsen. Deze tape blokkeert het ultrasone geluid dat anders zou worden uitgezonden.

Stap 2: Onderdelenlijst

Onderdelen lijst
Onderdelen lijst

Zoals te zien is op foto 1, zijn er maar heel weinig onderdelen nodig om dit project te voltooien:

De volgende onderdelen zijn verkregen van

  • 1 alleen Arduino Uno R3 compleet met USB-kabel
  • 2 alleen HY-SRF05 of HC-SR04, ultrasone transducers

De volgende onderdelen werden lokaal verkregen:

  • 1 alleen mannelijke arduino-headerstrip
  • 2 alleen vrouwelijke arduino-headerstrips
  • 2 alleen stukjes aluminium schroot
  • 2 alleen kleine stukjes hout
  • 2 alleen kleine schroeven
  • 3 alleen kabelbinders
  • 4 alleen lengtes geplastificeerd draad (geassorteerde kleuren) [1]

Opmerking

[1]

De totale lengte van elke draad moet gelijk zijn aan de gewenste afstand tussen de sensoren plus een kleine hoeveelheid voor het solderen. De draden worden vervolgens in elkaar gedraaid om een kabel te vormen.

Stap 3: Theorie

Theorie
Theorie
Theorie
Theorie
Theorie
Theorie

Straalpatronen

Foto 1 toont de overlappende bundelpatronen voor transducer A en transducer B.

Sensor A ontvangt een echo van elk object in het "rode gebied".

Sensor B ontvangt alleen een echo als het object zich in het "paarse gebied" bevindt. Buiten dit gebied is het niet mogelijk de coördinaat van een object te bepalen. [1]

Grote "paarse" detectiegebieden zijn mogelijk als de sensoren ver uit elkaar staan.

Berekeningen

Met verwijzing naar foto 2:

De oppervlakte van elke driehoek kan worden berekend met de formule:

oppervlakte=basis*hoogte/2 …………………………………………………………………. (1)

Het herschikken van vergelijking (1) geeft ons de hoogte (Y-coördinaat):

hoogte=oppervlak*2/basis …………………………………………………………………. (2)

So far so good … maar hoe berekenen we de oppervlakte?

Het antwoord is om twee ultrasone transducers op een bekende afstand van elkaar te plaatsen (basislijn) en de afstand tussen elke sensor en het object te meten met behulp van ultrageluid.

Op foto 2 is te zien hoe dit kan.

Transducer A zendt een puls uit die het object in alle richtingen weerkaatst. Deze puls wordt gehoord door zowel transducer A als transducer B. Er wordt geen puls verzonden van transducer B … hij luistert alleen.

Het retourpad naar transducer A wordt in rood weergegeven. Wanneer gedeeld door twee en de geluidssnelheid wordt meegerekend, kunnen we de afstand "d1" berekenen met de formule: [2]

d1 (cm) = tijd (microseconden)/59 …………………………………………… (3)

Het pad naar transducer B wordt in blauw weergegeven. Als we afstand "d1" van deze padlengte aftrekken, krijgen we afstand "d2". De formule voor het berekenen van "d2" is: [3]

d2 (cm) = tijd (microseconden/29,5 – d1 ………………………………….. (4)

We hebben nu de lengte van alle drie de zijden van de driehoek ABC … voer "Heron" in

formule van reiger

De formule van Heron gebruikt iets dat een "halve omtrek" wordt genoemd, waarbij je elk van de drie zijden van een driehoek toevoegt en het resultaat door twee deelt:

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

De oppervlakte kan nu worden berekend met de volgende formule:

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

Zodra we het gebied kennen, kunnen we de hoogte (Y-coördinaat) berekenen uit vergelijking (2) hierboven.

Pythagoras

De X-coördinaat kan nu worden berekend door een loodlijn van het hoekpunt van de driehoek naar de basislijn te laten vallen om een rechthoekige driehoek te creëren. De X-coördinaat kan nu worden berekend met behulp van Pythagoras:

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

Opmerkingen:

[1]

Het doelgebied kan volledig worden "verlicht" met geluid door de sensoren onder de basislijn te plaatsen.

[2]

De waarde van 59 voor de constante wordt als volgt afgeleid:

De geluidssnelheid is ongeveer 340 m/S, wat overeenkomt met 0,034 cm/uS (centimeter/microseconde).

Het omgekeerde van 0,034 cm/uS is 29,412uS/cm, wat, wanneer vermenigvuldigd met 2 om het retourpad mogelijk te maken, gelijk is aan 58,824 of 59 wanneer afgerond.

Deze waarde kan omhoog/omlaag worden aangepast om rekening te houden met luchttemperatuur, vochtigheid en druk.

[3]

De waarde van 29,5 voor de constante wordt als volgt afgeleid:

Er is geen retourpad, dus we gebruiken 29,5, wat de helft is van de waarde die wordt gebruikt in [2] hierboven.

Stap 4: constructie

Bouw
Bouw
Bouw
Bouw

Montagebeugels

Twee montagebeugels zijn gemaakt van 20 gauge aluminiumplaat met behulp van de methode die wordt beschreven in mijn instructable

De afmetingen voor mijn beugels staan op foto 1.

De twee gaten gemarkeerd met "baseline" zijn voor het bevestigen van een touwtje aan elke sensor. Bind de string eenvoudig af op de vereiste afstand voor eenvoudige installatie.

Sensoraansluitingen

De sensor sockets (foto 2) zijn gemaakt van standaard Arduino header sockets.

Alle ongewenste pinnen zijn eruit getrokken en een gat van 3 mm door het plastic geboord.

Let er bij het solderen van de verbindingen op dat de draden naar de aluminium beugel niet kortgesloten worden.

Trekontlastingen

Een klein stukje krimpkous aan elk uiteinde van de kabel voorkomt dat de draden losraken.

Er zijn kabelbinders gebruikt om ongewenste kabelbeweging te voorkomen.

Stap 5: Software-installatie

Installeer de volgende code in deze volgorde:

Arduino IDE

Download en installeer de Arduino IDE (geïntegreerde ontwikkelomgeving) van https://www.arduino.cc/en/main/software als deze nog niet is geïnstalleerd.

Verwerking 3

Download en installeer Processing 3 van

Arduino-schets

Kopieer de inhoud van het bijgevoegde bestand, "dual_sensor _echo_locator.ino", naar een Arduino "schets", sla het op en upload het naar uw Arduino Uno R3.

Sluit de Ardino IDE maar laat de USB-kabel aangesloten.

Verwerkingsschets

Kopieer de inhoud van het bijgevoegde bestand, "dual_sensor_echo_locator.pde" naar een Processing "Sketch".

Klik nu op de knop "Uitvoeren" linksboven … een grafisch scherm zou op uw scherm moeten verschijnen.

Stap 6: Testen

Testen
Testen
Testen
Testen

Sluit de Arduino USB-kabel aan op uw pc de

Voer "dual_sensor_echo_locator.pde" uit door op de "run-knop" linksboven op uw Processing 3 IDE (geïntegreerde ontwikkelomgeving) te klikken.

Getallen, gescheiden door een komma, zouden over uw scherm moeten beginnen te stromen, zoals weergegeven in foto1.

Foutmelding bij opstarten

Mogelijk krijgt u een foutmelding bij het opstarten.

Als dit het geval is, wijzigt u de [0] in regel 88 van foto 1 zodat deze overeenkomt met het nummer dat is gekoppeld aan uw "COM"-poort.

Afhankelijk van uw systeem kunnen er verschillende "COM"-poorten worden vermeld. Een van de nummers zal werken.

Op foto 1 is het nummer [0] gekoppeld aan mijn “COM4”.

Uw sensoren positioneren

Plaats uw sensoren 100 cm uit elkaar met het object 100 cm ervoor.

Draai beide sensoren langzaam naar de diagonaal tegenoverliggende hoek van een denkbeeldig vierkant van 1 meter.

Terwijl u de sensoren draait, vindt u een positie waar een knipperende rode stip op het grafische display verschijnt.

Er verschijnen ook aanvullende gegevens (foto 2) zodra de sensoren uw object hebben gelokaliseerd:

  • afstand1
  • afstand2
  • basislijn
  • offset
  • halve omtrek
  • Oppervlakte
  • X-coördinaat
  • Y-coördinaat

Stap 7: Weergeven

Weergave
Weergave

Het display is geschreven met Processing 3 … een basislijn van 100 cm wordt weergegeven.

De basislijn wijzigen

Laten we onze basislijn veranderen van 100cm naar 200cm:

Wijzig "float Baseline = 100;" in de Processing-header om "float Baseline = 200;" te lezen

Wijzig de labels "50" en "100" in de verwerkingsroutine "draw_grid()" om "100" en "200" te lezen.

De offset wijzigen

Grotere doelgebieden kunnen worden bewaakt als we de sensoren onder de basislijn plaatsen.

Een variabele "Offset" in de verwerkingskop moet worden gewijzigd als u ervoor kiest om dit te doen.

Klik hier om mijn andere instructables te bekijken.

Aanbevolen: