NXT-Brick mit Python steuern

NXT-Python installieren

Hinweise für die folgende Beschreibung:

  • "$" bedeutet, dass der nachfolgende Text (ohne das $) in der bash-Shell eingegeben werden soll.

  • ">>>" bedeutet, dass der nachfolgende Text Python-Shell ausgeführt werden soll.

  • Es wird Python 3 verwendet.

Arbeitsverzeichnis erzeugen:

$ cd ~

$ mkdir nxt

$ cd nxt

Python-nxt-Bibliothek herunterladen:

(Falls git nicht installiert ist, dann vorher mit $ sudo zypper install git installieren)

In das heruntergeladene Verzeichnis wechseln:

$ cd nxt-python

Python-nxt-Bibliothek für eigenen Nutzer (im Gegensatz zu systemweit) installieren:

$ ./install.sh

Ausprobieren, ob das geklappt hat:

$ python

>>> import nxt

Wenn keine Fehlermeldung erscheint, war die NXT-Python-Installation erfolgreich. Mit Strg+D die Python-Shell wieder verlassen.

Im nächsten Schritt wird der USB-Anschluss konfiguriert.

USB-Verbindung einrichten

Die nächsten Schritte basieren auf dieser Anleitung: https://github.com/Eelviny/nxt-python/wiki/Installation

PythonUSB (http://walac.github.io/pyusb/) installiern, um mit Python den USB-Anschluss nutzen zu können:

$ sudo zypper install python3-usb

------ Folgende Schritte erst einmal weglassen ----------

Neue Gruppe lego erzeugen:

$ sudo groupadd lego

Aktuellen Benutzer in die lego-Gruppe aufnehmen

$ sudo usermod -a -G lego <username>

wobei <username> durch den eigenen Benutzernamen ersetzt werden muss. Dieser kann mit $ whoami herausgefunden werden.

UDEV-Regel anlegen (siehe auch https://de.wikipedia.org/wiki/Udev):

echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="0694", GROUP="lego", MODE="0660"' > /etc/udev/rules.d/70-lego.rules

Rechte setzen:

$ sudo chmod u+w /etc/udev/rules.d/70-lego.rules

------ Weiter hier: ----------

Brick mit USB an den Rechner anschließen und folgendes ausführen:

cd ~/.local/bin
./nxt_test

# liefert:

NXT brick name: b'NXT\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
Host address: 00:16:53:05:D2:A2
Bluetooth signal strength: 0
Free user flash: 16476
Protocol version 1.124
Firmware version 1.31
Battery level 7422 mV

(siehe auch Abschnitt Fehlerbehebung unten)

Beispiele ausprobieren

Zurück ins Arbeitsverzeichnis:

$ cd ~/nxt

Beispiele herunterladen:

$ cd nxt-python-examples

Einen Motor an einen beliebigen Port (A, B oder C) anschließen:

$ ./test_motor.py

Den Geräusch-Sensor an Port 1 anschließen:

$ ./clapper1.py

Fehlerbehebung

Hintergrund