Startseite>ESP8266 als Steuereinheit für Servomotoren
Aus Raspberry Pi Geek 04/2016

ESP8266 als Steuereinheit für Servomotoren

© Praphan Jampala, 123RF

Handzahm

Martin Mohr

Mit einem ESP8266 und ein paar Bauteilen zaubern Sie einen einfachen Roboterarm, der trotzdem knifflige Aufgaben bewältigt.

Der ESP8266 ist ein vielseitiger Baustein, mit dem Sie unter anderem Servomotoren ansteuern. Als Beispiel entstand im Rahmen des Workshops aus einigen Platinenresten ein kleiner Roboterarm. Mit etwas Geschick bringen Sie diesen dazu, kleine Aufgaben zu lösen. Das Modell im Beispiel versucht sich an den “Türmen von Hanoi” (siehe Kasten “Bis ans Ende der Welt”).

Bis ans Ende der Welt

Bei den “Türmen von Hanoi” handelt es sich um ein Spiel, das sich ein französischer Mathematiker ausgedacht hat. Es geht darum, einen Turm aus unterschiedlich großen Teilen von einem Ort an einen anderen zu versetzen. Der Turm besteht aus verschieden großen Teilen, und es dürfen nur kleinere Teile auf größeren liegen. Zudem gibt es nur drei Plätze, um Teile abzulegen. Solange der Turm aus wenigen Teilen besteht, gelingt das noch recht einfach. Die Anzahl der zum Umsetzen nötigen Züge steigt mit jedem zusätzlichen Teil nach der Formel 2n-1 exponentiell an. Wie bei fast allen guten Knobeleien gibt es dazu auch eine Geschichte: Sobald indische Mönche es schaffen, einen Turm mit 64 Teilen auf diese Weise zu versetzen, bricht das Ende der Welt an. Dazu wären allerdings knapp 18,5 Trillionen Züge nötig, für die die Mönche bei einer Sekunde pro Zug gut 585 Milliarden Jahre bräuchten.

Vorüberlegungen

Um mit einem Roboterarm halbwegs etwas anzufangen, braucht er mindestens vier Bewegungsgrade: einen in der Basis, um den Roboter zu drehen, und drei im Arm, um verschiedene Positionen im Arbeitsbereich anzufahren. Abbildung 1 zeigt einen sehr einfachen Entwurf für ein solches Modell.

Abbildung 1: Der Plan für den Roboterarm ist auf die wesentlichen Elemente reduziert, verdeutlicht aber sehr gut die Komponenten, die dann die Bewegung ermöglichen.

Abbildung 1: Der Plan für den Roboterarm ist auf die wesentlichen Elemente reduziert, verdeutlicht aber sehr gut die Komponenten, die dann die Bewegung ermöglichen.

In Abbildung 2 sehen Sie den Roboterarm nach dem Zusammensetzen. Als Material kamen im Workshop überwiegend Platinenreste zum Einsatz. Diese sind leicht, sehr stabil und ohne spezielle Werkzeuge gut zu verarbeiten. Der Elektromagnet am Ende des Arms stammt aus einem 5-Volt-Relais, das sich in einer Bastelkiste fand.

Abbildung 2: Der aus Resten zusammengebaute Roboter gewinnt zwar keinen Designpreis, erfüllt aber seine Aufgabe.

Abbildung 2: Der aus Resten zusammengebaute Roboter gewinnt zwar keinen Designpreis, erfüllt aber seine Aufgabe.

Die Basis der Konstruktion besteht aus Sperrholz und zwei übrig gebliebenen Stücken Holz. Bei den Servos handelt es sich um die einzigen zugekauften Teile. Selbst wenn Ihnen zum Nachbau noch der ESP8266 und die anderen Elektronikteile fehlen, erhalten Sie alle Teile im Online-Handel für weniger als 20 Euro. Investieren Sie dann noch ein wenig handwerkliches Geschick und etwas Zeit, steht der fertige Roboterarm bald vor Ihnen.

Servomotoren

Wenn wir hier von Servomotoren reden, meinen wir damit kleine handliche Kästchen aus dem Modellbaubedarf, nicht etwa Industrie-Servos, wie sie in den großen Robotern aus der Automobilindustrie stecken. Bei Modellbau-Servos handelt es sich im Gegensatz zu den Pendants aus den Werkshallen streng genommen gar nicht um Motoren: In der kleinen Kiste stecken neben dem Antrieb viele zusätzliche Komponenten, die den Servo zu dem machen, was er ist: ein elektronisch ansteuerbares Stellglied.

Über ein elektronisches Signal teilen Sie dem Servo mit, welche Winkelposition der Hebel annehmen soll. Damit das funktioniert, befindet sich im Inneren der Servos zum einen ein Positionsgeber, der meldet, wo der Hebel gerade steht. Zum anderen vergleicht eine Elektronik kontinuierlich die Ist- mit der Soll-Position und steuert den Motor so, dass sich die Differenz der beiden verkleinert. Das Ziel: Die Differenz soll letztlich gegen null gehen. Im Inneren des Servos befindet sich ein Getriebe, das die Drehbewegungen des Motors übersetzt.

Mit diesem Wissen im Hinterkopf mögen einem die Servos, die hier zum Einsatz kommen, recht komplex erscheinen. Es gibt viele verschiedene Typen, die alle ihre Berechtigung haben. Zu den wichtigsten Kennwerten von Servos zählen:

  • die maximale Winkeldifferenz, die der Hebel des Servos annimmt,
  • die Kraft, die der Servo aufbringt, und
  • die erzielbare Stellgeschwindigkeit.

Dass ein Servo mit echten Kugellagern und einem Getriebe aus Metall länger hält als ein Exemplar aus Plastik mit Gleitlagern, dürfte sich von selbst verstehen. Aus solchen Unterschieden resultieren deutliche Preisdifferenzen zwischen den einzelnen Typen. Um auszuprobieren, wie Sie einen Servo mit dem ESP8266 ansteuern, wählen Sie am besten zuerst eine preiswerte Variante [1].

Sie sollten nicht nur den Aufbau und die Eigenschaften von Servos im Blick behalten, sondern auch noch einen Blick auf das Steuersignal werfen. Zur Ansteuerung von Servos kommen sogenannte PWM-Signale zum Einsatz. PWM steht für Pulsweitenmodulation und bedeutet, dass das Signal immer die gleiche Frequenz aufweist und nur das Verhältnis zwischen Puls (Betriebsspannung) und Pause (Masse) des Signals variiert.

Das komplette Signal hat eine Länge von etwa 20 Millisekunden; viele Servos kommen auch mit einer auf 10 Millisekunden reduzierten Signallänge zurecht. Der Puls dauert 1 bis 2 Millisekunden. Die Winkelposition des Servos hängt von der Pulslänge des Signals ab. Abbildung 3 verdeutlicht die Funktionsweise (siehe auch Kasten “Warnhinweis”).

Abbildung 3: Um einen Servo anzusteuern, brauchen Sie ein PWM-Steuersignal.

Abbildung 3: Um einen Servo anzusteuern, brauchen Sie ein PWM-Steuersignal.

Warnhinweis

Die Hebel des Arms bewegen sich beim Initialisieren der Servos automatisch in die Null-Grad-Position. Dabei besteht durchaus die Möglichkeit, dass der Arm die Arbeitsfläche abräumt. Achten Sie deshalb darauf, alles Zerbrechliche aus der Reichweite des Arms zu entfernen. Falls Sie den Arm etwas größer konstruiert haben, dürfen sich keinesfalls Personen oder Haustiere in Reichweite befinden.

Schaltplan

Im Zentrum unseres Schaltplans (Abbildung 4) befindet sich, wie nicht anders zu erwarten, der ESP8266. Die Spannungsversorgung mit 3,3 Volt, das Modul zum Übersetzen der Daten von USB zur seriellen Leitung sowie die Beschaltung für den Betriebsmodus (Flash oder Run) kennen Sie vielleicht schon aus dem letzten Teil dieser Reihe [2].

Abbildung 4: Der Schaltplan zum Roboterarm.

Abbildung 4: Der Schaltplan zum Roboterarm.

Neu hinzugekommen ist die Ansteuerung der Servos über den Optokoppler. Die Optokoppler sorgen für eine galvanische Trennung der Signalleitungen. Bei R5 bis R9 handelt es sich um Vorwiderstände für die LEDs im Optokoppler. Die Widerstände R10 bis R13 erzeugen einen definierten Signalpegel an den Servos, wenn Ausgangstransistoren der Optokoppler sperren. Der Aufwand mit der galvanischen Trennung lohnt sich, um den ESP8266 vor Störungen durch die Servos zu schützen.

Der Kondensator C1 dient dazu, die Betriebsspannung des ESP8266 konstant zu halten, selbst wenn die Servos arbeiten. Mit dem Transistor T1 schalten Sie den Magneten ein und aus. Die Diode D1 sieht auf den ersten Blick so aus, als hätte sie keine Funktion: Sie sperrt ja in Richtung der Betriebsspannung, leitet also dadurch nie. Diese Annahme stimmt im Prinzip, aber sobald Spulen ins Spiel kommen, sieht die Sache anders aus (siehe Kasten “Spule unter Spannung”).

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 6 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
€0,99 – Kaufen
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS
Deutschland