» » X1 – 02.2 Erste Schritte

X1 – 02.2 Erste Schritte

eingetragen in: X1 | 0

 

Die ersten Schritte

In dieser Lektion wirst du dem Roboter die ersten Schritte beibringen. Du wirst hier auf ein Problem treffen, dass ganz typisch für das Programmieren ist. Es kommt in dieser Lektion kein neuer Code vor, jedoch wirst du das bis jetzt gelernte vertiefen und lernen wie du aus der Servo Bewegung eine Laufbewegung erschaffst.

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);
}

 
 
 

Step 1

In der vorherigen Lektion hast du die Servos zentriert. Hier möchtest du erreichen, dass die Servos sich hin und her bewegen. Wenn du den X1 verwendest, sind die hier genutzten Zahlen ideal für die Laufbewegung. Wenn du ein eigenes Gehäuse designt hast oder andere Schrittgrößen für deinen Roboter wünschst, dann probiere es einfach aus.

 

 

 

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

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

  ...
  delay(300);
}

 

 

 

 
 
 

Step 2

Du bewegst also den mittleren Servo so, dass der Roboter sich nach links neigt. Hier musst du vorsichtig sein. Wenn der Servo sich zu weit bewegt, könnte sich das Gehäuse selbst im weg stehen. Daher empfehlen wir nach und nach den Maximalwert durch probieren herauszufinden.

 

 

 

void loop() {

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

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

 

 

 

 
 
 

Step 3

Die Bein müssen sich dann so bewegen dass der Roboter sich nach vorne drückt. Wenn du die Zahlen verdrehst, wird er rückwerts laufen. Probiere auch hier, welche Schrittgröße dir zusagt oder wie viele in einer gewissen Zeit ausgeführt werden können. Entweder schnelle kleine Schritte oder etwas langsamere große Schritte.

 

 

 

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

 

 

 

 
 
 

Step 4

Wenn du den richtigen Abstand zur Mitte gefunden hast, musst du ein delay einfügen bevor die Servos sich in die entgegen gesetzte Richtung bewegen sollen. Wähle anfangs einen größeren Wert für das delay, damit du die Laufbewegung besser analysieren kannst. Wenn dein X1 sich nach vorne bewegt kannst du final noch ein wenig mit den Zahlen spielen um deine perfekte Laufbewegung zu generieren.

 

Fazit

In diesem Kapitel sieht man wie einfach der Code eigentlich ist. Jedoch die richtigen Werte zu finden, benötigt ein wenig mehr Zeit. Vorallem das delay muss richtig gewählt werden damit die Servos genug Zeit haben einen Schritt sauber auszuführen. Außerdem siehst du, dass der Code nicht immer kompliziert sein muss um etwas interessantes zu programmieren.

Jetzt kommen wir schon mit großen Schritten voran.
 
 
 

Bitte hinterlasse eine Antwort