Aus Raspberry Pi Geek 12/2021

Halloween-Dekoration mit technischem Gruseleffekt

© Inok, Fotolia

Gruseln trotz Corona

Martin Mohr

Auch in diesem Jahr fällt Halloween pandemiebedingt wohl wieder ins Wasser. Das soll uns aber nicht davon abhalten, einen animierten Totenkopf als Fensterdekoration zu bauen.

Um trotz Corona etwas Grusel-Feeling aufkommen zu lassen, bauen wir einen animierten Totenkopf. Und damit wir nicht immer anonym von einem Schädel sprechen müssen, taufen wir unseren knochigen Freund einfach auf den Namen Paul. Paul soll aus dem Fenster schauen und mögliche Halloween-Fans erfreuen. Dazu braucht er selbstredend Augen, die sich in alle Richtungen bewegen (Abbildung 1).

Abbildung 1: Paul in der Porträtansicht.

Abbildung 1: Paul in der Porträtansicht.

Weil Halloween wohl wieder ausfällt, muss Paul zudem den Kopf schütteln können. Außerdem wäre es schön, wenn er sprechen könnte. Das geht naturgemäß nur, wenn er auch den Kiefer bewegt. All diese Funktionen steuern wir mit sechs Servomotoren aus dem Modellbau an, die zur Ansteuerung ein spezielles PWM-Signal benötigen. Nähere Informationen zu den Servos und dem Steuersignal finden Sie im Kasten “Servomotor-Grundlagen”.

Servomotor-Grundlagen

Servomotoren für den Modellbau steuert in der Regel ein PWM-Signal an. Das Kürzel steht für Pulsweitenmodulation, die mit einer festen Grundfrequenz arbeitet und das Verhältnis zwischen Ein- und Ausschaltzeit variiert. Das erlaubt es zum Beispiel, die Leistung an einem Verbraucher exakt zu steuern.

Die Grundfrequenz des PWM-Signals liegt bei 50 Hertz, eine Periode dauert entsprechend 20 Millisekunden. Das Signal für den Servo hat eine Einschaltzeit von ein bis zwei Millisekunden. Dabei dient die erste Millisekunde als eine Art Synchronisationsimpuls, die darauffolgende Impulslänge steuert den Winkel des Servomotorhebels.

Signale mit weniger als einer Millisekunde Einschaltzeit erkennt der Motor nicht. Dauert die Einschaltzeit länger als zwei Millisekunden, verharrt der Servo in der maximalen Endposition, so zumindest die Theorie. Das Verhalten realer Servos weicht aber nicht selten um einiges vom definierten Timing ab. Programme, die Servos steuern, müssen daher immer eine Möglichkeit zur Justierung schaffen. Auch der im Artikel angesteuerte Aufbau fällt nicht zu 100 Prozent genau aus.

Es gibt viele unterschiedliche Wege, passende PWM-Signale zu erzeugen. Wir verwenden in diesem Artikel ein PCA9685-Modul [1], das es für weniger als 6 Euro bei AZ-Delivery gibt. Von dort stammen auch die nötigen Servomotoren, fünf kleine [2] und ein großer [3]. Pauls Kopf mitsamt einem kompletten Skelett [4] stammt von Amazon, ebenso seine Augen [5]. Damit die sich in alle Richtungen bewegen, befestigen wir sie mit Kardangelenken [6].

Damit haben wir erst mal die wichtigsten Bauteile des Projekts beisammen. Darüber hinaus fallen noch eine Menge Kleinigkeiten an, die es zu verbauen gilt. Die meisten davon hat aber fast jeder Bastler bereits in der Grabbelkiste. So weit der Plan. Schauen wir uns nun an, wie wir die vielen Einzelteile zu einem Ganzen zusammenbekommen.

Aufbau

Abbildung 2 zeigt den Aufbau der Mechanik zum Bewegen der Augen. Als Basisplatte dient eine Konstruktion aus dem 3D-Drucker, die genau in Pauls Kopf passt. Die OpenSCAD-Datei und das STL dazu finden Sie im Download-Bereich zu diesem Artikel. Falls Sie einen anderen Schädel verwenden möchten, passen Sie diese Dateien entsprechend an.

Abbildung 2: Der Aufbau der Augenmechanik, die später in Pauls Kopf wandert.

Abbildung 2: Der Aufbau der Augenmechanik, die später in Pauls Kopf wandert.

Die Augen befestigen wir mit 10 Millimeter langen Metallachsen mit einem Durchmesser von etwa 3 Millimetern, die wir mit den Kardangelenken an der Basisplatte verbinden. Bei unserem Aufbau beträgt die Länge der Gestänge zum Ansteuern der Augen etwa 97 Millimeter, die Maße variieren aber je nach Aufbau leicht. Nach einer Funktionsprüfung aller Servos verkleben wir die Basisplatte mit Silikon im Kopf. Das hält recht gut, dämpft die Vibrationen ein wenig und lässt sich zur Not auch wieder lösen.

Abbildung 3 zeigt den Schaltplan von Paul. Das Modul PCA9685 steuern wir über die I2C-Schnittstelle des Raspberry Pi. Hier gilt es, den Eingang OE des Moduls auf Masse zu ziehen, da sonst die Ausgänge des PCA9685 nicht aktiviert werden.

Abbildung 3: Dieser Schaltplan veranschaulicht die Technik von Pauls Innenleben.

Abbildung 3: Dieser Schaltplan veranschaulicht die Technik von Pauls Innenleben.

Zur Spannungsversorgung verwenden wir vier AA-Akkus. Sie können aber auch andere Spannungsquellen verwenden, die etwa 6 Volt liefern und den nötigen Strom für die Servos bereitstellen. Selbst ein kleiner Servomotor zieht beim Anfahren einige Hundert Milliampere. Verwenden Sie keinesfalls die 5-Volt-Leitung des RasPi zur Spannungsversorgung: Das führt unter Umständen zur Überlastung des Netzteils und zum Absturz des Mini-Rechners. Die Leitungen VCC und V+ dürfen Sie auf keinen Fall verbinden – das würde der RasPi nicht überleben.

Auf dem RasPi verwenden wir als Betriebssystem das aktuelle Raspberry Pi OS Lite. Um es auf eine SD-Karte zu schreiben, verwenden wir den Raspberry Pi Imager, der auf der Webseite des Projekts zum Herunterladen bereitsteht [7].

Vorbereitung

In unserem Beispielprojekt erweckt ein RasPi der dritten Generation Paul zum Leben. Verwenden Sie stattdessen einen RasPi 4, müssen Sie die Wiring-Pi-Bibliothek in Version 2.52 manuell nachinstallieren. Um das PCA9685-Modul über die I2C-Schnittstelle anzusteuern, richten Sie auf dem RasPi noch einige Kleinigkeiten ein.

Als Erstes aktivieren Sie die I2C-Schnittstelle mit dem Tool Raspi-config. Geben Sie dazu auf der Kommandozeile den Befehl sudo raspi-config ein und wählen Sie unter 3 Interface Options | P 5 I2C die Option Yes aus. Anschließend beenden Sie das Tool wieder. Als Nächstes müssen Sie einige Programme installieren, die notwendigen Kommandos zeigt Listing 1.

Listing 1

Tools installieren

$ sudo apt update
$ sudo apt upgrade
$ sudo apt install i2c-tools wiringpi
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 6 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben