Du betrachtest gerade MoBa #6: Die Geschichte vom springenden Pferd (Teil 1)

MoBa #6: Die Geschichte vom springenden Pferd (Teil 1)

Die Modelle – Ausgangslage

Da ich selbst hin und wieder mit Pferden zu tun habe, war für mich schnell klar, dass ich gern einen Reit- bzw. Turnierplatz auf meiner Anlage haben möchte. Als Modell habe ich mich für den Reitturnier-Platz von Faller (130543) entschieden, den ich günstig bei eBay bekommen habe.

© Härtle Spiel + Freizeit

Außerdem war natürlich schnell klar: Es muss auch Pferde und Reiter geben! Diese sind relativ einfach beim Platzhirsch NOCH zu bekommen. Ich habe mich dabei für die Sets 15630 und 15762 (für die Weide) entschieden.

Die Bewegung – Der Arduino kommt ins Spiel

Dann stellte sich natürlich irgendwann die Frage: Kann man ein springendes Pferd auch in Bewegung darstellen? Ich habe darüber nachgedacht, wie sich dieses Problem lösen ließe, und kam – mal wieder – auf den Arduino zurück. Die Idee: Ein Servo, der zwischen einem Winkel von ca. 25° hin und her schaltet, bewegt eine Stange, an der das Pferd befestigt ist. Dadurch könnte die Bewegung eines springenden Pferdes simuliert werden.

nach weniger als 5 Minuten hatte ich diesen ersten Prototyp zusammengefrickelt…

Im Folgenden zeige ich den Schaltplan. Da ich nur noch einen großen Servo übrig hatte, der eigentlich für RC-Flugzeugmodelle gedacht ist, musste ich eine externe Stromversorgung nutzen, da der Arduino nicht genug Strom liefern kann. Wichtig dabei: Die Masse der externen Stromquelle muss mit der Masse des Arduinos verbunden werden! Andernfalls kommt es zu unkontrollierten Zuckungen des Servos.

Der Grund dafür liegt in der Ansteuerung über PWM (Pulsweitenmodulation). PWM ist eine Technik, bei der ein digitales Signal schnell zwischen ein (HIGH) und aus (LOW) wechselt. Dabei bestimmt das Verhältnis von ein zu aus (die sogenannte Duty Cycle), wie weit sich der Servo bewegt. Der Arduino sendet dieses PWM-Signal mit einer festen Frequenz, aber der Servo benötigt eine gemeinsame Masse, um das Signal korrekt zu interpretieren. Wenn die Masse der externen Stromquelle nicht mit der Masse des Arduinos verbunden ist, fehlt dieser gemeinsame Bezugspunkt. Dadurch entstehen Spannungsschwankungen, die den Servo unkontrolliert zucken lassen. Die Lösung ist einfach: GND der externen Stromquelle mit GND des Arduinos verbinden, damit das PWM-Signal sauber ankommt und der Servo präzise gesteuert werden kann.

Das große Problem…

Ein großes Problem bei meinem Vorhaben ist, dass das Pferdemodell nicht in einer realistischen Sprunghaltungdargestellt ist. Dadurch wirkt die Bewegung trotz der Servo-Steuerung nicht wirklich glaubwürdig. Besonders in der Flugphase, also dem eigentlichen Überwinden des Hindernisses, nimmt ein Pferd eine charakteristische Haltung ein, die sich deutlich von einer normalen Stand- oder Galoppposition unterscheidet.

Während dieser Phase sind die Vorderbeine zunächst gestreckt, bevor sie sich in der sogenannten Bascule eng unter die Brust ziehen. Der Rücken wölbt sich, um die Balance zu optimieren, und der Hals wird vorgestreckt, damit das Pferd mit seinem Kopf die Sprungbewegung ausbalancieren kann. Gleichzeitig schwingen die Hinterbeine weit nach hinten aus, um die gesamte Sprungweite zu maximieren, bevor sie sich für die Landung wieder unter den Körper ziehen. Diese koordinierte Bewegung ist essenziell für einen harmonischen, kraftvollen Sprung und ermöglicht einen sauberen Nachsprung, also den fließenden Übergang zurück in den Galopp.

Typische Sprunghaltung

Da das Modellpferd jedoch in einer statischen Haltung gefertigt ist, fehlt diese Dynamik völlig. Ein Pferd im Sprung gibt es in diesem Maßstab leider nicht zu kaufen, sodass ich mir überlegen muss, wie ich die typische Springmanier nachbilden kann. Meine Idee ist, das Modell vorsichtig zu erwärmen, um die Beine und den Rumpf in eine passendere Haltung zu bringen.

Der Code

Pferd.ino
#include <Servo.h>  //Die Servobibliothek wird eingebunden
Servo servopferd;   //Der Servo bekommt einen Namen

void setup() {
  servopferd.attach(9);   //Servo wird mit Pin 9 verbunden
}

void loop() {
  servopferd.write(75);   //Position 1 ansteuern mit dem Winkel 75°
  delay(3000);            //Das Programm stoppt für 3 Sekunden
  servopferd.write(100);  //Position 2 ansteuern mit dem Winkel 100°
  delay(3000);            //Das Programm stoppt für 3 Sekunde
}

Den fertigen Reitplatz werde ich dann bald zeigen – sobald ich die Zeit finde, ihn fertigzustellen… Fortsetzung folgt.

Danke fürs Lesen!

Keine Werbung, die genannten Produkte wurden alle selbst bezahlt!

Schreibe einen Kommentar