Lego EV3 (ev3dev) reparieren

9. April 2019 - Lesezeit: 4 Minuten

Wir arbeiten an meiner Schule mit Lego EV3 Robotern und dem Open Roberta Lab. Letzte Woche fielen alle Motoren aus, was uns dann doch die Schuld beim Server suchen lies. Hier ist die Lösung, welche OpenRoberta freundlicherweise für mich erstellt hat.

English version version can be found below

Grundsätzlich wurde mir empfohlen bei dem ev3dev bei jessie zu bleiben, da die neuste Version noch nicht voll unterstützt werden würde. Hatten wir, dennoch liefen dir Motern nicht mehr. Also prüften wir per SSH die Version:

apt-cache policy openrobertalab

Wir hatten 1.7.2+1.0.0 installiert. Aktuell ist 1.7.4+1.0.0. Das führt durch eine zumindest mir als Endanwender vollkommen unbekannte API-Änderung zu dem Fehler:

TypeError: makeLargeMotor() missing 1 required positional argument: 'side'

Ermitteln kann man die wenn man zuerst den Befehl

sudo journalctl -f -b0 -u openrobertalab

eingibt und anschließend das fehlerhafte Programm startet. Das Log-Protokoll erscheint direkt in der Konsole.

Also habe ich den ersten Brick wie empfohlen aktualisiert:

sudo systemctl stop openrobertalab
sudo systemctl stop brickman
sudo apt-get update
sudo apt-get dist-upgrade
sudo poweroff

Tata. Die Motoren ließen sich nach dem Neustart wieder bewegen. Für die weiteren Bricks wählte ich eine Abkürzung, die den Vorgang von zwei Stunden (ja, der Brick ist echt langsam) auf ungefähr 10 Minuten reduzierte:

sudo apt-get update
sudo apt-get install openrobertalab

Dadurch wird zwar nur das eigentliche Paket aktualisiert und keine Sicherheitpatches eingespielt, aber was solls.

English

This is tested with eve3dev jessie:

  1. Connect to your brick via ssh.
  2. Run these two commands (each take some minutes):
sudo apt-get update
sudo apt-get install openrobertalab

Als kleinen Bonus bekam ich noch den Hinweis, wie ich das WLAN auf einem Gerät konfigurieren kann und es dann auch beim Clonen des Images erkannt wird:

Wenn man die sd karte auf einem Linux Rechner in einen Kartenleser einsteckt, bekommt man zwei Laufwerke: EV3_BOOT und EV3_FILESYS. Öffnen Sie ein terminal und wechseln Sie in das Verzeichniss in das EV3_FILESYS gemountet wurde (eg vom Filemanager das Verzeichniss per drag-and-drop reinziehen und cd als Befehl davor schreiben). Als root Nutzer eine Datei mit dem Namen des WLANs anlegen (der Name ist nur für einen selbst wichtig).

sudo vi /var/lib/connman/mywifi.config

Die Datei hat folgenden Aufbau:

[service_mywifi]
Type=wifi
Name=mywifi
Passphrase=12345678

mywifi hinter name ist die SSID des Wlan-Netwerkes (das was man beim Verbinden sieht). 12345678 ist das Wifi-Kennwort.

Wenn die Datei erstellt wurde, die SD-Karte auswerfen und im EV3 booten, das Wifi auswählen und er sollte nicht nach dem Passwort fragen. Ich hoffe alles klappt!

Über

Material und Anregungen für den Informatikunterricht.