» » X1 – 02.2 Erste Schritte

X1 – 02.2 Erste Schritte

eingetragen in: X1-lernkurs | 0

 

Die ersten Schritte

In dieser Lektion werden wir dem X1 beibringen seine ersten Schritte zu laufen. Für den Code dieser Lektion werden keine neuen Befehle benötigt. Dir wird auffallen, dass diese Lektion auf deinem erlernten Wissen aufbaut. Wir werden zusammen lernen die Bewegung der Servo in eine Laufbewegung zu verwandeln und dabei dein vorhandenes Wissen vertiefen.

In der vorherigen Lektion wurden die Servo zentriert. Das in dieser Lektion geschriebene Programm sorgt dafür, dass die Servo sich in einem Rhythmus bewegen. Wenn du den X1 verwendest, führen die hier genutzten Zahlen zu einer idealen Laufbewegung. Wenn du willst, dass dein X1 anders läuft oder du ein eigenes Gehäuse designed hast, experimentier einfach ein wenig mit den Zahlen.

Video-Beispiel:

 

Code-Beispiel:

#include <Servo.h>

#define servoLPin 9
#define servoMPin 10
#define servoRPin 11

Servo linkerServo;
Servo mittelServo;
Servo rechterServo;

void setup() {
linkerServo.attach(servoLPin);
rechterServo.attach(servoRPin);
mittelServo.attach(servoMPin);
}

void loop() {
mittelServo.write(70); //Nach Links kippen
linkerServo.write(25); //linkes Bein Vor
rechterServo.write(25); //rechtes Bein Zurück
delay(300); //Warte 300ms (Servos brauchen Zeit)
mittelServo.write(50); //Nach rechts Kippen
linkerServo.write(120); //linkes Bein Zurück
rechterServo.write(120); //rechtes Bein Vor
delay(300);
}

 
 
 

Schritt 1

Die Laufbewegung fängt beim mittleren Servo an, dieser wird so bewegt, dass der X1 sich nach links neigt. Aufpassen solltest du hier beim eingegebenen Maximalwert. Wenn der Servo sich zu weit bewegt steht sich das Gehäuse selbst im Weg. Daher empfehlen wir nach und nach den Maximalwert durch probieren herauszufinden.

 

 

 

void loop() {
mittelServo.write(70);

...
  delay(300);
mittelServo.write(50);

...
  delay(300);
}

 

 

 

 

Schritt 2

Für den Schritt müssen die beine sich so bewegen, dass der X1 sich nach vorne drückt. Verdrehst du die Zahlen läuft er rückwärts. Auch hier kannst du experimentieren welche Schrittweite dir zusagt.

Ob er schnelle kleine Schritte oder langsame große Schritte macht, entscheidest du!

 

 

 

void loop() {

...
linkerServo.write(25);
rechterServo.write(25);
  delay(300);

...
linkerServo.write(120);
rechterServo.write(120);
  delay(300);
}

 

 

 

 

Schritt 3

Damit die Servo genug zeit haben sich zu bewegen bevor der nächste Befehl kommt bauen wir noch einen delay ein. Zu Anfang lohnt es sich einen höheren Wert zu wählen damit du die Laufbewegung besser analysieren und nach und nach deine individuelle Laufbewegung erzeugen kannst. 

 

 

 

void loop() {
  ...
  delay(300);
  ...
  delay(300);
}

 

 

 

 

Fazit

Diese Lektion hat uns gezeigt wie unkompliziert der Code eigentlich ist. Das experimentieren mit den Werten bis man die richtigen gefunden hat, jedoch etwas mehr Zeit in Anspruch nimmt. Du solltest immer beachten, dass der delay richtig gewählt ist und somit die Schritte auch sauber ausgeführt werden können. 

Code muss nicht immer kompliziert sein um interessante Programme zu schreiben!

 

Bitte hinterlasse eine Antwort