4-Achsen-Roboterarm mit PiXtend ansteuern

© alphaspirit, 123RF

Sanft berührt

Mit einem RasPi und dem Controllermodul PiXtend lassen sich mühelos Roboterarme ansteuern und deren Bewegung automatisieren.

In der Zeichentrickserie "Pinky und der Brain" versuchen jede Nacht zwei Labormäuse die Weltherrschaft zu erlangen. Die meisten erinnern sich vermutlich daran, wie schwierig sich das für Brain gestaltet – besonders mit einem Partner wie Pinky, mit dem es vermutlich nie klappen wird. Wir müssen also nach einer besseren Alternative suchen: Wie wäre es mit einem Roboter? Dieser Artikel beschreibt, wie Sie mit einem RasPi, dem PiXtend und der Steuersoftware von Codesys einen Roboterarm programmieren.

Zum Einsatz kommt der 4-Achsen-Roboterarm von Sainsmart [1] mit einem guten Preis-Leistungs-Verhältnis und großem Arbeitsbereich. Um ihn zu bewegen, nutzen wir einfache Modellbauservos. Damit der Roboter auch in der Lage ist, Gegenstände zu bewegen, bekommt er zusätzlich einen einfachen Greifer [2]. Die Webseite Thingiverse.com [3] stellt dafür eine Vorlage für 3D-Drucker bereit, mit der sich der Greifer ausdrucken lässt, alternativ gibt es ihn bei Amazon zu kaufen [4]. Auch den Greifer treibt ein Modellbauservo an, der zum Ansteuern ein PWM-Signal benötigt. Der Kasten "Funktionsweise von Modellbauservos" beschreibt, wie diese Motoren arbeiten.

Um den Überblick nicht zu verlieren, beschriften Sie die einzelnen Motoren am besten. Die Tabelle "Beschriftung der Motoren" zeigt eine entsprechende Übersicht. In Abbildung 1 sehen Sie den Roboter mit Greifer. Der zugehörige Schaltplan in Abbildung 2 zeigt, wie Sie die einzelnen Motoren anschließen. Beachten Sie, dass Modellbauservos eine Betriebsspannung von maximal 6 Volt vertragen.

Beschriftung der Motoren

Beschriftung

PiXtend-Anschluss

Funktion

M1

PWM2A

Greifer öffnen und schließen

M2

PWM1B

Greifer drehen

M3

PWM0B

Arm ein- und ausfahren

M4

PWM0A

Arm heben und senken

M5

PWM1A

Arm in der Basis drehen

Abbildung 2: Der Schaltplan des Roboterarms zeigt die Verkabelung der Servomotoren mit dem PiXtend.

Funktionsweise von Modellbauservos

Wenn wir hier von Servomotoren sprechen, meinen wir kleine handliche Kästchen aus dem Modellbaubedarf, nicht etwa von industriellen Servomotoren, wie sie in den großen Robotern aus dem Automobilbau stecken. Bei Modellbauservos handelt es sich streng genommen gar nicht um Motoren, sondern eher um Stellglieder. In dem kleinen Kasten ist zwar auch ein Motor verbaut, doch das, was den Servo ausmacht, sind die zusätzlichen Elektronikkomponenten.

Die in unserem Projekt verwendeten Servos steuern Sie über ein PWM-Signal an. Das Kürzel PWM steht für Pulsweitenmodulation. Stellen Sie sich ein Rechtecksignal mit einer konstanten Frequenz vor. Nun verändern Sie das Verhältnis zwischen Puls (eingeschaltet) und Pause (ausgeschaltet) – mehr hat PWM nicht zu bedeuten.

Per PWM lassen sich Informationen in der Pulslänge kodieren. Bei unseren Servomotoren bedeutet das, dass die Länge des Signals angibt, welche Winkelposition der Servohebel annehmen soll. Damit das funktioniert, befindet sich im Inneren der Servos ein Positionsgeber, der meldet, wo der Hebel gerade steht. Eine Regelelektronik gleicht kontinuierlich die Ist- mit der Soll-Position ab und steuert den Motor so an, dass die Differenz der beiden möglichst klein ausfällt. In der Praxis gelingt es manchmal nicht, die Differenz null zu erreichen. Dann fängt der Servo zu brummen an. Im Inneren des Servos befindet sich ein Getriebe, das die Drehbewegungen des Motors übersetzt.

Die wichtigsten Kennwerte von Servos umfassen die maximale Winkeldifferenz des Hebels, die Kraft, die er aufbringt, und seine Stellgeschwindigkeit. Dass ein Servo mit echten Kugellagern und Metallgetriebe länger hält als ein Vollplastikservo mit Gleitlagern, versteht sich von selbst. Die Unterschiede in der Qualität machen sich auch im Preis bemerkbar.

Nachdem Sie nun wissen, wie ein Servo arbeitet, sollten Sie noch einen genaueren Blick auf das PWM-Signal werfen. Es besitzt immer eine Frequenz von 50 Hz, das entspricht einer Signallänge von 20 Millisekunden. Viele Servos lassen sich auch mit einer kürzeren Signallänge ansteuern, beispielsweise 10 Millisekunden. Der Pulslänge beträgt 1 bis 2 Millisekunden. Die Winkelposition des Servos hängt von der Pulslänge des Signals ab (Abbildung 3).

Abbildung 3: Die Funktionsweise des PWM-Steuersignals: kurzer Impuls – kleiner Schritt des Servomotors, langer Impuls – großer Schritt.

Steuerung

Wie erwähnt übernimmt ein PiXtend das Ansteuern der Motoren. Falls Sie diese Steuerung noch nicht kennen, werfen Sie einen Blick in den Kasten "PiXtend im Überblick". Der Kasten "PiXtend: Technische Daten" fasst die technischen Einzelheiten zusammen.

Wir verwenden hier das PiXtend V2 -L-. Es verfügt über eine Vielzahl an Schnittstellen, die es erlauben, fast jedes Geek-Projekt in die Tat umzusetzen. Bevor wir uns mit der Programmierung des Roboters auseinandersetzen, gilt es, die Codesys-Software auf dem PiXtend und auf einem Windows-PC zu installieren. Bislang liegt ärgerlicherweise keine Linux-Version des Programms vor.

Die komplette Software – Programme und Packages für Codesys inklusive der Beispielapplikation – finden Sie auf der Webseite des PiXtend-Herstellers [5]. Zunächst benötigen Sie das Codesys Development System V3, das kostenlos zum Download bereitsteht [6]; die Installation übernimmt komplett ein Assistent. Damit die Entwicklungsumgebung mit dem PiXtend zusammenarbeitet, müssen Sie noch zwei zusätzliche Packages [7] auf dem Rechner installieren [8]. Nach dem Herunterladen der Dateien genügt ein Klick darauf, damit der Codesys-Package-Manager sie installiert.

Für das PiXtend selbst benötigen Sie ebenfalls die passende Software, die als vorbereitetes SD-Card-Image [9] vorliegt. Eine ausführliche Beschreibung zum Einrichten der kompletten Software finden Sie in der Anleitung des PiXtend [10].

PiXtend im Überblick

Beim PiXtend V2 -L- handelt es sich um ein professionelles Erweiterungsboard für den RasPi. Es verfügt über industriekompatible I/O-Ports und viele zusätzliche Schnittstellen, die dem Raspberry Pi fehlen. Dazu zählen neben analogen Ein- und Ausgängen auch die Relaisausgänge mit einer sehr hohen Schaltleistung.

Zur Programmierung stehen eine ganze Reihe von Alternativen bereit. Die Linux-Tools umfassen einige Kommandozeilenprogramme, mit denen sich die Funktionen des PiXtend aufrufen lassen. Damit erstellen Sie auf einfache Weise Skripte, die die Steuerung übernehmen. FHEM ist eine weitverbreitete, auf Linux basierende Hausautomationssoftware. Die PiXtend Python Library stellt eine API bereit, die es gestattet, einfach auf die Schnittstellen des PiXtend zuzugreifen. Open PLC, eine quelloffene SPS-Software, kommt oft an Hochschulen zum Einsatz. Mit dem IoT-Entwicklungswerkzeug Node-RED lassen sich komplexe Abläufe in einem Webfrontend einfach grafisch darstellen. Der PiXtend-Hersteller Codesys liefert eine IDE zum Erstellen von Programmen für Industriesteuerungen, die viele Hersteller von Steuerungen verwenden. Erlernen Sie den Umgang mit dieser Programmierumgebung, können Sie für fast alle auf dem Markt befindlichen Steuerungen Programme erstellen.

Das hier eingesetzte PiXtend-Board ist nur eine von vielen PiXtend-Varianten. Auf der Webseite des Herstellers finden Sie ausführliche Informationen zu den unterschiedlichen Typen [13]. Während sich das PiXtend V1 sehr gut für die Aus- und Weiterbildung eignet, zielen die V2-Varianten eher auf den professionellen Einsatz in Anlagen ab.

PiXtend: Technische Daten

  • 16 digitale Eingänge (3,3 V/5 V/12 V/24 V)
  • 12 digitale Ausgänge (max. 30 V, je 0,5 A)
  • 6 PWM-/Servo-Ausgänge (6 x 16 Bit)
  • 4 Relais (max. 230 V, 6 A)
  • 4 Spannungseingänge (0 bis 5 V/0 bis 10 V),
  • 2 Stromeingänge (0 bis 20 mA)
  • 2 analoge Spannungsausgänge (0 bis 10 V)
  • 4 GPIOs (5 V)
  • Serielle Schnittstelle: RS232, RS485 (CAN)
  • Echtzeituhr (RTC) mit Batteriepufferung
  • bis zu 4 DHT11-/DHT22-/AM2302-Sensoren (Temperatur und Luftfeuchtigkeit)
  • Onboard-Spannungsregler
  • Eingang 12 bis 24 V DC (max. 30 V)
  • Ausgang 5 V DC / 2,4 A (versorgt PiXtend V2 -L-, Raspberry Pi und angeschlossene USB-Geräte)
  • Retain-/Persistent-Speicher: 64 Bytes Flash EEPROM
  • ausgelegt für die Raspberry-Pi-Modelle B+/2B/3B/3B+
  • Zulassung: CE, RoHS

Erster Test

Nach Abschluss der Vorarbeiten bereiten Sie den ersten Test vor. Als Grundlage dient ein Demoprojekt [11], mit dem Sie die PWM-Ausgänge des PiXtend einzeln ansteuern. Es stellt eine grafische Oberfläche bereit, die Sie unter der IP-Adresse des Raspberry Pi aufrufen. Alternativ bedienen Sie das Frontend aus der Codesys IDE heraus (Abbildung 4), die für alle Funktionen des PiXtend Testmöglichkeiten bereitstellt.

Abbildung 4: Das Codesys-Demoprojekt eröffnet viele Möglichkeiten, auf die Steuerung des PiXtend zuzugreifen.

Um den Roboter in Betrieb zu nehmen, benötigen wir zunächst den Programmteil zum Ansteuern der PWM-Ausgänge (Abbildung 5). Achten Sie darauf, dass diese auf Servo Mode stehen. Zur Inbetriebnahme aktivieren Sie die einzelnen PWM-Ausgänge nacheinander, mit dem Schieberegler geben Sie eine Position für den Servo vor. Die Reglerwerte erlauben dabei eine Einstellung zwischen 0 und 16 000. Im ungünstigsten Fall macht der Servo schnelle, unkontrollierte Bewegungen. Daher stellen Sie die Regler für die PWM-Signale vor dem Aktivieren auf die Mittelstellung.

Abbildung 5: Mit dem Demoprojekt von Codesys lassen sich vorab die verschiedenen Winkelstellungen der Servomotoren ausprobieren.

Nun gilt es, herauszufinden, welche Werte der Maximal- und der Mittelposition des Servos entsprechen – diese Werte variieren von Modell zu Modell. Notieren Sie sich die End- und Mittelwerte. Sie können sich auch Markierungen im Arbeitsbereich des Roboters machen: Damit fällt das Programmieren später leichter. Mithilfe des Demoprojekts lassen sich Werte für alle Positionen ermitteln, die der Roboter später einnehmen soll.

Bei den ersten Tests tritt mitunter ein weiteres Problem mit sehr unangenehmen Nebeneffekten auf: Zieht einer der Servos aus irgendeinem Grund (Blockierung oder Überlast) so viel Strom aus der Spannungsversorgung, dass sie zusammenbricht, arbeitet die Regelelektronik der restlichen Motoren ebenfalls nicht mehr korrekt. Alle Servos bewegen sich plötzlich unkontrolliert und chaotisch hin und her. Um sie zu stoppen, deaktivieren Sie alle PWM-Ausgänge. Anschließend aktivieren Sie die Servos einzeln wieder, um das Problem einzugrenzen.

Ein Labornetzteil mit eingebauter Stromüberwachung hilft bei der Fehlersuche enorm. Ein Indiz dafür, dass etwas nicht stimmt, liefert das tiefe Brummen, das die Servos erzeugen, wenn sie eine Position nicht erreichen können. Auch ein Dauerstrom von mehr als 600 Milliampere bei fester Servoposition weist auf einen Fehler hin. Beim Bewegen fließen mitunter aber auch höhere Ströme. Sobald der Motor steht, sollte er so gut wie keinen Strom mehr aufnehmen. Nach dem Durchspielen der hier beschriebenen Tests geht es an das erste richtige Programm.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 7 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Raspberry Pi Geek kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

Aktuelle Ausgabe

10/2019
Raspberry Pi 4B

Diese Ausgabe als PDF kaufen

Preis € 9,99
(inkl. 19% MwSt.)

Stellenmarkt

Neuigkeiten

  • Sonnige Zeiten

    UV-Strahlung ist für das menschliche Auge unsichtbar, was sie umso gefährlicher macht. Die Höhe der tatsächlichen Belastung verrät Ihnen das Selbstbauprojekt UV-Sensor.

  • Gut verpackt

    Für das Ansteuern kleiner Displays gibt es keine Programme von der Stange. Mit Python und einer Pygame-Bibliothek erstellen Sie trotzdem im Handumdrehen Anwendungen.

  • Macro-Mini-Micro-Bit

    Was dem Raspberry Pi für die Computerwelt gelungen ist, versucht der BBC Micro:bit für Mikrocontroller zu wiederholen. Das für Schüler entwickelte Kit hilft beim Einstieg in die hardwarenahe Programmierung.

  • Vorhang auf

    Mit dem modernen Video-Codec HEVC (H.265) erstellte Filme spielen bisherige RasPi-Modelle oft nur ruckelnd ab. Wir testen, ob der neue Raspberry Pi 4B das besser kann.

  • Überraschung!

    Eine optimierte Architektur und mehr RAM beschleunigen den RasPi 4B deutlich. Wir prüfen, wie gut sich der Neuling als Desktop-Rechner schlägt.

  • Durchgestartet

    Ein Stresstest zeigt, wie sich der neue Raspberry Pi 4 Modell B gegenüber den älteren Modellen abhebt.

  • Vierte Generation

    Eine schnellere CPU, USB 3.0 und Gigabit-Ethernet sind nur die Highlights des Raspberry Pi 4B: Das Board bringt viele weitere Neuerungen mit.

  • Tiefenmesser

    Um die Pumpe in einem Brunnenschacht möglichst genau zu positionieren, brauchen Sie dessen Tiefe. Die ermitteln Sie mithilfe eines präzisen Messgeräts aus einem Luftdrucksensor und einem Mikrocontroller.

  • Faktencheck

    Das via DVB-T2 ausgestrahlte Digital-TV liefert Bilder in HD-Qualität. Der dabei eingesetzte H.265-Standard überfordert allerdings kleine Mini-Rechner wie den Raspberry Pi – oder geht es doch?

  • Zugriff von außen

    React Native erlaubt es, Apps mit wenigen Zeilen Code zu programmieren. Mit einem entsprechenden Server sprechen Sie so den RasPi vom Smartphone aus an.