Inhaltsverzeichnis:

Dual-Sensor-Echo-Locator - Gunook
Dual-Sensor-Echo-Locator - Gunook

Video: Dual-Sensor-Echo-Locator - Gunook

Video: Dual-Sensor-Echo-Locator - Gunook
Video: Dual Sensor Echo Locator 2024, Juli
Anonim
Image
Image
Echoorter mit zwei Sensoren
Echoorter mit zwei Sensoren
Echoorter mit zwei Sensoren
Echoorter mit zwei Sensoren

Dieses anweisbare erklärt, wie man die Position eines Objekts mit einem Arduino, zwei Ultraschallsensoren und der Heron-Formel für Dreiecke genau bestimmt. Es gibt keine beweglichen Teile.

Mit der Heron-Formel können Sie die Fläche jedes Dreiecks berechnen, für das alle Seiten bekannt sind. Sobald Sie die Fläche eines Dreiecks kennen, können Sie die Position eines einzelnen Objekts (relativ zu einer bekannten Grundlinie) mithilfe von Trigonometrie und Pythagoras berechnen.

Die Genauigkeit ist hervorragend. Mit den handelsüblichen Ultraschallsensoren HC-SR04 oder HY-SRF05 sind große Erfassungsbereiche möglich.

Der Aufbau ist einfach … Sie benötigen lediglich ein scharfes Messer, zwei Bohrer, einen Lötkolben und eine Holzsäge.

Bilder

  • Der Videoclip zeigt das Gerät im Betrieb.
  • Foto 1 zeigt den zusammengebauten „Echo-Locator“
  • Foto 2 zeigt eine typische Anzeige. Das Objekt ist der rote (blinkende) Punkt.
  • Foto 3 zeigt den Videotestaufbau. Es war notwendig, die beiden Ultraschallsensoren HY-SRF05 50 cm unterhalb der Basislinie zu positionieren, um den Erfassungsbereich vollständig mit Ton „auszuleuchten“.

Schritt 1: Schaltplan

Schaltplan
Schaltplan

Foto 1 zeigt den Schaltplan für den „Dual Sensor Echo Locator“.

Sensor B wird „passiv“gemacht, indem mehrere Lagen Abdeckband über dem Sendewandler (T) angebracht werden. Dieses Band blockiert den sonst ausgestrahlten Ultraschall.

Schritt 2: Teileliste

Liste der Einzelteile
Liste der Einzelteile

Wie in Foto 1 gezeigt, sind nur sehr wenige Teile erforderlich, um dieses Projekt abzuschließen:

Die folgenden Teile wurden von https://www.aliexpress.com/ bezogen:

  • 1 nur Arduino Uno R3 komplett mit USB-Kabel
  • 2 nur HY-SRF05 oder HC-SR04, Ultraschallwandler

Folgende Teile wurden vor Ort bezogen:

  • 1 nur männlicher Arduino-Header-Streifen
  • 2 nur weibliche Arduino-Header-Streifen
  • 2 nur Stück Aluminiumschrott
  • 2 nur kleine Holzstücke
  • 2 nur kleine Schrauben
  • 3 nur Kabelbinder
  • 4 nur Längen kunststoffummantelter Draht (farbig sortiert) [1]

Notiz

[1]

Die Gesamtlänge jedes Drahtes sollte dem gewünschten Abstand zwischen den Sensoren zuzüglich einer kleinen Menge zum Löten entsprechen. Die Drähte werden dann zusammengedreht, um ein Kabel zu bilden.

Schritt 3: Theorie

Theorie
Theorie
Theorie
Theorie
Theorie
Theorie

Strahlmuster

Foto 1 zeigt die überlappenden Strahlmuster für Schallkopf A und Schallkopf B.

Sensor A empfängt ein Echo von jedem Objekt im „roten Bereich“.

Sensor B empfängt nur dann ein Echo, wenn sich das Objekt im „Mauve-Bereich“befindet. Außerhalb dieses Bereichs ist es nicht möglich, die Koordinate eines Objekts zu bestimmen. [1]

Große „mauve“Erfassungsbereiche sind möglich, wenn die Sensoren weit voneinander entfernt sind.

Berechnungen

Bezogen auf Foto 2:

Die Fläche eines beliebigen Dreiecks kann aus der Formel berechnet werden:

Fläche=Basis*Höhe/2 …………………………………………………………………. (1)

Die Umordnung von Gleichung (1) gibt uns die Höhe (Y-Koordinate):

Höhe=Fläche*2/Basis …………………………………………………………………. (2)

Soweit so gut … aber wie berechnen wir die Fläche?

Die Antwort besteht darin, zwei Ultraschallwandler in einem bekannten Abstand (Basislinie) zu platzieren und den Abstand jedes Sensors vom Objekt mit Ultraschall zu messen.

Foto 2 zeigt, wie dies möglich ist.

Wandler A sendet einen Impuls, der in alle Richtungen vom Objekt abprallt. Dieser Impuls wird sowohl von Wandler A als auch von Wandler B gehört. Von Wandler B wird kein Impuls gesendet … er hört nur.

Der Rückweg zum Schallkopf A ist rot dargestellt. Durch zwei geteilt und unter Berücksichtigung der Schallgeschwindigkeit können wir den Abstand „d1“aus der Formel [2] berechnen:

d1 (cm) = Zeit (Mikrosekunden)/59 ………………………………………………(3)

Der Pfad zum Schallkopf B ist blau dargestellt. Wenn wir von dieser Weglänge den Abstand „d1“abziehen, erhalten wir den Abstand „d2“. Die Formel zur Berechnung von „d2“lautet: [3]

d2 (cm) = Zeit (Mikrosekunden/29,5 – d1 …………………………………….. (4)

Wir haben jetzt die Länge aller drei Seiten des Dreiecks ABC … geben Sie „Reiher“ein

Reiher-Formel

Die Formel von Heron verwendet einen sogenannten „Halbumfang“, bei dem Sie jede der drei Seiten eines Dreiecks addieren und das Ergebnis durch zwei teilen:

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

Die Fläche kann nun mit folgender Formel berechnet werden:

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

Sobald wir die Fläche kennen, können wir die Höhe (Y-Koordinate) aus Gleichung (2) oben berechnen.

Pythagoras

Die X-Koordinate kann jetzt berechnet werden, indem eine Senkrechte vom Dreiecksscheitelpunkt zur Grundlinie gezogen wird, um ein rechtwinkliges Dreieck zu erstellen. Die X-Koordinate kann nun mit Pythagoras berechnet werden:

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

Anmerkungen

[1]

Durch die Positionierung der Sensoren unterhalb der Grundlinie kann der Zielbereich komplett mit Ton „ausgeleuchtet“werden.

[2]

Der Wert 59 für die Konstante wird wie folgt abgeleitet:

Die Schallgeschwindigkeit beträgt ungefähr 340 m/S, was 0,034 cm/uS (Zentimeter/Mikrosekunde) entspricht.

Der Kehrwert von 0,034 cm/uS beträgt 29,412 uS/cm, was, wenn es mit 2 multipliziert wird, um den Rückweg zu berücksichtigen, 58,824 oder 59 gerundet entspricht.

Dieser Wert kann nach oben/unten angepasst werden, um Lufttemperatur, Feuchtigkeit und Druck zu berücksichtigen.

[3]

Der Wert von 29,5 für die Konstante wird wie folgt abgeleitet:

Es gibt keinen Rückweg, daher verwenden wir 29,5, was der Hälfte des in [2] oben verwendeten Werts entspricht.

Schritt 4: Konstruktion

Konstruktion
Konstruktion
Konstruktion
Konstruktion

Halterungen

Zwei Montagehalterungen wurden aus 20-Gauge-Aluminiumblech mit der in meinem anweisbaren https://www.instructables.com/id/How-to-Cut-Fold-… beschriebenen Methode hergestellt.

Die Maße für meine Halterungen sind in Foto 1 gezeigt.

Die beiden mit „baseline“gekennzeichneten Löcher dienen zum Anbringen einer Schnur an jedem Sensor. Binden Sie die Schnur einfach im erforderlichen Abstand ab, um die Einrichtung zu vereinfachen.

Sensorbuchsen

Die Sensorbuchsen (Foto 2) wurden aus Standard-Arduino-Headerbuchsen hergestellt.

Alle unerwünschten Pins wurden herausgezogen und ein 3mm Loch durch den Kunststoff gebohrt.

Achten Sie beim Löten der Anschlüsse darauf, die Drähte nicht mit der Aluminiumhalterung kurzzuschließen.

Zugentlastungen

Ein kleines Stück Schrumpfschlauch an jedem Ende des Kabels verhindert, dass sich die Drähte auflösen.

Kabelbinder wurden verwendet, um unerwünschte Kabelbewegungen zu verhindern.

Schritt 5: Softwareinstallation

Installieren Sie den folgenden Code in dieser Reihenfolge:

Arduino-IDE

Laden Sie die Arduino IDE (integrierte Entwicklungsumgebung) von https://www.arduino.cc/en/main/software herunter und installieren Sie sie, falls sie noch nicht installiert ist.

Verarbeitung 3

Laden Sie Processing 3 von https://processing.org/download/ herunter und installieren Sie es.

Arduino-Skizze

Kopieren Sie den Inhalt der angehängten Datei „dual_sensor _echo_locator.ino“in eine Arduino-Skizze, speichern Sie sie und laden Sie sie dann auf Ihren Arduino Uno R3 hoch.

Schließen Sie die Ardino IDE, aber lassen Sie das USB-Kabel angeschlossen.

Verarbeitungsskizze

Kopieren Sie den Inhalt der angehängten Datei „dual_sensor_echo_locator.pde“in eine Verarbeitungs-„Skizze“.

Klicken Sie nun oben links auf die Schaltfläche „Ausführen“… ein Grafikbildschirm sollte auf Ihrem Bildschirm erscheinen.

Schritt 6: Testen

Testen
Testen
Testen
Testen

Verbinden Sie das Arduino USB-Kabel mit Ihrem PC

Führen Sie „dual_sensor_echo_locator.pde“aus, indem Sie in Ihrer Processing 3 IDE (integrierte Entwicklungsumgebung) auf die Schaltfläche „oben links“klicken.

Durch ein Komma getrennte Zahlen sollten wie in Foto 1 gezeigt über Ihren Bildschirm gestreamt werden.

Fehlermeldung beim Start

Möglicherweise erhalten Sie beim Start eine Fehlermeldung.

Wenn dies der Fall ist, ändern Sie [0] in Zeile 88 von Foto 1 so, dass sie der Nummer entspricht, die Ihrem „COM“-Port zugeordnet ist.

Abhängig von Ihrem System können mehrere „COM“-Ports aufgeführt sein. Eine der Nummern wird funktionieren.

In Foto 1 ist die Nummer [0] mit meinem „COM4“verbunden.

Positionierung Ihrer Sensoren

Platzieren Sie Ihre Sensoren 100 cm voneinander entfernt mit dem Objekt 100 cm davor.

Drehen Sie beide Sensoren langsam in Richtung der diagonal gegenüberliegenden Ecke eines imaginären 1-Meter-Quadrats.

Wenn Sie die Sensoren drehen, finden Sie eine Position, an der ein blinkender roter Punkt auf dem Grafikdisplay erscheint.

Zusätzliche Daten erscheinen auch (Foto 2), sobald die Sensoren Ihr Objekt geortet haben:

  • Entfernung1
  • Entfernung2
  • Grundlinie
  • Versatz
  • Halbumfang
  • Bereich
  • X-Koordinate
  • Y-Koordinate

Schritt 7: Anzeige

Anzeige
Anzeige

Das Display wurde mit Processing 3 geschrieben … es wird eine 100cm Grundlinie angezeigt.

Grundlinie ändern

Ändern wir unsere Grundlinie von 100cm auf 200cm:

Ändere „Float-Basislinie = 100;“in der Verarbeitungskopfzeile, um „float Baseline = 200;“zu lesen.

Ändern Sie die Beschriftungen „50“und „100“in der Verarbeitungsroutine „draw_grid()“in „100“und „200“.

Offset ändern

Größere Zielbereiche können überwacht werden, wenn wir die Sensoren unterhalb der Grundlinie positionieren.

Dazu muss eine Variable „Offset“in der Kopfzeile Verarbeitung geändert werden.

Klicken Sie hier, um meine anderen instructables anzuzeigen.