Inhaltsverzeichnis

7.1. Servomotor SG90 in OpenRoberta

„Zeit, dass sich was dreht!“

In Lektion 7 schauen wir uns gemeinsam den SG90 Servomotor an. Das schöne an Servomotoren ist, dass Sie im Vergleich zu anderen Elektromotoren winkelgenau angesteuert werden können. 

Die Aufgabe für Lektion 7 lautet daher: Steuere einen Servomotor abwechselnd und mit einer kurzen Pause von jeweils 0,5 Sekunden, in der Winkelposition 0°, 90°, 180° und 270° an.

7.1.1. Konfiguration in OpenRoberta

Schritt 1:

Wir starten mit der ROBOTERKONFIGURATION. Den Block für den SG90 Servomotor findest du in dem Menü „Aktion„. 

Abbildung Schritt 1

Schritt 2:

Wähle den Block aus und ziehe ihn mit der linken Maustaste in deine ROBOTERKONFIGURATION.

Abbildung Schritt 2

Schritt 3:

Anschließend vergeben wir für unseren SG90 Servomotor einen Namen
Welcher Name wäre hier passender als… Servo?

Abbildung Schritt 3

Schritt 4:

Nach diesem einfachen ersten Arbeitsschritt, stellen wir jetzt die Verbindung zwischen Servomotor und Mikrocontroller her.

Schaue hierfür auf deinen Funduino Cube und lies ab, an welchem digitalen Pin der SG90 Servomotor mit dem Mikrocontroller verbunden ist.

Abbildung Schritt 4

Schritt 5:

Großartig!

Der Servomotor ist an Pin D3 mit dem Mikrocontroller verbunden.

Nach dieser einfachen ROBOTERKONFIGURATION, die bei dir jetzt wie in Abbildung Schritt 5 aussehen sollte, können wir uns jetzt dem PROGRAMM zuwenden.

Abbildung Schritt 5

7.1.2. Beispielprogramm in OpenRoberta

Schritt 1:

Zuerst navigieren wir im oberen Menü in den Menüpunkt „PROGRAMM„.

 

Abbildung Schritt 1

Schritt 2:

Anschließend rufen wir die erweiterten Menüeinstellungen auf, indem wir auf „☆2″ klicken. 

In dieser erweiterten Menüansicht finden wir neben den Blöcken, die wir aus den früheren Lektionen schon kennen, weitere, neue Bausteine

Abbildung Schritt 2

Schritt 3:

Den Baustein für den SG90 Servomotor finden wir in dem Untermenü „Bewegen.

Wir klicken also mit der linken Maustaste auf „Bewegen„. Es öffnet sich ein neues Untermenü.

Abbildung Schritt 3

Schritt 4:

In diesem Untermenü befindet sich der Block für den SG90 an erster Stelle (siehe Abbildung Schritt 4).

Wähle den Baustein aus und ziehe ihn mit der linken Maustaste in das PROGRAMM.

Abbildung Schritt 4

Schritt 5:

Toll gemacht!

Dein PROGRAMM sollte jetzt so aussehen, wie du es in Abbildung Schritt 5 sehen kannst. 

Abbildung Schritt 5

Schritt 6:

Jetzt ist ein guter Zeitpunkt, um uns an die Aufgabenstellung zu erinnern.

Wir sollen den Servo abwechselnd, mit einer Pause von jeweils 0,5 Sekunden,  in die Winkelposition 0°, 90°, 180° und 270° bewegen. 

Wir starten also zunächst mit der Winkelposition 0°. Diese tragen wir in das Feld mit dunkelblauem Hintergrund ein.

Abbildung Schritt 6

Schritt 7:

Dein Programm sieht jetzt aus wie in Abbildung Schritt 5.

Der erste Aufgabenteil ist damit erfolgreich abgeschlossen.

Abbildung Schritt 7

Schritt 8:

Jetzt müssen wir unser PROGRAMM noch um eine Pause ergänzen.

Die Aufgabenstellung sieht vor, dass der SG90 Servomotor nach jeder Winkeländerung für 0,5 Sekunden pausiert.

Den dafür benötigten Block kennst du schon.
Weißt du noch, wo du ihn findest?

Abbildung Schritt 8

Schritt 9:

Gar nicht so einfach: wir müssen zuerst in die einfache Ansicht (▢1) navigieren.

Danach klicken wir mit der linken Maustaste auf „Kontrolle“ und wählen den Block „Warte ms“ aus, welchen wir dann in unser PROGRAMM ziehen.

Abbildung Schritt 9

Schritt 10:

In Abbildung Schritt 10 kannst du jetzt sehen, wie dein Programm aussehen müsste.

Aber Moment: Haben wir die richtige Pausenlänge schon eingestellt?

Wir erinnern uns:
1 Sekunde entspricht 1000ms.
0,5 Sekunden entsprechen…

500ms!

Glück gehabt, wir müssen keine Änderung vornehmen.  

Abbildung Schritt 10

Schritt 11:

Im letzten Schritt wiederholen wir die vorherigen Arbeitsschritte noch für die anderen Winkelpositionen 90°, 180° und 270°

Nicht vergessen: Nach jeder Positionsänderung folgt eine Pause von 500ms (0,5 Sekunden).

Wenn dein PROGRAMM jetzt so aussieht, wie du es der Abbildung Schritt 11 entnehmen kannst, hast du alles richtig gemacht.

Gratulation! Das war gar nicht so schwer, oder?

Abbildung Schritt 11

7.1.3. Programmcode in der Arduino Synthax

				
					#include <Servo/src/Servo.h> // Einbindung der Servo.h Bibliothek

Servo servo_Servo; // Einbindung des Servos, Programmschnipsel aus der Servo.h Bibliothek

void setup()
{
    servo_Servo.attach(3); // Der Servo liegt an Pin 3 (D3) an
}

void loop()
{
    servo_Servo.write(0); // Bewege den Servo in Winkelposition 0°
    delay(500); // Pausiere für 500ms (0,5 Sekunden)
    
    servo_Servo.write(90); // Bewege den Servo in Winkelposition 90°
    delay(500); // Pausiere für 500ms (0,5 Sekunden)
    
    servo_Servo.write(180); // Bewege den Servo in Winkelposition 180°
    delay(500); // Pausiere für 500ms (0,5 Sekunden)
    
    servo_Servo.write(270); // Bewege den Servo in Winkelposition 270°
    delay(500); // Pausiere für 500ms (0,5 Sekunden)
}