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:
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!