Coding, Calliope & Smarthome
Programmierte Technik im Alltag
Kinder sind im Alltag ständig mit programmierten Geräten konfrontiert und gehen wie selbstverständlich damit um. Neben offensichtlich programmierten Hilfsmitteln, wie Handys, Tablets und Computern, gehören auch Fahrstühle, automatische Türen und andere Automaten dazu, die uns den Alltag mit Hilfe von programmierter Technik erleichtern.
In den wenigsten Fällen ist jedoch ein Verständnis dafür vorhanden, welche Prozesse und Programme die jeweiligen Funktionen im Hintergrund steuern und wie diese programmiert werden. Die Annahme, dass beispielsweise eine Lichtschranke fast magisch eine Tür öffnet, soll ersetzt werden, durch eine Vorstellung darüber, wie viele Einzelschritte/-befehle zum Ausführen dieser Funktion nötig sind. Von der Frage, wie nah der Fußgänger sein muss, damit das Programm startet bis hin zu der Frage, wie lange das Programm wartet, bis die Tür wieder schließt bestimmt das Programm jeden Teilschritt der Aktion.
Grundlagen des Programmierens
Die Funktionen, die von programmierter Technik ausgeführt werden, basieren auf Programmen (Codes), die dem Computer ermöglichen, ein spezifisches Problem zu lösen bzw. eine Aufgabe zu erfüllen. Diese Programme sind (Daten-) Vereinbarungen zwischen dem/der ProgrammiererIn und dem jeweiligen Gerät. Die geforderten Instruktionen werden in Form von Algorithmen, eindeutigen Handlungsvorschriften (Befehlsketten), in der entsprechenden Programmiersprache vermittelt. Den Prozess, diese Befehlsstrukturen festzulegen, bezeichnet man als Programmieren (Kodieren/Coding).
Algorithmus
Programmiersprachen
Eine Programmiersprache ist so eine formale Sprache zur Formulierung von Datenstrukturen und Algorithmen, also der Rechenvorschriften, die von einem Computer ausgeführt werden können. In der vorliegenden UE müssen Befehle (Befehlskarten) analog in Folgen zusammengefügt werden, um einem Roboter (Spielfigur oder MitschülerIn) die gewünschte Anweisung mitzuteilen, die ihn durch das Labyrinth bewegt. Diese Folgen heißen Programme.
Die Programmiersprache, mit der die Kinder hier arbeiten, besteht zunächst nur aus drei einfachen Befehlen, die von der Lehrperson vorgegeben sind („Gehe vorwärts“, „Drehe rechts“ und „Drehe links“). Diese präzisen Anweisungen ermöglichen es, den Roboter an jeden Punkt der verschiedenen Labyrinthe zu navigieren. Eine Kombination dieser Befehle ist das Programm, mit dem der/die ProgrammiererIn seinen/ihren Roboter programmiert, um das Ziel zu erreichen, nämlich den Schatz einzusammeln. Dafür müssen die SuS den Weg, den der Roboter zurücklegen soll, in seine Einzelbewegungen zerlegen. Über diese Modellierung werden Kleinschrittigkeit und Komplexität dieser zunächst „einfachen“ Abläufe sichtbar und vermitteln so einen Eindruck davon, wie präzise ProgrammiererInnen vorgehen. So besteht beispielsweise das einfache Ziel, links abzubiegen schon aus den zwei Einzelbefehlen „Drehe links“ und „Gehe vorwärts“.
Schleifen:
Im Laufe der Reihe können sogenannte Schleifen (auch „Wiederholung“ oder englisch loop) helfen, das Programm zu verkürzen, indem wiederholende Befehle in einer Wiederholungsschleife zusammengefasst werden. Bei der Progammierung des Calliope mini im Open-Roberta-Lap kann zwischen Endlos-Schleifen, Schleifen mit einer festgelegeten Wiederholungszahl und Schleifen mit einer Bedingung (etwas vorher festgelegtes muss eintreten, damit Schleife unterbrochen wird) unterschieden werden.
Funktionen:
Über Funktionen können auch eigene Befehle von den Kindern erfunden werden, indem eine Kombination verschiedener Befehle als neuer Befehl definiert wird. Die Programmiersprache wird somit "erweitert". Sobald sich die Programmierer/Kinder auf eine Definition geeinigt haben, kann dieser neue Befehl nun von allen, die mit dieser Programmiersprache arbeiten, genutzt werden.
Die Abbildungen zeigen Lösungen für das Beispiel: „Drehe um“ = fkt. {„Drehe rechts“, „Drehe rechts“}.
Bugs:
Eine wichtige Aufgabe eines Programmierers (hier der Kinder) ist es darüber hinaus, Programmfehler oder Softwarefehler, sogenannte Bugs (englisch für Käfer) zu finden und zu reparieren. Ein solches Fehlverhalten von Computerprogrammen tritt bspw. auf, wenn der/die ProgrammiererIn eine bestimmte Festlegung nicht oder falsch umgesetzt hat. Die Kinder erkennen innerhalb dieser Reihe einen Bug spätestens beim Ausprobieren daran, dass der Roboter in eine falsche Richtung läuft und/oder sich in einer Ecke des Feldes festfährt. Das Programm muss dementsprechend umgeschrieben werden.
Calliope mini
Bei dem Calliope mini handelt es sich um einen programmierbaren Minicomputer. In Verbindung mit einer grafisches Programmieroberfläche (in der vorliegenden Unterrichtsreihe Open Roberta NEPO) macht er das Programmieren auf vielfältige Weise möglich. NEPO ist ein webbasierter Programmier-Editor des Open Roberta Labs (https://lab.open-roberta.org oder www.calliope.cc/editor).
Mit dem Calliope mini steht den Schülerinnen und Schüler ein Gerät zu Verfügung, welches ab spätestens dem 3. Schuljahr einerseits mit einfachsten Befehlen oder Sequenzen programmierbar ist, z.B. “LED leuchtet rot”; “eine Dauerlaufschrift läuft”, “ein Blinklicht leuchtet rot-gelb” und andererseits Programme bewältigt, welche sich auf dem Niveau mittlerer und oberer Klassen weiterführender Schulen befindet. Die optische, komplexe technische Anmutung des Gerätes macht auf den ersten Blick deutlich, dass in dem kleinen Gerät“ mehr stecken muss” als in üblichen Programmiertools für Grundschülerinnen, die oftmals von einem kindspezifischen Design geprägt sind.
Komponenten
Der Calliope mini ist ca. 7 x 8 cm Zentimeter groß und hat eine sternförmige Form. In der seiner Mitte befindet sich ein viereckiges Display aus 25 LEDs. Jede der LEDs kann einzeln angeschaltet werden, um so Buchstaben, Zeichen und Bilder zu erzeugen. Daneben besitzt er als weitere Aktoren eine RGB-LED und einen Lautsprecher. Die RGB-LED kann in unterschiedlichsten Farben leuchten. Der Lautsprecher kann verschiedene Töne abspielen, wodurch man z.B. kleine Melodien komponieren kann.
Neben den Aktoren hat der Calliope mini mehrere Sensoren. Mit diesen kann man dem Calliope mini ein Befehlssignal geben. Dies kann durch Drücken der Tasten A und B geschehen oder weitere Sensoren: Dem Temperatursensor (Veränderungen der Temperatur), dem Lichtsensor (Veränderungen der Helligkeit), dem Lagesensor (Kippen, Drehen, Schütteln, Kompass). An den sechs Ecken des Calliope mini befinden sich sechs Messing-Kreise. Diese sind sogenannten PINs (-, +, 0, 1,2 und 3). Sie können sowohl als Berührungssensor als auch als Kontakt für externe LEDs genutzt werden.
Der Calliope mini kann mit externen Sensoren erweitert werden, z.B. einen Ultraschallsensor, kann man an die weißen Groove-Anschlüsse links und rechts auf der Platine anschließen. Motoren lassen sich mit einem kleinen Metallstift an die Minibuchsen anschließen. Auch leicht zu montierende Mini-Roboter lassen sich mit dem Calliope mini kombinieren (z.B. Calli:bot oder Calliope Motion Kit)
Um den Calliope mini auch unterwegs, unabhängig vom Computer, in Betrieb nehmen zu können, kann man ein Batteriepack/ Akku anschließen. Ansonsten verbindet man den Calliope mini zur Stromversorgung mit seinem Computer über das beiliegende Kabel am Micro-USB-Anschluss. Dieses dient auch zum Übertragen der auf dem Computer geschrieben Programme auf den Calliope mini. Alternativ kann man seine auf einem Tablet entwickelten Programme auch per Bluetooth auf den Calliope mini übertragen.
Programmiert wird der Calliope mini über zwei verschiedene Editoren, die man im Browser erreichen kann oder mittels einer App auf dem iPad: Open Roberta NEPO und Make Code.
Die Programmierung erfolgt zunächst auf dem Bildschirm. Dazu werden per Drag-and-drop einzelne Code-Blöcke aus verschiedenen Kategorien zusammengeschoben werden. In einer Simulation kann der Code dann ausprobiert werden und anschließend kann er auf den Calliope mini übertragen werden.
SMART HOME
SMART HOME ist ein Oberbegriff für technische Verfahren und Systeme, mittels derer man elektronische Geräte und Techniken mobil steuern kann. Damit sind Überwachungs-, Steuer-, Regel- und Optimierungseinrichtungen in privat genutzten Wohnhäusern bzw. Wohnungen gemeint. Das moderne Haus ist heute oftmals voll digitalisiert und kann von überall gesteuert werden bzw. vorab programmiert werden. Insbesondere bezieht sich der Begriff auf die Steuerung direkt mit dem Haus verbundener Einrichtungen wie einer Alarmanlage, der Beleuchtung, der Rollladen, der Heizung und ähnlicher Komponenten.
In Smart Homes (“intelligenten Häusern”) sind speziell dafür ausgerüstete Geräte über einen Computer vernetzt. Per Internet sind sie auch von unterwegs durch die Bewohner zu steuern. Sie dienen dazu, den Komfort für die Bewohner zu steigern und ihnen das Leben zu vereinfachen. So werden von unterwegs durch eine spezielle Smart-Home-App u.a. die Beleuchtung und die Heizung gesteuert. Zudem wird die Sicherheit des Hauses erhöht. Vielfach wird das Haus auch durch unterschiedliche Funktionen überwacht. Es erfolgt also eine Automatisierung von alltäglichen Handlungen. dienen die digitalen Lösungen in einem SMART HOME dazu, Energie einzusparen.
Das Ziel ist es also durch SMART HOME-Lösungen...
1) den eigenen Wohnkomfort zu steigern,
2) die Sicherheit durch intelligente Überwachung zu erhöhen und
3) den Energieverbrauch zu senken.
Beispiele für typische Elemente eines Smart Homes sind:
- Eine automatische Rollladen-Steuerung je nach Sonneneinfall
- Effiziente Steuerung der Heizungsanlage
- Überprüfung, ob die Fenster geschlossen oder geöffnet sind
- Alarmanlage als Einbruchschutz
- Automatisches Öffnen von Türen
- Bedienung der Jalousie
- Einschalten oder Dimmen von Lampen