Eintauchen (3.1.2)
Zum Begriff Physical Computing
Der Begriff «Physical Computing» beschreibt Informatiksysteme, die Impulse aus der Umgebung mithilfe von Sensoren erfassen, als Daten verarbeiten und über Aktoren auf die Umgebung einwirken können (vgl. Romeike u.a. / Schulz 2019). Im Schulfeld kommen verschiedene Physical Computing Devices zum Einsatz: programmierbares Spielzeug (Beebots), Bricks (Lego-Mindstorms), I/O-Devices (MakeyMakey), Microcontroller (Micro:bit, Calliope oder Arduino), Minicomputer (Raspberry Pi).
Um zu gewährleisten, dass Lehrpersonen nicht nur fertige Anleitungen zu spannenden Projekten erhalten, beginnen wir mit den Aspekten, welche dem Physical Computing zu Grunde liegen. Wir beschränken uns auf die wichtigsten Grundkonzepte ohne den Anspruch zu haben, weitere tiefergehende Details zu verstehen.
Analoge und digitale Schaltkreise
Uns allen bekannt ist ein einfacher Stromkreislauf bestehend aus Batterie, LED und Schalter. Durch Betätigung des Schalters kann die LED ein- und ausgeschaltet werden (Abbildung 1a). Möchte man nun die LED dimmen, also etwas heller oder dunkler erscheinen lassen, so müsste man mit Widerständen arbeiten. Bei komplexeren analogen Schaltkreisen wie z.B. bei einem klassischen Radio, sind weitere analoge Bauteile wie Widerstände, Spulen oder Kondensatoren integriert.
Digitale Schaltkreise hingegen beinhalten digitale elektronische Bauteile wie Logikgatter, Mikrocontroller oder Datenspeicher. Der wichtigste Unterschied im Vergleich zu den analogen Schaltkreisen ist, dass die einzelnen Bauteile direkt (parallel) z.B. an einem Mikrocontroller über sogenannte Pins angeschlossen sind (Abbildung 1b). Die LED leuchtet nur dann, wenn der Mikrocontroller auch so programmiert wurde bzw. der Mikrocontroller eine Spannung am entsprechenden Pin erzeugt. Nur so fliesst Strom und die LED leuchtet.

Man kann sich nun fragen, ob es sinnvoll ist überhaupt einen Mikrocontroller für solche Zwecke einzusetzen. Möchte man aber beispielsweise auf Betätigung des Schalters eine blinkende LED haben, so erreicht man dieses Ziel mit Hilfe des Mikrocontrollers mit sehr wenig Aufwand.
Signale der physischen Welt und entsprechende Reaktionen
Das folgende Video zeigt, wie die physische Welt mit Hilfe von Sensoren in Signale umgewandelt (Eingabe), von einem Mikrocomputer berechnet (Verarbeitung) und eine entsprechende Reaktion veranlasst (Ausgabe) werden kann.
Sensoren
Sensoren übermitteln dem Mikrocontroller Informationen über die Aussenwelt, deshalb sind sie Inputs. Es werden zwei Arten von Signalen unterschieden: analoger Input und digitaler Input.
Analoger Input:
Sensoren „fühlen“ die physische Welt, indem sie physikalische Grössen wie z.B. die Lufttemperatur in elektrische Signale umwandeln, meistens in Form einer elektrischen Spannung in Volt (V). Ein analoges Signal hat keine festen Werte, sondern einen kontinuierlichen, stufenlosen Verlauf (blaue Kurve in Abbildung 2). Typische analoge Inputs sind Potentiometer, Temperatursensoren, Beschleunigungssensoren oder Mikrofone.

Digitaler Input:
Zu den digitalen Inputs zählen die Gruppe der analogen Sensoren, welche als Information nur zwei Zustände haben (z.B. 0V oder 5V). Solche Sensoren können direkt an den Mikrocontroller angeschlossen werden, sofern die Betriebsspannung mit derjenigen des Mikrocontrollers übereinstimmt (Calliope Mini hat 3.3V). Die beiden Zustände werden im Mikrocontroller als die Zahlen 0 und 1 repräsentiert. Ein typisches Beispiel ist ein Taster: Ist die Taste gedrückt, liegt eine Spannung von 5V an (Abbildung 3).
Neben den analogen Sensoren, gibt es auch digitale Sensoren. Diese sind bereits komplexer und auf einer Platine verbaut. Beispielsweise kann ein Ultraschall-Distanzsensor digitale Messdaten im Zeitverlauf liefern. Abbildung 3 zeigt beispielsweise ein Objekt, das sich einer Wand nähert. Die Zeitspanne, in der das Signal auf 5V geschaltet ist, bestimmt die gemessene Distanz.

Die Abbildung 4 zeigt verschiedene digitale Sensoren: (a) Ultraschall-Distanzsensor; (b) Luftqualitätssensor; (c) Sensor, der einfache Gesten erkennt; (d) Fingerabdrucksensor; (e) Barometer-Temperatur-Feuchtigkeitsmesser zugleich; (f) GPS-Modul.

Aktoren
Aktoren wandeln elektrische Signale des Mikrocontrollers in physikalische Grössen um. Sie werden also von Mikrocontrollern gesteuert, weshalb Aktoren auch immer Outputs sind. Beispiele von Aktoren sind Motoren, LED’s oder Lautsprecher. Auch hier unterscheidet man zwischen analogen und digitalen Outputs.
Analoger Output:
Einfache Elektromotoren beispielsweise drehen dann schneller, wenn am Pin des Mikrocontrollers eine höhere Spannung anliegt. Auch die Helligkeit einer LED lässt sich kontinuierlich dimmen, indem die Spannung verändert wird. Der Mikrocontroller kann aber nicht ein analoges Signal an seinem Pin erzeugen, da es ja nur die Möglichkeiten 0V oder 5V (beim Calliope Mini 3.3V) gibt. Mit Hilfe der „Pulsweitenmodulation“ wird dies dennoch möglich gemacht. Und zwar wird der Pin rasch von 5V auf 0V hin und her geschaltet, sodass eine Durchschnittsspannung am Pin erzeugt wird.
Digitaler Output:
Wie bei den digitalen Inputs, gibt es auch bei den digitalen Outputs zwei Gruppen. Ein einfacher digitaler Output kann eine LED oder einen Motor ein- und ausschalten. Die LED kann so aber nicht gedimmt werden und der Elektromotor läuft auf maximaler Drehzahl oder gar nicht.
Die zweite Gruppe von digitalen Outputs sendet ähnlich wie die weiter oben beschriebene „“Pulsweitenmodulation“ aktorspezifische Signale. Ein RC-Servomotor beispielsweise gleicht permanent seine Soll- und Ist-Position ab und korrigiert laufend den Fehler. Der Rotationswinkel des Servomotors wird durch die Dauer des 5V-Signals bestimmt (Abbildung 5).

Zu den elementarsten externen Aktoren zählen LED’s, RGB-LED’s, Motoren, Servo-Motoren und Buzzer, welche die Abbildung 6 zeigt:
Calliope Mini – ein Mikrocontroller für die Schule
Das Calliope Mini ist ein Mikrocontroller, welcher sich besonders für den Einsatz im Unterricht eignet. Folgend ein Video zu den Grundlagen des Calliope Mini:
Die Abbildung 7 stellt eine Übersicht der wichtigsten Elemente des Mikrocontrollers dar:

Im Grundsatz können die onboard-Elemente des Calliope Mini dem EVA-Prinzip (Eingabe-Verarbeitung-Ausgabe) zugeordnet werden. Die Verarbeitung der Daten erfolgt mit Hilfe des Prozessors.
Sensoren:
Tasten A und B, Reset-Knopf, Pins, Lagesensor (=Bewegungssensor bzw. Kompass), Mikrofon, Temperatursensor (ist auf dem Prozessor platziert, weshalb die Temperaturangaben oft zu hoch sind) und Lichtsensor (eigentlich kein eigenständiger Sensor, vielmehr werden die LED’s umfunktioniert).
Aktoren:
LED-Display, Rot-Grün-Blau-LED, Lautsprecher und eine Motor-Schnittstelle.
An das Calliope können weitere externe Sensoren und Aktoren angeschlossen werden. Idealerweise verwendet man diejenigen von Grove. Eine Auswahl der wichtigsten zehn externen Sensoren/Aktoren bietet die folgende Übersicht hier.
Programmierkonzepte
Anweisung:
Programmierumgebungen wie z.B. jene von Make Code enthalten bereits vordefinierte Anweisungen in einer Art Bibliothek. Eine Anweisung ist im Grunde ein Befehl, der eine Wirkung nach sich zieht. Beispielsweise können so Aktoren (wie z.B. in Abbildung 8 ersichtlich) und Sensoren angesteuert werden oder auch rein virtuell vorhanden sein.

Sequenz:
Eine Sequenz ist eine Abfolge von Anweisungen, die zusammengebaut werden können. Diese werden nacheinander durchgeführt, was in der Informatik als „sequentiell“ bezeichnet wird. Folgend ein Beispiel einer Sequenz, welche mit MakeCode erstellt worden sind:

Programmeinstieg und Endlosschleife:
Parameter:
Mit Hilfe von Parametern können nähere Informationen über ein Objekt innerhalb eines Programms geliefert werden. Diese Informationen können verschiedene Formen haben wie in Abbildung 10 ersichtlich ist:
a) Zahlenwert wie z.B. „0“; b) Wert einer Variable wie z.B. der selbstdefinierten Variable „Zähler“; c) Text wie z.B. „h!“; d) Ergebnis einer Rechnung wie z.B. „5×7“; e) Zustand wie z.B. „wahr“; f) Zufallszahl, z.B. zwischen 0 und 20

Schleife:
Bedingung:
Ereignis:
Läuft ein Programm gemäss vordefinierter Anweisungen und Sequenzen ab, so kann diese Sequenz durch ein Ereignis unterbrochen werden. Sobald die Sequenz innerhalb des Ereignisblocks ausgeführt wurde, hält sich das Calliope wieder an die ursprünglichen Anweisungen und Sequenzen. Mit einem Ereignis können also Programme interaktiv gestaltet werden. Die Abbildung 11 zeigt beispielsweise ein Programm, welches das Calliope abwechselnd die RGB-LED in der Farbe rot bzw. blau erscheinen lässt. Drückt man jedoch die Taste A, so erscheint die RGB-LED in grüner Farbe und zwar so lange, bis man die Taste A wieder loslässt.

Variable:
Funktion: