Unterrichts- und Lernmaterial für Mikrocontroller
Unterrichts- und Lernmaterial fürMikrocontroller

Raspberry Pi und Grove Base HAT

Der Analog-Standardservo

1 – Hintergrundwissen zum Standardservo

Bevor es richtig losgehen kann, informiere dich VORHER über den Standardservo sowie die Pulsweitenmodulation (PWM) über die folgenden Links:

  1. Propeller Controller – Abschnitt 4: Ramping (optional)
  2. 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?

Analoger Standardservo

Die kostengünstigsten Servos in der Einstiegsklasse.

Analoger Servo

Kugelgelagert

Hohe Stellgenauigkeit, maximale Kraftübertragung, höhere Lebensdauer

 

Kugelgelagert mit Metallgetriebe

Vertragen hohe mechanische Belastungen, bei maximaler Kraftübertragung

Digitaler Servo

Sehr hohe Stellgenauigkeit durch AD-Wandler, höheres Drehmoment, höhere Stellgeschwindigkeit – aber – höherer Leistungsverbrauch. Signalfrequenz liegt bei 2,5 kHz (400 µs), gegenüber 50 Hz (20 ms) beim analogen Servo.

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.

Übung 1 - Einen Servo ansteuern (MO)

Material

  • 1x  Basisausstattung GROVE
  • 1x  Grove Servo

Aufgaben

  • Verbinde den Grove Servo mit D12 auf dem Grove Base HAT.
  • Überprüfe den Grove Sensor auf Funktionstüchtigkeit.
  • Übertrage das Programm Sensor1.py in den Thonny Editor und speichere es ab.
  • Starte das Programm und beobachte die Reaktion des Servos.
  • Versuche mit eigenen Worten zu beschreiben, was jede Programmzeile in Sensor1.py bewirkt.

Das Programm Sensor1.py

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.

Übung 2 - Einen Servo über Taster ansteuern (MO)

Material

  • 1x  Basisausstattung GROVE
  • 1x  Grove Servo
  • 2x  Grove Button mit Kabel

Aufgaben

  • Das Grove Servo wird an D5, ein Taster an D16, ein zweiter an D18  angeschlossen.
  • Übertrage das Programm Sensor2.py in den Thonny Editor und speichere es ab.
  • Starte das Programm und beobachte die Reaktion des Servos.
  • Versuche mit eigenen Worten zu beschreiben, was jede Programmzeile in Sensor2.py bewirkt.

Das Programm Sensor2.py

Druckversion Druckversion | Sitemap
© Reinhard Rahner - Gettorf