Inhaltsverzeichnis

3.1. Bewegungsmelder (PIR) in OpenRoberta

In dieser Aufgabenstellung befassen wir uns mit dem Bewegungsmelder. Wie es der Name schon erklärt, erfasst ein Bewegungsmelder Bewegungen im einem bestimmten Umkreis. Diese erfasste Bewegung gibt der Bewegungsmelder als Signal an den Mikrocontroller weiter. 

Dieses Signal möchten wir mit dem Mikrocontroller auf unserem Funduino Cube auslesen und eine rote LED zum Leuchten bringen. 

Wie immer beginnen wir mit der ROBOTERKONFIGURATION in OpenRoberta.

3.1.1. Konfiguration in OpenRoberta

Schritt 1:

Im ersten Schritt wählen wir innerhalb von OpenRoberta die ROBOTERKONFIGURATION aus. Diese findest du im oberen Menü.

Abbildung Schritt 1

Schritt 2:​

Anschließend navigieren wir in dem Menü auf der linken Bildschirmseite auf den Menüpunkt „Sensoren„. 

In diesem Menüpunkt finden wir den Block für unseren Bewegungsmelder wieder. 

Abbildung Schritt 2

Schritt 3:

Wie du es bereits aus den beiden ersten Lektionen gelernt hast, öffnet sich durch den Klick mit der linken Maustaste auf den Menüpunkt „Sensoren“ ein neues Untermenü.

Kannst du den Block für unseren Bewegungsmelder erkennen?

Abbildung Schritt 3

Schritt 4:

Toll gemacht!

Du findest den Block für den Bewegungsmelder an vierter Stelle.

Wir haben dir den Block auf der nachfolgenden Abbildung rot markiert. 

Du kannst diesen Block, genauso wie alle anderen Blöcke in OpenRoberta auch, mit einem Klick mit der linken Maustaste anwählen und durch drücken der Maustaste in das weiße Feld ziehen.

Abbildung Schritt 4

Schritt 5:

Wenn du alles richtig gemacht hast, sollte deine ROBOTERKONFIGURATION jetzt so aussehen, wie du es in der Abbildung Schritt 5 siehst.

Wir haben den Bewegungsmelder somit erfolgreich zu unserer Roboterkonfiguration hinzugefügt. 

Abbildung Schritt 5

Schritt 6:

Jetzt fehlen noch zwei wichtige Schritte:

Zunächst müssen wir einen Namen für unseren Bewegungsmelder vergeben.

Den Namen kannst du eintragen, indem du auf das Feld, in dem aktuell noch „B“ steht, klickst. 

Damit wir später den Überblick behalten können, tragen wir hier den NamenBewegungsmelder“ ein.

Abbildung Schritt 6

Schritt 7:

Jetzt müssen wir dem Mikrocontroller auf unserem Funduino Cube noch beibringen, an welchem digitalen Pin der Bewegungsmelder mit dem Mikrocontroller verbunden ist.

Schaue doch einmal auf deinen Funduino Cube und versuche herauszufinden, welchen digitalen Pin wir verwenden müssen.

Kennst du die Antwort?

Abbildung Schritt 7

Schritt 8:

Sehr gut!

Der Bewegungsmelder ist an Pin D8 mit dem Mikrocontroller verbunden.

Wir klicken also mit der linken Maustaste auf das Feld neben „output“ und wählen den Pin D8 aus. 

Abbildung Schritt 8

Schritt 9:

Mit der Auswahl des Pins D8 haben wir die Einstellung des Blocks für den Bewegungsmelder erfolgreich abgeschlossen. 

Wir erinnern uns jetzt an unsere Aufgabenstellung zurück:
Wir möchten das Signal des Bewegungsmelders auswerten, indem wir eine rote LED immer dann zum leuchten bringen, wenn der Bewegungsmelder eine Bewegung erfasst. 

Abbildung Schritt 9

Schritt 10:

Deshalb ergänzen wir unsere ROBOTERKONFIGURATION um einen LED Block.

Wie du das machst, hast du in den vorherigen Anleitungen bereits gelernt. Falls du vergessen hast, wie das funktioniert, schaue dir die Lektion 1 noch einmal an.

Tipp: Du findest den Block für die LEDs unter dem Menü „Aktion“ auf der linken Bildschirmseite.

Hurra! Wir haben unsere Roboterkonfiguration abgeschlossen!

Abbildung Schritt 10

3.1.2. Beispielprogramm in OpenRoberta

Schritt 1:

Nachdem wir die ROBOTERKONFIGURATION erfolgreich abgeschlossen haben, können wir uns an das Programm wagen.

Wir klicken hierfür zunächst auf den Menüpunkt „Programm“ am oberen Bildschirmrand. 

Abbildung Schritt 1

Schritt 2:

Jetzt wird es kniffliger: Wir erinnern uns an die Aufgabenstellung zurück.

Teil der Aufgabe war es, eine rote LED immer dann zum Leuchten zu bringen, wenn eine Bewegung erkannt wird. 

In Lektion 2 haben wir gelernt, welchen Block wir für eine „wenn-Bedingung“ benötigen.
Erinnerst du dich? Falls nicht, schaue dir die Inhalte aus Lektion 2 noch einmal genauer an.

Abbildung Schritt 2

Schritt 3:

Sehr schön!

Wir benötigen eine zusätzliche Schleife. Diese Schleife finden wir mit einem Klick auf den Menüpunkt „Kontrolle“ am linken Bildschirmrand.

Damit wir die richtige Schleife auswählen, müssen wir unsere Aufgabenstellung vielleicht noch einmal übersetzen.

Wenn eine Bewegung erkannt wird, schalte die rote LED ein
Sonst soll die rote LED nicht leuchten.

Erkennst du, welche Schleife wir benötigen?

Abbildung Schritt 3

Schritt 4:

Genau, wir verwenden die gleiche Schleife, die wir auch schon in Lektion zwei kennengelernt haben. Diese „if-else-Bedingung“ („wenn-sonst-Bedingung“)  fügen wir jetzt zu unserem Programm hinzu.

Dein Programm sollte jetzt so aussehen, wie in Abbildung Schritt 4 zu sehen.

Abbildung Schritt 4

Schritt 5:

Jetzt fehlt in unserem Programm noch der Bewegungsmelder.

Den Block für den Bewegungsmelder findest du im linken Menü unter „Sensoren„. 

In dem Untermenü von „Sensoren“ taucht jetzt der Block „Bewegungssensor HC-SR501“ auf, den wir bereits in unserer ROBOTERKONFIGURATION richtig eingestellt haben.

Abbildung Schritt 5

Schritt 6:

Wenn eine Bewegung erkannt wird…“

Erkennst du, an welche Stelle im Programm wir diesen Block anfügen müssen?

Genau: wir fügen den Block rechts neben „wenn“ in unserer „if-else-Bedingung“ ein.

Abbildung Schritt 6

Schritt 7:

Den ersten Teil unserer Aufgabenstellung haben wir somit erfüllt.

Jetzt müssen wir nur noch die rote LED zu unserem Programm ergänzen. 

Findest du den Block für die LED in OpenRoberta? Falls nicht, schaue dir noch einmal die Inhalte aus Lektion 2 an. 

Tipp: den Block findest du im Menü auf der linken Seite unter „Aktion„. 

Abbildung Schritt 7

Schritt 8:

Wenn eine Bewegung erkannt wird, schalte die rote LED ein.
Sonst…“

Wir sind schon fast am Ziel! Wir müssen jetzt nur noch sicherstellen, dass die rote LED nicht mehr leuchtet, wenn keine Bewegung erkannt wird.

Dies gelingt uns, indem wir einen weiteren Block für die rote LED hinzufügen und in diesem Block „aus“ auswählen. 

Gratulation! Wir machen große Fortschritte. 

Lade dein Programm jetzt auf den Funduino Cube und schaue, ob alles funktioniert.

Frage: Wie müssten wir vorgehen, wenn wir erreichen möchten, dass immer eine rote LED leuchtet, sobald eine Bewegung erkannt wird und eine grüne LED leuchtet, wenn keine Bewegung erkannt wird?

Abbildung Schritt 8

3.1.3. Programmcode in der Arduino Synthax

				
					
int bewegungsmelder = 8; // Bewegungsmelder an Pin D8
int led_rot = 12; // LED Rot an Pin D12


void setup()
{
    pinMode(bewegungsmelder, INPUT); // Der Bewegungsmelder ist ein Eingang
    pinMode(led_rot, OUTPUT); // Die LED Rot ist ein Ausgang
}

void loop()
{
    if ( digitalRead(bewegungsmelder) ) { // Wenn der Bewegungsmelder ein Eingangssignal erkennt...
      
        digitalWrite(led_rot, HIGH); // Schalte LED Rot an (SIGNAL HIGH = 1)
        
    } else { // Ansonsten...
      
        digitalWrite(led_rot, LOW); // Schalte LED Rot aus (Signal LOW = 0)
    }
}
				
			

Funduino - Dein Onlineshop für Mikroelektronik

  • Dauerhaft 10% Rabatt für Schüler, Studenten und Lehrkräfte
  • Mehr als 2.000 Artikel sofort verfügbar!
  • Über 8 Jahre Erfahrung mit Arduino, 3D-Druck und co.
NEU