Welches System für die Steuerung verwenden?
In diesem Beitrag stelle drei Systeme vor, die für die Steuerung von kleinen Robotern in Frage kommen. Es folgt ein Vergleich und eine Abwägung von Vor- und Nachteilen bezüglich des Einsatzes für das Robbi-Projekt:
Der Calliope Mini
Der Callipe Mini ist ein für Bildungszwecke entwickelter Einplatinencomputer. Enthalten sind eine 5x5 LED-Matrix, Sensoren (Licht, Temperatur, Beschleunigung, Mikrofon) ein DC-Motortreiber, mehrere digitale und analoge Eingänge, Funk und Bluetooth. Er ist die “deutsche Variante” des BBC Microbit.
Für die als “Löcher” realisierten Anschlüssen empfiehlt es sich Stift-Leisten anzulöten.
Folgendes Bild zeigt den Original-Calliope und einen mit angelöteter Stiftleiste.
Den Calliope programmiert man auf einem anderen Computer in einer von mehreren möglichen webbasierte graphische Programmierumgebungen. Anschließend überträgt man den Programmcode auf den Calliope Mini.
Der Raspberry Pi
Der Raspberry Pi ist ein Einplatinencomputer, bei dem meist ein angepasstes Linux als Betriebssystem zum Einsatz kommt. Er ist ein kleiner vollständiger Computer, an den man einen Monitor, eine Tastatur und eine Maus anschließen kann. Die Ausstattung ist abhängig vom Modell. Ich nutze die folgenden Raspis:
- Raspberry Pi Zero W
- Raspberry Pi 3 Model B Plus Rev 1.3
Diese Raspis verfügen über 40 GPIO-Pins, WLAN und Bluetooth und einen Kameraanschluss.
Programmiert wird der Raspi oft in Python. Es sind aber auch andere Programmiersprachen möglich. Dabei kann man das Programm direkt auf dem Raspi erstellen.
Der Arduino
Der Arduino ist ein Microcontroller, der über digitale und analoge Pins verfügt. Zusätzliche Funktionen sind über das Aufstecken von Erweiterungen (Shields) möglich.
Es gibt sehr viele Arduino-Modelle. Ich nutze einen Arduino Uno.
Programme für den Arduino werden auf einem anderen Rechner in der Arduino IDE programmiert und dann auf den Arduino übertragen. Auf diesem läuft dann nur das auf ihn übertrgene Programm.
Der Vergleich
Merkmal | Callipe Mini | Raspberry Pi | Arduino Uno |
---|---|---|---|
Programmiersprache | Make Code / Open Roberta Lab | meist Python / andere möglich | C++ in Arduino-IDE (Sketches) |
Anzahl analoger PINs | 4 | 0 | 6 |
Anzahl digitaler PINs | 16 | 26 | 14 |
Motortreiber on Board | ja | nein | nein |
Bluetooth on Board | ja | ja | nein |
Sensoren on Board | Licht, Temperatur, Beschleunigung | nein | nein |
Mobile Stromversorgung | über USB oder über 2AAA-Batterien | über USB | mehrere Möglichkeiten |
Anschluss Kamera | nein | ja | nein |
Größe | 8 x 9 cm (Stern) | 9 x 6 cm | 7 x 6 cm |
Preis | 35 Euro | 35 Euro / 19 Euro (Zero) | 20 Euro |
Stromverbrauch | ? | ? | ? |
Vor- und Nachteile
Der Calliope Mini punktet mit seiner Ausstattung. Man kann die auf dem Board vorhandenen LEDs, Schalter Sensoren usw. direkt nutzen. Der integrierte Motortreiber unterliegt zwar einigen Einschränkungen, ist aber ohne weitere Hardware nutzbar, sofern man an die Motor-Pins eine Stiftleiste gelötet hat. Wenn man zwei Calliope Mini hat, kann man den einen als Steuermodul auf dem Robbi nutzen und den anderen als Funk-Fernsteuerung (z.B. unter Auswertung des Neigesensors) verwenden. Probleme (Aussetzer, Ruckeln) traten jedoch bei gleichzeitiger Verwendung von DC-Motoren und einem Servomotor auf. Die graphische Pogrammierung macht die Nutzung einfach, damit ist der Calliope auch für Kinder gut geeignet.
Der Raspi ist dann die erste Wahl, wenn komplexere Aufgaben, wie beispielsweise die Auswertung von Kamerabildern geplant sind. Da man ein vollständiges Linux-Betriebssystem hat, können alle dafür zur Verfügung stehenden Programme genutzt werden. Bei der Programmierung in Python stehen ebenfalls viele Möglichkeiten offen. Viele wichtige Bibliotheken sind schon standardmäßig dabei, weitere können über den Python-Paketmanager pip nachinstalliert werden. Um Motoren anzusteuern benötigt man zusätzlich Hardware, beispielsweise ein aufsteckbares Motorshield oder ein L298-Motortreiber. Ich nutze letzteren. Auch Sensoren sind nicht integriert. Um mit dem Raspi gut klarzukommen sind Linux-Kenntnisse und Kenntnisse in der Programmierprache Python hilfreich.
Auch für den Arduino benötigt man ein Motorshield oder einen Motortreiber sowie Sensoren bei Bedarf. Die Möglichkeiten sind beim Arduino gegenüber dem Raspi zwar beschränkt - das macht die Sache aber auch einfacher. Man muss sich vor allem mit der Arduino IDE vertraut machen. Der Arduino hat einen hohen Verbreitungsgrad und man findet viele Beispielprojekte.