» » X1 – 02.2 Erste Schritte

X1 – 02.2 Erste Schritte

eingetragen in: X1 | 0

 

Die ersten Schritte

In dieser Lektion werden wir dem Roboter die ersten Schritte beibringen. Wir werden hier auf ein Problem treffen dass ganz typisch für die Programmierung ist. Es kommt in dieser Lektion keine neue Zeile Code vor, jedoch werden wir das bis jetzt gelernte vertiefen und lernen wie wir aus der Servo Bewegung eine Laufbewegung erschaffen.

Viceo-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 haben wir die Servos zentriert. Hier möchten wir nun dass die Servos sich um die Mitte, 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, kleinere oder größere Schritte für deinen Roboter wünschst, dann probiere dich einfach aus.

 

 

 

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

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

  ...
  delay(300);
}

 

 

 

 
 
 

Step 2

Wir bewegen also den mittleren Servo so, dass der Roboter sich nach links neigt. Hier müssen wir vorsichtig sein. Wenn der Servo sich zu weit bewegt könnte das Gehäuse sich 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

Das linke und rechte Bein müssen sich dann so bewegen dass der Roboter sich nach vorne drückt. Wenn du die zahlen verdrehst sollte 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 genaue entgegen gesetzte Richtung bewegen sollen. Wähle anfangs einen größeren Wert für das delay, da du so auch die Laufbewegung besser analysieren kannst. Wenn dein X1 sich nach vorne Bewegt kannst du jetzt final noch ein wenig mit den Zahlen spielen um deine perfekte Laufbewegung zu generieren.

 

Fazit

Speziell in diesem Kapitel sieht man wie einfach der Code eigentlich ist. Jedoch, die richtigen Werte zu finden, benötigt ein wenig mehr Zeit. Vor allem das delay muss richtig gewählt werden damit die Servos genug Zeit haben einen Schritt sauber auszuführen. Außerdem sehen wir dass das 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