1 – Hintergrundwissen zum Standardservo
Bevor es richtig losgehen kann, informiere dich VORHER über den Standardservo sowie die Pulsweitenmodulation (PWM) über die folgenden Links:
- Propeller Controller – Abschnitt 4: Ramping
(optional)
- Arduino UNO – Servo – Abschnitt 1 und 3
2 - Die class gpiozero.Servo
Um einen Servo über Python ansteuern zu können, greifen wir auf die gpiozero.Servo-Bibliothek
zurück.
- Class gpiozero.Servo(pin, initial_value=0, min_pulse_width=1/1000,
max_pulse_width=2/1000, frame_width=20/1000)
Diese Klasse unterstützt mit ihren Funktionen einen pwm-softwaregesteuerten Servomotor, der mit einem GPIO pin verbunden ist.
Die Bedeutung der Parameter im Einzelnen:
- pin (int oder str) – angegeben werden muss der GPIO Pin.
- inital_value (float) – Voreinstellung: 0; bewegt das Steuerhorn in Mittelposition; alle Werte
zwischen -1 und +1 können als Startposition des Steuerhorns gewählt werden. None startet den Servo ohne Startposition.
- min_pulse_width(float) – Voreinstellung: 1 ms; die Pulsweite entspricht der Minimalposition
des Steuerhorns und muss ggf. geändert werden.
- max_pulse_width(float) – Voreinstellung: 2 ms; die Pulsweite entspricht der Maximalposition
des Steuerhorns und muss ggf. geändert werden.
- frame_width(float) – Voreinstellung: 20 ms; Impulslänge zur Servoansteuerung.
Weitere Funktionen sind:
- detach()
Die Steuerung des Servos wird abgeschaltet.
- max(), mid(), min()
steuert den Servo in seine maximale (180°), mittlere (90°) bzw. minimale (0°) Position.
- frame_width
Gibt die Zeit (in s) an, zwischen zwei Steuerimpulsen.
- max_pulse_width
Die Weite des Steuerimpulses (in s) bzgl. der maximalen Position des Steuerhorns.
- min_pulse_width
Die Weite des Steuerimpulses (in s) bzgl. der minimalen Position des Steuerhorns.
- value
bestimmt die Position des Steuerhorns; es ist ein Zahlenwert zwischen -1 (Minimalposition, 0°) und +1 (Maximalposition, 180°). Der Sonderwert None zeigt an,
dass der Servo in dem Moment nicht angesteuert wird; das Steuerhorn verharrt in seiner momentanen Position, kann aber von Hand gedreht werden.
Was für Servos werden angeboten?
Didaktisch methodische Einordnung
In dieser Lektion lernst du
- mit
einem RasPi und Grove Base HAT umzugehen.
- was
ein Servo ist, wie er aufgebaut ist und beschaltet wird.
- einen einfachen Schaltplan zu lesen.
- eine Schaltung mit einem Taster und einem Servo nach Schaltplan aufzubauen und nach eigenen Vorgaben zu programmieren.
- Programmierfehler in der Sprache Python zu erkennen und zu beheben.
Übung 1 – Einen Servo ansteuern (MO)
In dieser Übung machen wir uns zuerst einmal mit den Funktionen, über die ein Servo gesteuert werden kann, vertraut. Dazu wird er an das Grove Base HAT
angeschlossen; über den Aufruf verschiedener Funktionen aus der Bibliothek Servo schauen wir uns die Wirkung an.
Wie arbeitet das Programm Sensor1.py?
- Programmzeilen 6 – 13
Die Servo-Funktionen sind bereits oben detailliert besprochen worden.
- Programmzeilen 14 – 17
In der Zählschleife wird das Steuerkreuz des Servo – beginnend bei der Position 0° - in 0.2 Schritten bis zur Position 180° gedreht.
Übung 2 – Einen Servo über Taster ansteuern (MO)
Mit Hilfe von zwei Taster, T1 und T2, müsste es doch eigentlich gelingen, einen Servo so zu steuern, dass er nach links dreht, wenn T1 und nach rechts, wenn T2
gedrückt wird. Wie das gelingen kann, werden wir in der folgenden Übung zeigen.