Sphero SPRK+ mit GoBot programmieren [Tutorial & Video]

Gepostet am: 08. April 2019

In den letzten Wochen habe ich mich mit dem Programmierung eines Sphero SPRK+ Roboters beschäftigt. Genutzt habe ich dabei das Framework GoBot, das eine Programmierung des Roboters in der Programmiersprache “Go” ermöglicht. Wie dies funktioniert, zeige ich euch in diesem Artikel.

Der Sphero SPRK+ ist ein Roboter der Marke Sphero. Er ist eingefasst in eine durchsichtige Plastikschicht, kann die Farben seiner LEDs wechseln und sich rollend fortbewegen. (An)Gesteuert wird Sphero via Bluetooth Low Energy. Des weiteren befinden sich im Inneren einige Sensoren, die auch über die Bluetooth-Verbindung ausgelesen werden können.

Sphero Play
Preis: Kostenlos
 
Sphero Play
Preis: Kostenlos

Zur Steuerung des Sphero gibt es die Sphero Play App für Smartphones. Mit dieser App lässt sich der Roboter direkt steuern und es gibt einige Spiele, welche man mit dem Roboter spielen kann. Eine Programmierung des Roboters ist über die Sphero Play App allerdings nicht möglich, dafür gibt es dann die Sphero Edu App. In der Sphero Edu App gibt es auch die Option, den Roboter direkt zu steuern; zusätzlich lässt er sich aber auch auf visuelle Art und in JavaScript programmieren. Die Apps sind allerdings nur für Smartphones verfügbar, eine Programmierung mit dem Computer ist mit den Apps nicht möglich.

 
Sphero Edu
Preis: Kostenlos

Sphero am PC programmieren

Für die Programmierung am PC bietet sich das Framework GoBot an, das die Steuerung von Robotern, IoT-Devices und mehr mittels der Programmiersprache Go ermöglicht. GoBot bietet eine Vielzahl von Treibern und Adaptern zur Steuerung verschiedenster Geräte wie beispielsweise Arduinos und Raspberry Pis, unterschiedlichste Spielzeuge und auch Drohnen.

Das mit GoBot geschriebene Programm läuft meist allerdings nicht auf dem Roboter selbst, sondern auf einem damit verbunden Computer. Das Programm sendet Steuerkommandos an den Roboter und bekommt Daten zur Auswertung vom Roboter zurückgesandt.

Die Kommunikation zwischen GoBot und dem Sphero findet per Bluetooth statt und nachdem einige Funktionen im Framework per Pull-Request ergänzt wurden, ist in GoBot beinahe derselbe Funktionsumfang enthalten wie in der Smartphone App.

Um ein besseres Bild von der Programmierung mit GoBot zu bekommen, ist im folgenden ein simples Go-Programm zu sehen, das Sphero für 5 Sekunden lang geradeaus fahren lässt.

Das Programm verbindet sich per Bluetooth mit Sphero, wobei der Bluetooth-Name von Sphero als Befehlsparameter mitgegeben werden muss. Beim Aufruf von robot.Start()  wird die Verbindung aufgebaut, und die als work  definierte Arbeit gestartet. Der Roboter rollt 5 Sekunden lang geradeaus, und danach ist das Programm fertig, die Verbindung wird wieder getrennt.

 

Eine der besonderen Funktionen von Sphero ist das “Lokator”-Feature, das es ermöglicht die aktuelle Position relativ zum Startpunkt abzurufen. Dadurch ist es möglich, einen Weg für Sphero zu berechnen, um an bestimmte Koordinaten zu fahren. Um dieses Feature zu veranschaulichen habe beispielhaft ein simples Spiel erstellt, in dem der Spieler mit Sphero Punkte auf einer Karte einsammeln muss. Ziel ist es, so viele Punkte wie möglich zu erreichen bevor die Zeit abläuft. Jeder eingesammelte Punkt verlängert dabei die verbleibende Zeit. Das Frontend des Spiels wurde in JavaScript umgesetzt und kommuniziert regelmäßig mit dem Backend, das Sphero selbst steuert, wie im Video oben zu sehen ist.

Weiterlesen

Interesse, das ganze selbst zu versuchen? Der Code ist auf Github zu finden! Wenn du auf der Suche nach einem neuen Job bist oder dich für eine Stelle als Werkstudent:in interessierst, schau dir unsere Job-Angebote an!

2019-04-08T11:06:59+00:00