Sphero RVR mit Python auf einem Raspberry Pi ansteuern

Heute möchte ich mit euch teilen, wie man einen Raspberry Pi mit dem Sphero RVR verbindet und dabei den RVR mit Python ansteuert.

RVR Battery-State per Python
Auslesen des Sphero RVR Akku-Zustands mit Python

Im ersten Schritt ging es mir darum den Akku-Zustand herauszubekommen, den diesen zeigt der RVR nicht an und auch in der App bekommt man ihn nicht einfach zu Gesicht.

Raspi auf RVR montieren

Ich habe zur Montage ich habe 3mm Kunststoff-Distanzbolzen, -Schrauben und -Muttern benutzt. Aber Achtung: die passen standardmäßig nicht in die Montagelöcher des Raspi; diese habe ich dazu vorsichtig auf 3mm aufgebohrt.

Sphero RVR Montage Raspberry Pi
Sphero RVR Montage Raspberry Pi – Die Distanzbolzen im Detail
Sphero RVR Montage Raspberry Pi
Sphero RVR Montage Raspberry Pi – die Montageplatte von unten
Sphero RVR Montage Raspberry Pi
Sphero RVR Montage Raspberry Pi – Passt sogar noch mit dem Überrollbügel
Sphero RVR Montage Raspberry Pi
Sphero RVR Montage Raspberry Pi – auch an die GPIO-Leiste kommt man ran
Sphero RVR Montage Raspberry Pi
Sphero RVR Montage Raspberry Pi – hier mit externer Stromversorgung
Sphero RVR Montage Raspberry Pi
Sphero RVR Montage Raspberry Pi – Das Kabel passt ganz gut in den Überrollbügel
Sphero RVR Montage Raspberry Pi
Sphero RVR Montage Raspberry Pi – die Spannungsversorgung nehme ich derzeit nicht vom internen RVR-Akku

Raspi an RVR anschließen

Bevor es aber losgeht, gilt es erst einmal den Raspi mit der seriellen Schnittstelle des RVR zu verbinden. Die Verbindung ist simpel und hier perfekt beschrieben, so dass ich die Details auf dieser Seite nicht noch einmal wiederholen möchte.

Beachte aber, dass zumindest bei meinem – vermutlich einem der ersteren Versionen – RVR der Beipackzettel eine falsche Belegung der seriellen RVR-Buchse aufwies. Hier daher erneut die korrekte Belegung (rot):

Sphero RVR Unboxing 11
Korrekte Belegung der seriellen Schnittstelle des Sphero RVR in rot!

Software auf dem Raspberry Pi (RVR SDK)

Als Betriebssystem empfiehlt sich Raspbian. Nachdem dieses installiert ist und der SSH-Zugang aktiviert wurde, geht es daran das SDK auf den Pi zu installieren. Dieses kann einfach mit git geklont werden:

git clone https://github.com/sphero-inc/sphero-sdk-raspberrypi-python.git

Laut Original-Anleitung werden weitere Abhängigkeiten installiert – einschließlich pipenv.

./first-time-setup.sh

Letzteres machte auf meinem Pi diverse Probleme. Ich habe diese virtuelle Umgebung derzeit nicht mehr genutzt. Ich habe dieses daher anschließend deinstalliert:

pip3 uninstall pipenv

Beim Starten der Beispiele gab es gleich zu Beginn diverse Fehlermeldungen. Offenbar gibt es hier noch weitere Abhängigkeiten, die wie folgt nachinstalliert werden mussten:

pip3 install aiohttp pyserial_asyncio

Auslesen des Batterie-Status

Sehr gut gefallen haben mir die zahlreichen Beispiele auf der Website von Sphero – wie eben auch das Auslesen des Batterie-Status.

Offenbar gibt es hier aber auch Probleme mit dem Code, die ich auch hatte. Der im Code angegebene Pfad musste in den Beispielen von

s.path.append(os.path.abspath(os.path.join(os.path.dirname(file), ‘../../../’)))

nach

s.path.append(os.path.abspath(os.path.join(os.path.dirname(file), ‘../../’)))

geändert werden.

Läuft bei mir!

Nun hat alles geklappt und der Code lief einwandfrei durch und gab auf der Shell den Akku-Status aus:

Aufruf des Codes und Ausgabe des Akku-Zustands

Als Nächstes soll eine remote Steuerung per Shell über die Tastatur („WASD“) ausprobiert werden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert