Ultraschallkoordinatensystem 2.0

Ultraschallkoordinatensystem 2.0


Worum es in diesem Artikel geht: In diesem Artikel werden die Funktionsprinzipien meines Koordinatenbestimmungssystems und meine Erfahrungen bei seiner Herstellung beschrieben. Dieser Artikel ist keine Anleitung zur Herstellung eines Navigationssystems, da es nicht so einfach ist, ihn in einem Artikel zu beschreiben.



Dieser Artikel ist eine Weiterentwicklung der Ideen meines vorherigen Artikels:
habr.com/de/post/451408

Systemstruktur


Das Koordinatenbestimmungssystem hat das folgende Strukturdiagramm:


Abb. 1 - Schematische Darstellung des Ultraschallsystems zur Koordinatenbestimmung.

Betrachten wir jedes Element genauer.

Ultraschallempfänger







Abb. 2 - Entwicklung des Ultraschallempfängers (von oben nach unten).

Ursprünglich bestanden die Empfänger aus einem Modul und hatten eine sehr kleine Reichweite des Raumes. Damals habe ich das Signal nicht digitalisiert, sondern einfach vom Sensor die Länge empfangen, die der normale Controller ausgegeben hat.

Um die Reichweite zu erhöhen, entschied ich mich für ein Modul aus drei Sensoren, deren Daten gleichzeitig digitalisiert und an einen PC übertragen wurden, wo Entfernung und Koordinaten berechnet wurden. Nach dem Testen eines Dreikomponenten-Empfängers habe ich festgestellt, dass ein Empfänger ausreicht, wenn Sie das Signal selbst verarbeiten.

Infolgedessen wurde der Empfänger wieder einkomponentig, aber aufgrund der Tatsache, dass ich gerade das Signal verarbeite, ist der Abdeckungsbereich ziemlich groß geworden. Das Signal wird nun nach der Digitalisierung in STM32 verarbeitet, es gibt nur den Abstand zum Ausgang aus.

Zusammensetzung:
  • STM32 - zur Digitalisierung des Ultraschallsignals und zur Berechnung der Entfernung zum Sender;
  • HC-SR04 - Ich habe es ein wenig modifiziert und kann jetzt das Signal von seinem Eingang empfangen, wie in Abbildung 3 gezeigt.
  • RS485 - um die Entfernung zum Sender an einen PC zu übertragen.


Abb. 3 - Digitalisiertes Ultraschallsignal.


Abb. 4 - Ultraschallsignal im Bereich 4700 - 5200 der obigen Abbildung.

Ultraschallstrahler







Abb. 5 - Entwicklung des Emitters (von oben nach unten).

Wie Sie in Abbildung 5 sehen können, habe ich zuerst den Trig-Fuß am HC-SR04-Sensor gezogen. Das war nicht das beste System, schon allein deshalb, weil ich nicht bestimmen konnte, wie viele Ultraschallwellen ich erzeugen konnte, ich ihre Leistung nicht ändern konnte und diesen Emitter war sperrig genug.

Dann habe ich eine zweite Version erstellt, die viel umständlicher war, aber mit STM32 und L293D, die direkt mit dem Ultraschall-Lautsprecher verbunden waren, konnte ich bereits alles regeln. Anstelle der 5-Volt-Norm habe ich jetzt 17 Volt angelegt, was den Arbeitsbereich erheblich vergrößert hat. Ich habe auch ein Funkmodul und eine RS485-Schnittstelle hinzugefügt, wodurch dieses Modul eigenständig ist.

Nach einer Reihe von Tests habe ich mich entschlossen, den Emitter auf eine anständige Größe zu verkleinern und enger zusammenzusetzen, was auf dem letzten Bild zu sehen ist.

Zusammensetzung:
  • STM32 - empfängt den Befehl Trig (Start der Entfernungsmessung) über den Funkkanal und sendet ein Ultraschallsignal aus, sendet auch vom Funkmodul empfangene Befehle an RS485 (ich verwende ihn zur Fernsteuerung der mobilen Plattform);
  • RS485 - Geräteinformationsschnittstelle für den Benutzer;
  • DC-DC Boost - wandelt die Stromversorgung 5V in 17V für den Emitter um;
  • L293D - Ich benutze, um ein starkes Ultraschallsignal mit einer Spannung von 17 V zu erzeugen.
  • nRF24 - Funkkanal;
  • Emitter - 6 Emitter, die aus dem HC-SR04-Modul gezogen werden.

Basismodul



Abb. 6 - Das Grundmodul.

Zusammensetzung:
  • STM32 - sendet Trig an den Sender und Empfänger, empfängt USB-Befehle vom PC zur Übertragung über den Funkkanal an den Sender (auch als mobiles Modul bezeichnet);
  • nRF24 - Trigger an den Sender senden und Befehle an den Sender senden.

PC-Modul


Der PC über RS485-Adapter ist an alle Ultraschallempfänger angeschlossen, über diese Schnittstelle werden alle Längen von diesen empfangen und die Koordinaten des Mobilmoduls berechnet. Über USB wird es mit dem Basismodul verbunden und überträgt Steuerbefehle an das Mobilmodul.

Platzierung der Module im Arbeitsbereich


Eine Karte eines Raums mit Ultraschallempfängern in den Ecken sieht folgendermaßen aus:


Abb. 7 - Die allgemeine Idee der Position der Sensoren.


Abb. 8 - Draufsicht auf eine Skala (Kreise mit Zahlen darin, Sensoren sind angegeben).

Der Arbeitsalgorithmus des Ultraschall-Koordinatenbestimmungssystems


  1. Das Basismodul sendet einen Trigger-Befehl an den Sender (drahtlos) und an die Empfänger (drahtlos).
  2. Der Sender beginnt zu senden, und die Empfänger hören die Sendung.
  3. Jeder Empfänger, der das Ultraschallsignal gehört hat, zeichnet die Zeit zwischen dem Auslösebefehl und dem Zeitpunkt des Empfangs dieses Signals auf und übersetzt es in eine Entfernung.
  4. RS485-Empfänger senden auf einem PC Entfernungen vom Sender zu sich selbst.
  5. Der PC berechnet die Koordinaten des Senders.

Systembetrieb


Läuft dies alles, erhalten wir die Koordinaten des Objekts, die Genauigkeit hängt von der Stelle im Raum ab. An den besten Stellen überschreitet der Fehler nicht einige Zentimeter, und im schlimmsten Fall ... Sie können alles in Abbildung 9 selbst sehen.


Abb. 9 - Den Sender im Raum bewegen.

In dieser Figur gibt es vier Sätze von Koordinaten, da wir vier Empfänger haben und zum Bestimmen von Koordinaten im dreidimensionalen Raum nur drei benötigen, dann haben wir vier Kombinationen von Empfängern.

Wie aus der Abbildung ersichtlich, ermittelt das System die Koordinaten im Allgemeinen korrekt, aber an verschiedenen Stellen ist der Fehler unterschiedlich. Ich habe den Emitter parallel zur X- und zur Y-Achse bewegt, irgendwo mit einem Abstand zwischen den Linien in einem Meter, irgendwo in einem halben Meter. Dies ist in der Abbildung zu sehen. Die beste Genauigkeit ist in der Mitte, und an den Rändern ist alles schlecht, weil von dort das Ultraschallsignal in einem großen Winkel auf den Empfänger fällt und dies zu Verzerrungen im digitalisierten Signal führt.

Nach dem Filtern und Mitteln von vier Koordinatenpaaren erhalten wir das folgende Bild:


Abb. 10 - Gemittelte Flugbahn.

Nicht Eis, aber was ist da?

Zum Spaß zeige ich Ihnen, wie alles in 3D aussieht, da wir auch eine dritte Koordinate haben, obwohl diese in meinem Projekt nicht benötigt wird, da sich ein mobiler Roboter nur in einem Flugzeug bewegt.


Abb. 11 - 3D Flugbahn.

Wie wir sehen können, liegen alle Punkte ungefähr in der gleichen Ebene, und das ist richtig, weil ich den Sender über den Boden gefahren habe, ohne ihn abzunehmen.

Und hier ist ein Beispiel für eine erfolglose Passage einer mobilen Plattform mit einem Sender, dessen Flugbahn deutlich sichtbar ist. Nach dem Plan sollte die Plattform auf einem rechteckigen Weg zum Ausgangspunkt zurückkehren, aber es hat nicht geklappt. In den folgenden Artikeln werde ich Ihnen erklären, warum.


Abb. 12 - Die Bewegungsbahn der mobilen Plattform.

Aktuelle Probleme


Ich habe momentan einige dringende Probleme und wenn jemand etwas vorschlagen kann, schreibe dies bitte in den Kommentaren oder auf VK:
vk.com/b__s__v

1. Wie kann ich ein Ultraschallsignal am besten empfangen? Die HC-SR04-Sensoren, mit denen ich jetzt ein Ultraschallsignal empfange und verstärke, sind nicht die beste Option. Erstens, weil sie immer ein Signal mit nur einer Frequenz empfangen und Sie keine Frequenztrennung der Signalquellen von ihnen vornehmen können (was für mich interessant ist), sind sie außerdem zu sperrig und ich bin sehr abhängig von ihnen.
2. Wie entferne ich Koordinatenverzerrungen in verschiedenen Ecken des Raumes? Auf dem Gitter, das ich auf den Boden gemalt habe, kann man sehen, dass manchmal die geraden Linien abweichen, obwohl ich das mobile Modul immer reibungslos bewegt habe und es irgendwie loswerden muss.
3. Bei nRF24 verschwindet das Signal. Wenn die Module nahe beieinander sind, gibt es keine Probleme, aber es lohnt sich, sie ein paar Meter zu verteilen und selbst zwischen ihnen zu stehen, da die Nachrichten durch einen hindurchreichen. Ich muss dort keine Nachrichten erneut senden, da ich auf diesem Kanal Taktsignale übertrage und diese immer in derselben Sekunde eintreffen sollten. Ich habe Module mit einer externen Antenne, und die auf dem Basismodul funktioniert ohne Antenne besser als mit. Ich verstehe nichts, die Leistung ist maximal.
4. Orte der Projektförderung. Wenn jemand internationale Websites wie Habr auf Englisch kennt, verwerfen Sie bitte die Links. Andernfalls habe ich nichts Anständiges gefunden, aber Stackoverflow. Dies sind nur Fragen und Antworten, nicht ganz, um solche Artikel zu posten.
5. Kommentare und Vorschläge. Wenn sich jemand zu Wort melden möchte, freue ich mich über Kritik und Anregungen.

Dies ist noch lange nicht das Ende meines Projekts, obwohl sich die Zeit dem Ende neigt. Bei Interesse schreibe ich einen Artikel darüber, wie sich ein mobiler Roboter basierend auf diesem System an den angegebenen Koordinaten in meinem Raum fortbewegt.

Source: https://habr.com/ru/post/de479530/


All Articles