ArduMower: Drahtlose Datenschnittstelle: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
Keine Bearbeitungszusammenfassung |
||
Zeile 9: | Zeile 9: | ||
= Aufgabe = | = Aufgabe = | ||
Erstellung einer drahtlosen Datenschnittstelle zur Überprüfung von Sensordaten | Erstellung einer drahtlosen Datenschnittstelle zur Überprüfung von Sensordaten über Wifi | ||
Version vom 9. November 2017, 09:16 Uhr
Dieser Wiki-Beitrag ist Teil eines Projektes, welches im Rahmen vom Fachpraktikum Elektrotechnik im 6. Semester Mechatronik absolviert wurde. Ziel des Beitrags ist es, eine nachhaltige Dokumentation zu schaffen, welche die Ergebnisse festhält und das weitere Arbeiten am Projekt ermöglicht.
Autoren: Tom Niehaus
Betreuer: Prof. Dr.-Ing. Schneider, Prof. Dr.-Ing. Mirek Göbel
Aufgabe
Erstellung einer drahtlosen Datenschnittstelle zur Überprüfung von Sensordaten über Wifi
Erwartungen an die Projektlösung
- Erstellung einer Diagnose-Oberfläche
- Kommunikation zwischen Rechner und Roboter via Wifi
- Test des WLAN Moduls
- Gegebenfalls Verbindung mit Hochschulnetzwerk
- Integration der Schnittstelle in Simulation
Herangehensweise
- Einarbeitung in Funktion des W-Lan Modules ESP8266_W-Lan Modul
- Recherche Pinbelegung (https://arduino-hannover.de/2014/12/11/wifi-kochbuch-mit-esp8266/)
- Protokoll zur Datenübertragung festlegen (TCP/IP)
- Platine für W-Lan Modul auf Grundlage der Pinbelegung fertigen, um dieses an den ArduMower anzuschließen (s. Bild 1)
- Einarbeitung in Programmierung eines Datenaustauschs mittels UDP zwischen Arduino und einem PC
- Umsetzen des Datenaustausches in Matlab Simulink
Platine
Die Platine (s. Bild 1) besteht aus dem WLAN-Chip ESP8266, zwei Widerständen und Anschlüssen für die Stromversorgung des Chips und Kommunikation über die serielle Schnittstelle des Arduino. Der Chip sowie die anderen Bauteile sind auf einer Lochrasterplatine verlötet. Die Rückseite der Platine ist mit einer Heißklebepistole versiegelt worden um das Kurzschließen an den Kontakten an der Rückseite zu vermeiden. Der Chip wird mit 5V Versorgungsspannung vom Arduino versorgt. Da der Arduino bei der seriellen Schnittstelle mit einem Pegel von 5V arbeitet und der W-LAN Chip nur 3,3V an der seriellen Schnittstelle verträgt ist ein Spannungsteiler mit den beiden Widerständen erstellt worden.
Das Übertragungsprotokoll
Die Kommunikation zwischen dem Ardumower und dem Roboter geschieht über TCP/IP (Transmission Control Protocol/Internet Protocol). Die Hauptaufgabe dieses Protokolls ist es dafür zu sorgen, dass Datenpakete innerhalb eines dezentralen Netzwerks vom Sender beim Empfänger ankommen. Das Protokoll stellt hierfür einige Funktionen bereit:
- Logische Adressierung / Logical Addressing
- Wegfindung / Routing
- Fehlerbehandlung und Flusssteuerung / Error Control and Flow Control
- Anwendungsunterstützung / Application Support
- Namensauflösung / Name Resolution
Logische Adressierung
Es bedarf einer Möglichkeit das Netzwerk physikalisch (Topologie) und logisch (Adressierung) zu strukturieren. Innerhalb von TCP/IP übernimmt IP die logische Adressierung von Netzwerken und deren Teilnehmern. Dieses sorgt dafür, dass Datenpakete nur an die Teilnehmer gesendet werden, welche diese Daten benötigen.
Routing
Das Routing sorgt als eine Art Wegfindung dafür, dass die Datenpakete ihre Ziele erreichen. Hierfür wird für jedes Datenpaket bei jedem einzelnen Netzknoten auf dem Weg zum Empfänger der nächste Netzknoten ermittelt.
Fehlerbehandlung und Flusssteuerung
Obwohl es sich eher um eine virtuelle Verbindung handelt, werden während der Datenübertragung ständig Kontrollmeldungen ausgetauscht, weshalb man von einer verbindungsorientierten Kommunikation spricht. Wird ein Fehler festgestellt, wird das betreffende Datenpaket erneut übertragen. Zusätzlich ist eine Daten-Flusssteuerung notwendig, um die verfügbare Übertragungsgeschwindigkeit auszunutzen. Weil es im Internet für eine Ende-zu-Ende-Verbindung keinen exklusiven Kanal mit fester Übertragungsgeschwindigkeit gibt, bedarf es hier einer automatischen Anpassung.
Anwendungsunterstützung
Ähnlich wie Rechner mit IP-Adressen in Netzwerken adressiert werden, bedarf es einer Unterscheidung der Kommunikationsverbindungen zwischen spezifischen Anwendungen, die gemeinsam auf einem Rechner laufen. TCP- und UDP-Ports (Nummern) bilden eine Software-Abstraktion, um spezifische Anwendungen und deren Kommunikationsverbindungen voneinander unterscheiden zu können.
Namensauflösung
Es werden lieber Namen zur Bezeichnung und Identifizierung von Dingen verwendet, da sich ein Mensch diese besser merken kann. Dieses ist jedoch nicht hilfreich bei einem Netzwerk, welches anstatt von Namen mit IP Adressen arbeitet. Um in einem solchen Netzwerk eine Verbindung auf IP Ebene zu geährleisten ist eine Namensauflösung erforderlich, welche zu einem Computer - oder Domainnamen eine IP Adresse ermittelt.
Schnittstellen
Bewertung und Ausblick
Der Chip des W-LAN Moduls ist erfolgreich auf seine Funktionen getestet worden. Das Senden und das Empfangen anhand des Chips funktioniert. Im Zuge des Tests ist eine Verbindung mit einem Rechner erforderlich gewesen. Diese konnte erfolgreich hergestellt werden um Daten über Simulink zum Modul zu senden. Bisher konnte nur das Senden vom Rechner zum Roboter mit Simulink implementiert werden. Ein Programm für das W-LAN Modul über Simulink auf den Arduino zu spielen führt bisher noch zu einer Fehlermeldung. Der nächste Schritt ist es diese zu beseitigen. Der Matlab Support ist diesbezüglich bereits informiert und hat einen Lösungsansatz vorgeschlagen. Die Kommunikation vom Roboter zum Rechner läuft in der Entwicklungszeit über einen vom Hochschulnetzwerk getrennten Router. Wenn die Entwicklung abgeschlossen ist wird die IT informiert um eine eventuelle Integration in das Hochschulnetzwerk herzustellen. Eine erste Version der Diagnoseoberfläche ist bereits in Matlab erstellt worden. Diese muss jedoch noch lauffähig gemacht werden, wenn das W-LAN Modul im Roboter integriert ist.
Der momentane Fortschritt kann mit 80% der Gesamtlösung bewertet werden.