Informationstechnik
Labor Swimming Pixel - Mikro Funkstrecken |
Wintersemester 20/21 fejo1020@hs-karlsruhe.de esma1014@hs-karlsruhe.de |
|
|
|||
In diesem Kapitel wird die finale Umsetzung des Projekts Swimming
Pixel - Mikro Funkstrecken vorgestellt. Alle weiteren Details und
genauere Beschreibungen können dem Kapitel der
Konzeptentwicklung entnommen werden. Drahtlose Verbindung
Es wird das WiFi-Modul des
ESP32 für eine WiFi-Verbindung über TCP/IP benutzt. Ein Router
stellt ein WiFi-Netzwerk bereit, in das sich die Pixel und der PC
einwählen. Darüber wird sowohl dem Pixel und dem PC jeweils das
Senden und Empfangen von Daten ermöglicht.
Verwendet wird das MQTT-Protokoll, welches sich für das komfortable
Übertragen und Abrufen von Daten anbietet. Als etablierter
Standard für das Internet of Things (IoT) lässt es sich nutzen, um
die hierfür notwendige Kommunikation zwischen dem Host und den
Clienten auszuführen. Für das Projekt „Swimming Pixel“ ist dies von
Bedeutung, da das Netzwerkprotokoll auch mit einer Anzahl von 1024
Pixel und somit einer hohen Datenmenge funktionieren soll.
Die
zeitlich veränderliche Latenzzeit hat große Auswirkungen auf die
Positionsbestimmung des Pixels. Um die Latenzzeit zu bestimmen,
werden daher verschiedene Optionen geprüft. Die Latenzzeit kann im
Wesentlichen auf zwei Ursachen zurückgeführt werden. Zum einen durch
die verzögerte Audio-Ausgabe und zum anderen durch die
Netzwerkübertragung mittels MQTT. Die Latenzzeit durch die
Audio-Übertragung beträgt unter Windows 10 ca. 1,3ms (=0,442 m) und
wird daher vorerst nicht weiter betrachtet. Die Latenzzeit der
Übertragung durch das Netzwerkprotokoll ist für den größten Anteil
der Streuung verantwortlich, welche zu einer Positionsabweichung von
bis zu +-100m führen kann. Über
eine Auswertung der Latenzzeit durch den PC wird der durch die
Netzwerkübertragung entstandene Zeitverzug für jede Ausführung der
Positionsbestimmung neu ermittelt. Somit lässt sich die
Positionsberechnung genauer ausführen, da die Pixel sonst mit
unbekannter Zeitdifferenz (abhängig von der variablen Latenzzeit)
verfrüht mit der Audioaufnahme starten würde. Es würden sich dadurch
fehlerhafte Positionswerte ergeben.
Da es
ablaufbedingt zu einem konstanten Fehler bei der Entfernungsmessung
eines Pixels zu den beiden Lautsprechern kommt, muss dieser Fehler
korrigiert werden, um einen Offset der errechneten Position des
Pixels zu vermeiden. Bestimmt wird dieser Fehler durch das
Nullpunktprinzip. Dafür wird das Mikrofon an einer definierten
Position platziert, und die Positionsmessung durchgeführt. Die
Differenz zwischen errechneter Position und tatsächlicher Position
kann dann einmalig als Laufzeitdifferenz umgerechnet werden und als
gespeicherter Wert in alle folgenden Berechnungen der Entfernung mit
einfließen. Da die Messwerte trotz Latenzzeitkorrektur noch eine
zufällige Komponente enthalten, werden sie gemittelt. Durch den
bekannten Mittelwert kann durch die Offsetkorrektur die Streuung um
etwa 90 m verschoben werden und somit eine Streuung um den realen
Positionswert der Pixel erzielt werden.
Da die Hardware-Bestellung sich außerplanmäßig verzögerte, konnte der
vorgesehene Aufbau aus Zeitgründen nicht mehr umgesetzt werden. Weil
dadurch Tests mit der geplanten Hardware folglich nicht mehr möglich
waren, wird im Folgenden zwischen dem geplanten und umgesetzten
Hardware-Aufbau unterschieden. Der tatsächlich umgesetzte
Hardware-Aufbau dient dazu das Konzept auch ohne die geplante
Hardware zu überprüfen und durch überlegte Ansätze erste
softwareseitige Verbesserungen zu erzielen.
Der PC/Laptop gibt ein Chirp-Signal an dessen interne Soundkarte.
Diese kann über ein Klinken-Klinken-Steckerkabel das Signal an einen
Audio-Verstärker übermitteln. Der Verstärker wird dabei durch einen
entsprechenden 3,5mm Klinkenstecker durch einen 12V-LiPo-Akku
versorgt und gibt über zwei 2,5mm2-Lautsprecherkabel das
verstärkte Analogsignal an die Lautsprecher weiter. Die verwendeten
Lautsprecher sind Hochtöner und können Frequenzen bis 23kHz
erzeugen. Das ausgewählte Mikrofon ist in der Lage Ultraschall mit
bis zu 20kHz zu empfangenen und wandelt durch den eingebauten ADC
die akustischen Schallwellen mit einer Samplingrate von 44100 Hz in
Digitalsignale um. Die Digitalsignale werden im Anschluss über den
I2S-Bus an den ESP32 übertragen. Durch die Verwendung des I2S-Buses
und den DMA-Buffern wird der Prozessor auf dem ESP32 entlastet, da
keine AD-Wandlung auf dem ESP32 nötig ist. Das WiFi-Modul auf dem
ESP32 und das integrierte WiFi-Modul im Laptop werden zur drahtlosen
Datenübertragung verwendet. Ein Router stellt das Netzwerk bereit,
über das das MQTT-Protokoll ausgeführt wird. Der Aufbau ist unter
Blockschaltbild zu
finden.
Der PC/Laptop gibt ein Chirp-Signal an dessen interne Soundkarte. Diese kann mittels eines Klinken-Klinken-Steckerkabels das Signal über den Aux-Anschluss an einen Audio-Verstärker einer Stereo-HiFi-Anlage übermitteln. Der Verstärker ist dabei in der HiFi-Anlage integriert und wird über ein Netzteil (230V AC-Eingangsspannung) versorgt. Er gibt über zwei 2,5mm2-Lautsprecherkabel das verstärkte Analogsignal an die Lautsprecher weiter. Die verwendeten Lautsprecher besitzen Hoch-, Mittel, und Tieftöner und können durch die interne Ansteuerung durch die HiFi-Anlage Frequenzen bis zu 20 kHz erzeugen. Das ausgewählte Mikrofon ist in der Lage Ultraschall mit bis zu 20kHz zu empfangenen und wandelt durch den eingebauten ADC die akustischen Schallwellen mit einer Samplingrate von 44100 Hz in Digitalsignale um. Die Digitalsignale werden im Anschluss über den I2S-Bus an den ESP32 übertragen. Durch die Verwendung des I2S-Buses und den DMA-Buffern wird der Prozessor auf dem ESP32 entlastet, da keine AD-Wandlung auf dem ESP32 nötig ist. Das WiFi-Modul auf dem ESP32 und das integrierte WiFi-Modul im Laptop werden zur drahtlosen Datenübertragung verwendet. Ein Router stellt das Netzwerk bereit, über das das MQTT-Protokoll ausgeführt wird.
Abb.: Blockschaltbild des umgesetzten Testaufbaus Durch den im oberen Blockschaltbild gezeigten Aufbau konnte mit privaten Hardware-Ressourcen Tests innerhalb des Projekt-Zeitrahmens durchgeführt werden.
Abb.: Versuchsaufbau
In der Programmiersprache Python wird ein Programm für den PC erstellt, wodurch dieser über das Netzwerkprotokoll MQTT mit dem ESP32 auf dem Pixel kommunizieren kann. Zudem kann der PC durch das Programm das Chirp-Signal als Stereo-Audio-Signal erzeugen und an den Verstärker übermitteln. Die Audio-Aufnahme vom Mikrofon auf den Pixeln wird über das lokale Netzwerk auf den PC übertragen. Durch die Kreuzkorrelation wird der Laufzeitunterschied der zwei Lautsprechersignale berechnet. Nach den aufgestellten Formeln zur Bestimmung der Lateration, wird dadurch die Pixelposition errechnet. Über die Berechnung der Latenzzeit durch die Antwortverzögerung des Pixels mittels eines Echo-Flags , kann die zufällige Latenzzeit als Einflussgrößen näherungsweise herausgerechnet werden. Die Ortung wird dadurch genauer. Das Programm gibt die Ergebnisse als Konsolenausgabe aus.
Als Mikrocontroller auf dem Pixel wird ein
ESP32 verwendet. Dieser wird mit der Programmiersprache C
programmiert. Die digitalisierten Signale werden über einen I2S-Bus
an den ESP32 übertragen. Über eine
WiFi-Bibliothek wird dem Pixel die Ansteuerung des integrierten
WiFi-Modul ermöglicht. Zudem wird die Kommunikation über MQTT
implementiert, sodass der Pixel das durch den PC gesendete Flag zur
Signalisierung des Aufnahmestarts der Audioaufzeichnung und die
drahtlose Datenübermittlung ausführen kann. Weiterhin gibt der Pixel
über das MQTT-Protokoll nach Erhalt des Start-Flags ein Echo-Flag an
den PC zurück, um die Latenzzeit der Netzwerkübertragung zu
bestimmen.
Zur Ortung wird ein Chirp-Signal eingesetzt, welches sich im zeitlichen Verlauf in der Frequenz und der Amplitude ändert. Da aufgrund der verzögerten Bestellung keine Hochtöner zur Verfügung stehen, wird das Chirp-Signal mit Frequenzen im hörbaren Bereich erzeugt. Nachfolgend sie die verwendeten Parameter gelistet:
Signalparameter (Chirp):
Es wurden zwei Versuche zur Verbesserung der Software-Parameter durchgeführt und im Folgenden dokumentiert. Die Entfernung ist jeweils zum Koordinatenursprung angegeben. Dieser liegt, wie in der Skizze Versuchsaufbau beschrieben, im linken Lautsprecher.
Es wird das Mikrofon stellvertretend für den
Pixel an den Koordinaten (x = 0,0m / y = 2,0m ) platziert. Diese
werden im Folgenden als x-Koordinate-Soll, sowie y-Koordinate-Soll
bezeichnet. Anschließend wird die Ortung mehrfach durchgeführt, um
Abweichungen festzustellen. In diesem Versuch wird ohne
Offsetkorrektur, bei teilweiser Latenzzeitkorrektur, 20 mal
gemessen. Die Lautsprecher stehen 1 Meter zueinander entfernt.
Auswertung: Die Koordinaten-Werte
schwanken in geringem Maße, da die Latenzzeit noch nicht genau
ermittelt wird. Außerdem besitzen die Koordinaten einen hohen Offset
gegenüber den Soll-Koordinaten. Dieser lässt sich nun unter der
Annahme eines konstanten Mittelwertes bestimmen.
Weiteres Vorgehen zur Auswertung: Es wird aus den zuvor aufgenommenen Werten der
arithmetische Mittelwert unter der vordefinierten Ausnahme von
Werten getroffen. Es werden dabei jeweils 4 Wertepaare für die x-
und y-Koordinate ausgenommen, deren Werte einmal die 2 kleinsten und
die 2 größten Werte der x- und y Koordinaten (verglichen zu den
anderen x- und y- Koordinaten im Versuch) beinhalten.
Auswertung: Durch den Mittelwert wird
für die x-Koordinate = -9,7m und die y-Koordinate = 89,7m ermittelt.
Nach Pythagoras lässt sich damit die Entfernung zum Ursprung mit
89,8m berechnen. Die Differenz zu der tatsächlichen Entfernung von
2,0 m beträgt damit 87,8m. Was einem Laufzeitunterschied von 0,258
Sekunden entspricht, dieser Wert entspricht dem Offsetkorrekturwert,
der nun in der Software berücksichtigt werden kann.
Es wird das Mikrofon an den Koordinaten ( y =
2m / x = 0,5m ) platziert. Diese werden im Folgenden als
y-Koordinate_Soll sowie x-Koordinate-Soll bezeichnet. Anschließend
wird die Ortung mehrfach durchgeführt, um Abweichungen
festzustellen. In diesem Versuch wird mit Offsetkorrekturwert=0,258
Sekunden 20 mal die Position berechnet.
Auswertung: Die Streuung der Messwerte liegt damit schon
deutlich besser an den tatsächlichen Koordinaten des Mikrofons.
Allerdings gibt es noch einzelne Ausreiser, die eine
Mittelwertberechnung stark verfälschen würden. Weitere Auswertung: Es werden für die Mittelwertberechnung jeweils
4 Wertepaare für die x- und y-Koordinate nicht berücksichtigt, deren
Werte einmal die 2 kleinsten und die 2 größten Werte der x- und y
Koordinaten (verglichen zu den anderen x- und y- Koordinaten im
Versuch) beinhalten.
Auswertung: Es ist ersichtlich, dass die
Werte um die Soll-Koordinaten schwanken. Der berechnete Mittelwert
beträgt für die x-Koordinate=0,3m und die y-Koordinate=2,3m. Damit
konnte gezeigt werden, dass der Versuchsaufbau prinzipiell eine
genaue Ortung zulässt. Die bestehende Abweichung im Mittelwert
entsteht über dessen ungenaue Berechnung. Für eine genauere
Bestimmung bräuchte man eine größere Stichprobe. Im Weiteren müssen
nun die zufälligen Einflussfaktoren genauer ermittelt werden. Dazu
gehört auch die genauere Ermittlung des zufälligen Einflusses durch
die Latenzzeit. Darüber kann man auch mit einer geringen Stichprobe
einen konstanten Mittelwert bestimmen, wodurch auch die
Offsetkorrektur genauer durchgeführt werden kann.
Zusammenfassung
Abschließend lässt sich sagen, dass die akkustische
Positionsbestimmung nach einigen Tests und Anpassungen der
Software-Parameter gute Ergebnisse liefert. Die Position der Pixel
kann bis auf wenigen Ausnahmen zuverlässig und auf wenige Zentimeter
genau bestimmt werden. Es konnte somit wesentlich zu einem
Fortschritt für die akustische Positionsbestimmung der
„Swimming-Pixel“ beigetragen werden. Dazu gehört die Realisierung
der Kommunikation zwischen den Pixel und dem PC im Zusammenspiel mit
der Ortung und der Tonaufnahme des Mikrofons mittels des I2S-Buses.
Darüber hinaus konnten Einflussgrößen auf die Positionsbestimmungen
erkannt und Ansätze zur Fehlerkorrektur umgesetzt werden. Hierdurch
ließ sich die Genauigkeit der Positionsbestimmung erhöhen.
Die bestellte Hardware kann entsprechend der Beschreibung in der
Dokumentation durch eine nachfolgende Gruppe aufgebaut und getestet
werden. Unsere Arbeit bietet damit eine Grundlage für eine
Weiterentwicklung der akustischen Ortungsmöglichkeit.
|
Mit Unterstützung von Prof. J. Walter | Wintersemester 20/21 |