EV3 via MATLAB Drahtlosverbindung

Aus HSHL Mechatronik
Version vom 7. Mai 2019, 15:18 Uhr von Alexander Schirrmeister (Diskussion | Beiträge)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Autor: Alexander Schirrmeister

Einleitung

Dieser Artikel ist eine Anleitung, wie man einen Lego Mindstorms EV3 mit Matlab via Wifi steuert.


Inhalt

Hier ist die Abfolge der notwendigen Schritte um einen Lego Mindstorms EV3 mit dem gewünschten Drahtlosnetzwerk, sowie Hostcomputer zu verbinden und anschließend mit dem Matlab-LiveScript zu programmieren, steuern und Daten auszuwerten.


Vorbereitung

Der momentan verwendete EV3 kommt nicht mit integriertem WLAN-Adapter. Dafür besitzt er jedoch einen USB-Port, an den man einfach einen WiFi-Dongle (Der hier eingesetzte WLAN-Adapter ist der EDIMAX N150) anschließen kann. Zunächst sollte die Firmware des EV3 auf die Version V1.08H geupdated werden, da die Version V1.07 keinen Edimax Dongle unterstützt. Nun schließen Sie den USB Adapter an das Gerät an und starten dieses neu.

Laden Sie sich anschließend das "EV3 Support Paket" von der Mathworks Seite herunter und installieren Sie dieses.(Genutzte Matlab Version R2015B)

LEGO MINDSTORMS EV3 Support from Matlab

Verbindungen

Hier ist eine Übersicht zu den Verbindungen die erfüllt sein müssen.

Verbindung EV3 zu Router

Sobald der Brick betriebsbereit ist, findet man den WiFi-Menüpunkt unter dem mit einem Schraubenschlüssel gekennzeichneten Reiter. Als Grundeinstellung ist die Box leer.

  1. Wählen Sie mit den Pfeiltasten den WiFi-Menüpunkt aus und bestätigen Sie mit der mittleren Taste. Medium:Nxtimage00.png
  2. Im folgenden Fenster sehen Sie nun die Punkte "Connections" und "WiFi". Wählen Sie WiFi aus und bestätigen Sie mit der mittleren Taste.Medium:Nxtimage02.png
  3. Nachdem die Box hinter "WiFi" einen Haken anzeigt, wählen Sie den Menüpunkt "Connections" an und bestätigen Sie mit der mittleren Taste.Medium:Nxtimage03.png
  4. Wenige Sekunden später zeigt der Brick die zur Verfügung stehenden Netzwerke an. Wählen Sie in diesem Schritt das gewünschte Netzwerk aus und bestätigen Sie.Medium:Nxtimage04.png
  5. Wählen Sie "Connect" aus.Medium:Nxtimage05.png
  6. Wählen Sie eine Verschlüsselungsmethode aus. In den meisten Fällen wird das Protokoll WPA2 genutzt.Medium:Nxtimage06.png
  7. Geben Sie den Netzwerkschlüssel ein und Bestätigen Sie mit dem Haken. (Achten Sie auf Groß- und Kleinschreibung)Medium:Nxtimage07.png
    • Falls Sie einem schon bekannten Netzwerk beitreten wollen, kann es vorkommen, dass der Verbindungsaufbau abgebrochen wird. In diesem Fall können Sie das Netzwerk mit der "Remove" - Option entfernen und anschließend neu verbinden.
    • Tipp: Falls die Eingabe der Netzwerkdaten zu aufwendig ist, können Sie auch mithilfe der LEGO MINDSTORMS EDUCATION Anwendung eine Netzwerkverbindung herstellen. Schließen Sie dazu den Brick per USB an Ihren Computer an und clicken Sie auf den Schraubenschlüssel um die Verbindungsart zu ändern. Dort werden Ihnen mögliche Netzwerke vorgeschlagen und die Dateneingabe kann bequem über die Tastatur erfolgen.

Wenn die Verbindung erfolgreich war, sehen Sie hinter dem Netzwerknamen einen Stern.Medium:Nxtimage08.png

Verbindung Hostcomputer zu EV3

Um Verbindungsfehler früh zu entdecken sollte zunächst versucht werden den Brick zu "pingen".

Gehen Sie in den Brickeinstellungen auf den Reiter "Brick Info" und notieren Sie sich die IP-Adresse und die BrickID. Clicken Sie auf die Windowstaste und suchen Sie nach "cmd". Bestätigen Sie mit Enter. Nun öffnet Sich die Konsole. Die "ping" Funktion sendet 32kb Pakete an die angegebene IP und misst die Dauer der Übertragung.

Beispiel:

ping 192.168.1.3

Wenn der Test erfolgreich war, kann die Verbindung von Matlab und Brick erfolgen.

Um eine Verbindung durch Matlab zum EV3 herzustellen brauchen wir die zuvor notierte IP und ID.

Geben Sie folgenden "legoev3"-Befehl in das Kommandofenster ein:

myev3 = legoev3('wifi','(hier BrickIP einfügen)','(hier BrickID einfügen)');

Der Name des Bricks kann beliebig vergeben werden, muss aber einzigartig sein, da dieser später im Programm als Handle benutzt wird. Bei erfolgreicher Verbindungsherstellung wird dem Workspace die Variable "myev3" hinzugefügt und kann nun verwendet werden.

Sonderfall: Falls ein LAN-Standardnetzwerk aus z.B. Sicherheitsgründen nicht verwendet werden kann, kann zusätzlich ein WiFi-Netzwerk genutzt werden. Da der Computer die Verbindung über das Hauptnetzwerk realisieren möchte, muss in der Windows-Konsole eine extra Route zum "Umleiten" der Datenpakete eingerichtet werden. Dies erfolgt über einen "route add" Befehl.

Das Standardgateway des "falschen" Netzwerks ermittelt man im "Netzwerk und Freigabecenter"

Netzwerk- und Freigabecenter

(Win7: Systemsteuerung -> Netzerk- und Freigabecenter).

Im oberen Bildbereich werden die momentanen Netzwerkverbindungen angezeigt.

Mit einem Click auf die gewünschte Verbindung

Verbindungstyp des Wunschnetzes

, öffnet sich ein Status-Fenster

Statusfenster

. Ein Click auf "Details" führt zu den Konfigurationen der Netzwerkverbindung. Notieren Sie sich die "IPv4-Subnetzmaske" sowie das "IPv4-Standardgateway"

Subnetzmaske und Standardgateway

, da diese Angaben für den späteren Verlauf wichtig sind.

Als nächstes ermitteln Sie auf selbem Weg das Standardgateway des anderen Netzwerks.

Öffnen Sie das Kommandofenster "CMD" als Administrator um die nötigen Rechte für die folgenden Befehle zu erhalten:

Der Befehl "route print" zeigt alle bekannten Netzwerkrouten an.

route print

Der nächste Schritt ist es, eine permanente Route einzutragen. Dies erfolgt über den "route add" Befehl. Dieser Befehl braucht drei verschiedene Eingaben: Das Standardgateway des Hauptnetzwerks, die Subnetzmaske und das Standardgateway des gewünschten Zielnetzwerks.

Bsp.:

route add 183.27.10.140 mask 255.255.255.0 192.168.1.1 -p

Das Beispiel würde also Datenpakete die an das Netzwerk "183.27.10.140" geschickt werden, gleichzeitig an das gewünschte Zielnetz "192.168.1.1" weiterleiten. Der Zusatz "-p" markiert die Route als "Persistente Route".

Falls eine langfristige Weiterleitung an ein Netzwerk enstehen soll, kann statt des Ersten Gateways ein Defaultwert eingetragen werden "0.0.0.0". Bei Wechsel des Standardgateways im Hauptnetzwerks bleibt die Weiterleitung bestehen. Im oben genannten Beispiel erfolgt die Weiterleitung, wenn Datenpakete an das Netz "183.27.10.140" gesendet werden. Falls Sich das Hauptnetz ändert, würden die Daten nicht weitergeleitet, da das erste Gateway nicht mehr existiert.


Test der Verbindung in Matlab

Um zu testen ob alle Schritte funktioniert haben, kann nun das erste Beispielprogramm ausgeführt werden.

playTone(myev3, 500, 3, 20);

Dieser Befehl spielt auf dem Brick "myev3" für drei Sekunden einen Ton mit der Frequenz 500Hz auf der Lautstärke 20 ab.

Hinweis:

Sollte zur Programmierung des EV3 ein zweites Netzwerk, welches keinen Internetzugang gewährt, genutzt werden, sollte man das Netzwerk als "Heimnetzwerk" deklarieren.

Hierzu geht man folgendermaßen vor:

  • Öffnen Sie das Netzwerk- und Freigabecenter ihres Rechners. Clicken Sie hierzu mit der rechten Maustaste auf das Wifi-Symbol in der Explorerleiste. (Link)
  • Clicken Sie unter dem zu nutzenden Netzwerk auf "Öffentliches Netzwerk". (Link)
  • Clicken Sie auf die Schaltfläche "Heimnetzwerk" um dem Router die gewünschten Einstellungen zuzuweisen. (Link)
  • Nach etwa 30 Sekunden haben Sie das Netzwerk als Heimnetzwerk eingerichtet und können es parallel zu Ihrem üblichen Netzwerk nutzen.

Zusammenfassung

Die Konfigurationen sind abgeschlossen.Der Brick ist jetzt bereit für anspruchsvollere programmierungen, da das Programm nicht mehr über den eigenen Mikrocontroller ausgeführt wird, sondern über den Hostcomputer.

Eine Dokumentation über die Befehle lässt sich hier finden: Befehlsdokumentation

Literaturverzeichnis

  1. Übersicht über das Supportpaket(en)
  2. Anleitung Verbindungsaufbau (en)

→ zurück zum Hauptartikel: Lego Mindstorms EV3