Ein modernes Gewächshaus hat verschiedene Sensor und Aktoren. Gerade mit Hilfe von digitaler Technik, lassen sich damit die Wachstumsprozesse der Pflanzen optimal regulieren. Das Gewächshaus wird so zu einem smarten Gewächshaus, welches automatisiert alle möglichen Dinge regeln kann.
- Überlegt mit euren Tischnachbarn, welche relevanten Informationen die Sensoren in und am Gewächshaus messen können sollten.
- Überlegt mit eurem Tischnachbarn, welche Dinge das Gewächshaus aktiv steuern können müsste und wie diese von den Ergebnissen aus Aufgabe 1 zusammenhängen könnten.
Für das Pflanzenwachstum sind für uns zunächst die folgenden Informationen relevant, wofür wir Sensoren benötigen, welche diese Werte messen können:
- Intensität des Lichts
- Feuchtigkeit im Boden
- Feuchtigkeit in der Luft
- CO2-Gehalt der Luft
- Temperatur des Bodens
- Temperatur der Luft
Damit unser Gewächshaus auf verschiedene Messwerte reagieren kann, benötigen wir für die folgenden Aspekte Aktoren, welche Dinge ausführen können:
- Lichtzufuhr regeln
- Pflanzen wässern
- Fenster öffnen/schließen
- Heizung steuern
- Luftfeuchtigkeit regulieren
- Informationen auf einem Display anzeigen
Um unsere Anforderungen umzusetzen, nutzen wir einen Mikrocontroller, also ein sehr kleiner Computer, den Calliope mini. Er besteht aus einer einzigen kleinen Platine, auf der sich alle Komponenten des Mini-Computers inkl. aller Sensoren und Aktoren befinden, welche programmiert werden können. Hier eine Übersicht über den Calliope:
- Identifiziert Bauteile auf dem Calliope mini, mit denen wir unser Gewächshausprojekt realisieren können.
Im folgenden Unterrichtsverlauf werden wir nach und nach die folgenden Sensoren und Aktoren für die jeweilige Funktionalität unseres Gewächshauses nutzen.
| Funktion | Sensor | Aktor |
|---|---|---|
| Anzeigedisplay für verschiedene Informationen | Funkmodul | 5×5 LED-Display, A-B-Buttons, Funkmodul |
| Lichtzufuhr regeln | Helligkeitssensor | Servomotor, 5×5 LED-Display, A-B-Buttons |
| Heizung steuern | Temperatursensor | RGB LED und Servomotor, 5×5 LED-Display |
| Fenster öffnen/schließen | CO2-Sensor, Temperatursensor | Servomotor, 5×5 LED-Display |
| Bewässerung | Feuchtigkeitssensor | Servomotor, 5×5 LED-Display |
| Luftfeuchtigkeit regulieren | CO2-Sensor | RGB LED und Servomotor, 5×5 LED-Display |
Nun wird es aber erst einmal darum gehen, wie man mit dem Calliope mini arbeitet.
Beim Programmieren denkt jeder sofort an wilde Codezeilen, welche bloß für Eingeweihte lesbar sind. Aber das ist nicht richtig. Programmierung ist erst einmal nur die Tätigkeit, eine Handlungsabfolge festzulegen, welche von einem Computer ausgeführt werden kann. Dieses kann auf ganz verschiedene Arten erfolgen.
So kann man entweder diese Anweisungen per Text eingeben (textuelle Programmierung) oder es gibt bereits vorgefertigte Bausteine, welche diese Anweisungen vorgeben. Mit einer dieser grafischen Programmierumgebungen werden wir starten und das Programmieren lernen.
Aber zunächst müssen wir einige Vorbereitungen treffen:
- Lade dir den Uploader hier herunter und starte ihn. Merke die, wo du diesen gespeichert hast. Du wirst ihn jedes Mal wieder starten müssen.
- Schließe den Calliope mini mit dem USB-Kabel am Computer an.
- Öffne die Website von OpenRoberta Lab.
- Klicke dort beim Calliope mini (blauer Kasten) auf "loslegen" (grüner Kasten) und nun kannst du programmieren.
- Nun solltest du oben links auf die 2 klicken (Stern-Symbol, lila Kasten), um so mehr Blöcke zu erhalten. Wir werden immer in diesem erweiterten Modus programmieren.
- Wenn du das Programm testen möchtest, dann klicke auf auf das kleine Pfeil-Symbol unten rechts oder klicke in der rechten Navigation auf den Button mit der Aufschrift "SIM", damit kannst du einen Calliope und das Programm simluieren.
Hinweis: Unter dem Abschnitt Hilfe, findest du Unterstützung für die einzelnen Teilaufgaben.
Denke daran, dass du von jedem Ergebnis ein Foto machst.
- (LED-Display) Wir versuchen nun, die Funktionsweise des 5x5 LED-Display zu verstehen.
Erstelle ein Programm für den Calliope mini in OpenRoberta Lab, dass deinen Namen auf der LED-Matrix anzeigt. - Erstelle weitere Programme, die aufg dem LED-Display etwas anzeigt, nämlich...
- Erstelle ein Programm für den Calliope mini, das einen glücklichen Smiley auf der LED-Matrix erscheinen lässt.
- Erstelle ein Programm für den Calliope mini, das zuerst einen glücklichen Smiley, dann einen unglücklichen Smiley auf der LED-Matrix erscheinen lässt.
- Beschreibe deine Beobachtungen zu Aufgabenteil (ii), sollte es nicht so laufen, wie gedacht. Überlege, wie Abhilfe geschaffen werden kann.
- Erstelle ein Programm, dass "Licht an" auf dem Display anzeigt, wenn der A-Button gedrückt wird und "Licht aus", wenn der B-Button gedrückt wird.
- Der Prozessor des Calliope mini enthält auch ein Funk-Modul für geringe Reichweiten. Dadurch kannst du dafür sorgen, dass mehrere Calliope mini miteinander kommunizieren. Dies kann z. B. nützlich sein, wenn verschiedene Steuerungskomponenten unseres Gewächshauses Informationen austauschen müssen.
Die notwendigen Blöcke findest du im Bereich "Nachrichten", wenn du die zusätzlichen Blöcke aktiviert hast.
Achtung, um miteinander kommunizieren zu können, müssen die beteiligten Calliopes im gleichen Funkkanal sein. Den Kanal muss man zu Beginn festlegen. Alle notwendigen Optionen findest du im Bereich "Nachrichten", wenn du die erweiterten Blöcke aktiviert hast.
- Jetzt musst du dir einen Partner oder eine Partnerin suchen. Programmiert eure Calliope mini so, dass ihr von dem einen Calliope auf den anderen eine bestimmte Textnachricht schicken könnt.
- Testet mit eurem Programm aus Aufgabe 1 wie weit das Signal reicht. Programmiert dann einen dritten Calliope, der ein empfangenes Signal (evtl. auf einem anderen Kanal) weiterleitet, so dass sich die Reichweite verdoppelt.

Du brauchst nun auch neue Blöcke aus dem Bereich Kontrolle –> Entscheidungen.
Außerdem brauchst du noch etwas aus dem Bereich Sensoren.
Was man macht, hängt häufig von bestimmten Bedingungen ab. Einen Regenschirm wird man dann einpacken, wenn Regen gemeldet ist und das Mathebuch kommt nur dann in die Schultasche, wenn man am Tag eine Mathestunde hat. Auch in der Programmierung hängt der weitere Programmverlauf oft von einer Entscheidungsfrage ab.
Da der Computer aber allein nicht in der Lage ist, „spontan“ auf eine Situation zu reagieren, kann eine bedingte Anweisung oder Entscheidungen genutzt werden. Durch diese kann schon während der Programmierung festgelegt werden, was beim Eintreten eines bestimmten Falles getan werden soll. Hierzu werden die folgenden Blöcke genutzt:
Du findest die Blöcke im Reiter „Kontrolle“ und hast sie bereits in Aufgabe 3 im vorherigen Abschnitt genutzt. Die Blöcke, die in den „wenn“-Teil eingehängt werden, werden nur dann ausgeführt, wenn die Bedingung erfüllt ist. Sofern ein „sonst“-Teil vorhanden ist, wird dieser nur dann ausgeführt, sofern die Bedingung nicht erfüllt ist. Dieser wenn...mache...sonst...-Block wird auch Verzweigung genannt. Als Bedingung können alle Blöcke verwendet werden, die eine hellblaue Nase haben. Hinweis: Eine Bedingung ist immer eine Ja-/Nein-Frage! Sie ist also entweder wahr oder falsch, komplexere Situationen müssen auf eine oder mehrere Ja-/Nein-Fragen heruntergebrochen werden.
Um mehrere Bedingungen zu prüfen, können auch mehrere bedingte Anweisungen geschachtelt werden.
Manchmal benötigt man auch logische Ausdrücke, wie z. B. den Block
Mit diesem Block kann man zwei gleichzeitig geltende Bedingungen verknüpfen. Es soll z. b. im Temperaturbereich von 0° bis 10° die LED grün leuchten. Dann stellt man zunächst die Bedingung nacheinander auf:
- Der aktuelle Temperaturwert soll unter 10° sein (den blauen Zahlenblock findest du unter dem Bereich "Mathematik":
- Der aktuelle Temperaturwert soll größer oder gleich 0° sein:
- Beide Bedingungen sollen gleichzeitig gelten:
- In die bedingte Anweisung einfügen:
Wenn noch weitere Aktionen ausgeführt werden sollen, z. B. von 10° bis unter 20°, kann man auch mit Entscheidungen oder Schachtelungen, wie in der untersten Abbildung auf der vorherigen Abschnitt arbeiten.
- Auf der LED-Matrix soll, je nach Wert des Helligkeitssensors, eine bestimmte Ausgabe erzeugt werden. Implementiere für jede Teilaufgabe ein entsprechendes Programm. Für die Lösung der Teilaufgaben kannst du die folgenden Grundprogramme nutzen:
- Wenn der Wert des Helligkeitssensors größer als 50% ist, soll die RGB-LED gelb leuchten.
- Wenn der Wert des Helligkeitssensors größer als 50% ist, soll die RGB-LED gelb, ansonsten blau leuchten.
- Wenn der Wert des Helligkeitssensors größer als 50% ist, soll die RGB-LED gelb leuchten. Ist der Helligkeitswert kleiner oder gleich 50% und gleichzeitig größer als 20%, soll die RGB-LED rot leuchten. Ansonsten soll sie blau leuchten.
- Unten sind verschiedene Lösungsvorschläge zu Aufgabenteil 1 c) abgebildet. Entscheide begründet, welche der Varianten korrekt sind und erläutere was bei den nicht korrekt arbeitenden Algorithmen zu Fehlern führt.
-
Wenn der Pin 0 (die Pins sind die goldenen Kreise außen am Calliope und sie reagieren unter anderem
auf Berührung) berührt wird, soll die RGB-LED kurz leuchten, bei Pin 1 grün, bei Pin 2 blau, bei
Pin 3 gelb und sonst weiß. Drei Lösungsvorschläge sind im folgenden dargestellt.
Analysiere die Programme hinsichtlich der Funktionalität und entscheide begründet, welches die effizienteste Lösung ist.
Hinweis: Du kannst auf die Bilder klicken, um das Programm zu öffnen und zu testen.
- Mit zwei Calliopes soll ein Türschloss simuliert werden, welches von einem zweiten Gerät über Bluetooth geöffnet werden kann. Einer der Calliopes ist das Schloss und der andere das Eingabegerät. Es können nur einzelne Ziffern eingegeben werden.
- Die zum Öffnen des Schlosses zulässige PIN (Personal Identification Number) darf nur 123 sein.
- Die zum Öffnen des Schlosses zulässige PINs (Personal Identification Number) dürfen nur 123 oder 863 sein. Setze mit einer zweiten Person diese Funktionalität um.
Häufig soll eine bestimmte Sequenz des Quellcodes nicht nur einmal, sondern mehrfach ausgeführt werden. Dazu werden Schleifen genutzt. In Open Roberta werden wir uns mit drei verschiedenen Schleifen beschäftigen, die in zwei Kategorien - Zählschleifen und Bedingungsschleifen - aufgeteilt werden. Du findest die Schleifenblöcke ebenfalls im Reiter „Kontrolle“.
Eine bedingte Schleife hängt, ähnlich wie eine bedingte Anweisung, von einer Bedingung ab. Dabei kann gewählt werden, ob die Schleife die eingeschlossenen Blöcke wiederholen soll, bis eine bestimmte Bedingung wahr ist oder solange sie wahr ist. Eine Variante der Bedingungsschleife ist die Endlosschleife. Diese wiederholt die eingeschlossenen Blöcke bis der Calliope Mini keinen Strom mehr hat, wird also nie abgebrochen. Du hast diese Schleife wahrscheinlich in Aufgabe 2d) der Einstiegsaufgaben genutzt. Wenn du weißt, wie oft der Quelltext in der Schleife wiederholt werden soll, kann anstatt einer Bedingungsschleife auch eine Zählschleife genutzt werden. Diese wiederholt die eingeschlossenen Blöcke eine vordefinierte Anzahl mal, im Beispiel also 10-mal.
- Solange die Taste A gedrückt wird, soll die RGB-LED blau leuchten. Implementiere je ein Programm, welches entsprechend funktioniert, mit beiden bedingten Wiederholungen. Den "nicht"-Block kann man eventuell bei einer der Wiederholungsarten nutzen.
- Wenn das Programm startet, soll fünfmal das folgende passieren: Die RGB-LED soll kurz rot und anschließend blau leuchten. Am Ende des Programms soll die RGB-LED ausgeschaltet werden. Implementiere je ein Programm, welches entsprechend funktioniert, mit beiden Zählschleifen.
- (Zusatz) Das Programm mit der rechten Zählschleife soll mit der Schrittweite 2 arbeiten.
- Beim Joggen im Dunkeln ist es sinnvoll, sich mit einer Lampe kenntlich zu machen. Die RGB-LED
soll nur leuchten, wenn man joggt.
Der Blockgib den aktuellen Wert der Beschleunigung in Milli g, also Tausendstel der Erdbeschleunigung, zurück.
Im Hinteren Dropdown-Menü kann man zwischen der gemessenen Beschleunigung in x-Richtung (links/rechts), y-Richtung (vorne/hinten) und z-Richtung (oben/unten) umschalten. Der Sensor kann damit die Beschleunigung in allen drei Dimensionen messen. - Lass dir den aktuellen Wert der Beschleunigung nach oben/unten auf dem LED-Display anzeigen,
wenn der Calliope ruhig auf dem Tisch liegt.
Interpretiere den angezeigten Wert.
Hinweis: Vergleiche den angezeigten Wert mit der Erdbeschleunigung von 9,81 m/s². - Implementiere mithilfe des Beschleunigungssensors eine solche Jogging-Leuchte. Die Lampe
darf eine Zeit lang angeschaltet bleiben, da man ja beim Joggen gelegentlich auch eine kleine Pause
einlegt.
Du sollst bei deinem Programm auf jeden Fall eine bedingte Wiederholung (wiederhole solange) nutzen.
Im Fdolgenden sind einige Lernstationen beschrieben, wo mithilfe verschiedener Sensoren und Aktoren Probleme gelöst werden müssen. Suche dir mindestens 2 Stationen aus, die du bearbeiten möchtest. Dokumentieren hier auch deinen Fortschritt.
Nun schauen kümmern wir uns um die Temperatur im Gewächshaus. Zur Erinnerung: Der Temperatursensor ist in den Prozessor eingebaut (siehe im Abschnitt zum Calliope mini nach).
- Überlege dir mit der Person an deinem Tisch, was ihr tun könnte, um die Temperatur am Sensor zu erhöhen und auch wieder zu senken.
- Jetzt wollen wir die normale Umgebungstemperatur überprüfen. Entwickle und implementiere zu Testzwecken ein Programm für den Calliope, welches dauerhaft den aktuellen Temperaturwert auf dem LED-Display anzeigt.
- Entwickle und implementiere ein Programm für den Calliope, das die RGB-LED in Rot leuchten lässt, wenn die Temperatur 2 Grad über der in Aufgabe 2 gemessenen und von dir nun festgelegten Raumtemperatur ist und sonst blau leuchtet.
- Jetzt erweitern wir die Funktionalität des Programms aus Aufgabenteil c). Es gibt verschiedene
optimale Boden- und Lufttemperaturen für verschiedene Pflanzen.
Der Calliope soll nun unterschiedliche Temperaturbereiche durch jeweils eine Farbe anzeigen. Die
Bereiche sind, in Abhängigkeit von der bereits in Aufgabenteil c) genutzte Raumtemperatur, kurz
mit RT bezeichnet:
Entwickle und implementiere ein Programm für den Calliope, dass bei den gemessenen Temperaturen die in der Tabelle angezeigten Farben über die RGB-LED anzeigt.Temperatur Farbe Temperatur > RT+3 rot RT+2 < Temperatur &leq RT+3 orange RT+1 < Temperatur &leq RT+2 gelb RT-1 < Temperatur &leq RT+1 grün Temperatur &leq RT-1 blau
- Erst einmal müssen wir verstehen, wie der Helligkeitssensor funktioniert. Entwickle und implementiere ein Programm für den Calliope, welches dir jederzeit den aktuellen Wert anzeigt, den der Helligkeitssensor misst. Probiere aus, wie sich der Wert bei verschiedener Helligkeit verändert.
- Eine Lampe vor dem Gewächshaus soll automatisch angehen, wenn es draußen dunkel wird und ausgehen, wenn es hell ist. Entwickle und implementiere ein Programm für den Calliope, so dass die RGB-LED angeht, sobald es dunkel wird.
- Du hast vielleicht schon bemerkt, dass es verschiedene Möglichkeiten gibt, die Farbe auszuwählen:
Mithilfe der rechten Methode können viel mehr Farben ausgewählt werden als links. Um zu verstehen, wie man durch die Angabe von den drei Zahlen eine Farbe auswählt, müssen wir uns die Farb-LED etwas genauer anschauen. Mögliche Werte für den Rot-, Grün- und Blauanteil der Farbe sind im Bereich von 0 bis 255. Schaue dir hier die Erklärung an und probiere auf der Seite die Regler für die Farben Rot, Grün und Blau ein wenig aus. Probiere nun auch die entsprechenden Werte mit dem Block oben rechts auf deinem Calliope aus. (Der Wert für weiß ist für uns egal und bleibt immer auf 255.) (Zusatz: Kannst du auch verschiedene Grautöne erzeugen?)

- Nun soll die automatische Lampensteuerung verbessert werden. Die Außenlampe soll nun, je nach gemessener Lichtintensität, in verschiedenen Farben leuchten. Entwickle und implementiere ein Programm für den Calliope, welches die gewünschte Funktionalität umsetzt.
In dieser Aufgabe lernst du die grundlegende Nutzung des Luftfeuchtigkeitssensors kennen. Damit Pflanzen ein gutes Wachstum haben, ist es unerlässlich, dass der Boden kontinuierlich feuchtgehalten wird. Dafür verwenden wir einen Feuchtigkeitsmesser, welcher am Calliope angeschlossen werden kann.

- Nimm dir einen Feuchtigkeitsmesser und einen Calliope und verbinden die beiden Bauteile wie rechts auf der Grafik miteinander über den Grove-Stecker. Um den Feuchtigkeitsmesser verwenden zu können, muss dieser in Open Roberta eingerichtet werden, wie das geht, erfährst du hier.
- Lasse dir zunächst die gemessenen Werte des Feuchtigkeitssensors auf dem Display ausgeben und bestimme für dich, wann der Boden der Pflanze nicht mehr ausreichend hydriert ist. Hinweis: Nimm dir einen Topf mit Erde und bewässere verschiedene Bereiche des Topfes unterschiedlich stark.
- Entwickle nun ein Programm, welches den Boden der Pflanzen misst und je nach Feuchtigkeitswert des Bodens die LED in verschiedenen Farben leuchten lässt.
Um mit Hilfe von steuerbaren Sonnenspiegeln auch bei schlechten Einfallswinkeln Licht in das Gewächshaus zu lenken, kann man auch den Calliope nutzen. Der Kompass des Calliope ist integriert in dem Baustein, der mit “Lagesensor” beschriftet ist. Wenn du ihn zum ersten Mal verwendest, erscheint evtl. zunächst der Text “Draw a circle” (“Zeichne einen Kreis”). Dann musst du den Kompass zunächst einmal kalibrieren, indem du den Calliope so kippst und drehst, bis alle Punkte auf dem LED-Display leuchten:
- Werde dir über die Art der Werte des Kompasses klar, indem du dir kontinuierlich seinen Wert anzeigen lässt. Hier kann es evtl. sinnvoll sein, das Batteriepaket zu verwenden, damit du an eine Stelle in den Raum gehst, an der eine möglichst geringe Beeinflussung des Erdmagnetfeldes vorliegt. Hinweis: Norden sollte dort sein, wo der USB-Anschluss des Calliope mini ist.
- Erstelle für eine Anzeige in der LED-Matrix Pfeilbilder für 8 verschiedene Pfeilrichtungen.
- Ein Kompass zeigt (in der Regel) immer Richtung Norden. Entwickle und implementiere ein Programm für den Calliope, so dass auch dein Calliope immer nach Norden zeigt – egal, wie man ihn dreht.








