Input & Output
Ein Programm arbeitet in der Regel immer mit verschiedenen Daten. Dabei unterscheidet man zwischen dem sogenannten Input und dem Output.
Als Input werden immer Informationen bezeichnet, die dem Programm bzw. Gerät, in diesem Fall unserem Joy-Car, zugeführt werden. Dies kann beispielsweise die Erkennung eines Hindernisses oder ein simpler Knopfdruck sein. Die Information (Eingabe - Input) wird dem Gerät zugeführt und kann entsprechend vom Programm verarbeitet werden.
Als Output bezeichnet man Informationen, die vom Gerät ausgegeben werden. Die Information (Ausgabe - Output) ist quasi eine Reaktion des Gerätes und kann beispielsweise das aktivieren eines Scheinwerfers oder das simple Ausgeben einer Temperatur-Information sein.
Im folgenden Beispiel warten wir auf die Eingabe (Input) durch den Knopf A. Sobald hier eine Eingabe erkannt wurde, geben wir die Temperatur unseres micro:bit aus (Output).
Als Ausgabe muss natürlich nicht zwingend eine Temperatur verwendet werden. Ausgaben können auch Lichtsignale, Berechnungsinformationen oder sogar, wie im nächsten Beispiel, Kompassdaten sein. Hier erwarten wir erneut den Tastendruck auf Knopf A um die Kompassausrichtung auszugeben.
Im "beim Start"-Block wird die Kalibrierung des Kompasses gestartet. Ist der Kompass nicht kalibriert und es wird auf die Kompassausrichtung zugegriffen, wird die Kalibrierung automatisch gestartet. Um den Kompass zu kalibrieren kippe den micro:bit in alle Richtungen bis alle LEDs auf dem micro:bit an sind. Wenn der Knopf A gedrückt wird zeigt der micro:bit dann die Ausrichtung in Grad an. Vorne ist dort wo das micro-USB-Kabel angeschlossen wird. Die Himmelsrichtungen in Grad sind wie folgt:
Himmelsrichtung | Zahl in Grad (°) |
Nord | 0 ° |
Osten | 90 ° |
Süden | 180 ° |
Westen | 270 ° |
Die Ausgabe von Daten, wie in diesem Fall die Kompassinformationen, müssen nicht zwangsläufig auf der kleinen LED-Matrix des Micro:bits ausgegeben werden. Oftmals ist es, für eine schnelle Einsicht in die Daten, über die Konsolenausgabe der Programmierumgebung viel bequemer sich die Datensätze anzeigen zu lassen. Mit dem folgenden Beispiel geben wir unsere Kompassausrichtung auf diesem Wege direkt aus.
Info
Daten die über den seriellen Port ausgegeben werden kannst du dir im "seriellen Monitor" anschauen. Klicke dazu auf "Konsole anzeigen Gerät". Der Button erscheint erst, wenn Daten über die serielle Schnittstelle ausgegeben werden (dazu muss der micro:bit über ein USB-Kabel mit dem Computer verbunden sein).
Eine direkte Ausgabe über "serielle Zahl ausgeben(...)" kann jedoch schnell unübersichtlich werden, da die Datensätze hier einfach hintereinander angefügt werden. Übersichtlicher gestaltet sich hier, wie im nächsten Beispiel, die Verwendung von "serielle Zeile ausgeben(...)". Hier wird für jede Ausgabe eine eigene, neue Zeile angefügt. Zusätzlich verlangsamen wir die Ausgabe noch, indem wir eine "pausiere (ms) ..."-Anweisung hinzufügen.
Die Informationen können, bevor eine Ausgabe erfolgt, auch zunächst erst verarbeitet werden. Im nächsten Beispiel sammeln wir zunächst in einer For-Schleife insgesamt 10-mal die Kompassausrichtung und addieren diesen Wert auf unsere median-Variable. Danach bilden wir den gesamten Durchschnitt, indem wir unsere median-Variable durch 10 teilen. Erst danach, also nachdem wir unsere Verarbeitung abgeschlossen haben, erfolgt unsere Ausgabe.
Ihr fragt euch bestimmt welchen Vorteil der Durchschnitt von 10 Messwerten gegenüber dem einen direkt gemessenen Wert hat. Wie ihr bemerkt habt, verändert sich die Ausrichtung eures micro:bit auch wenn er still auf dem Tisch liegt. Diese Abweichungen werden durch den Durchschnitt mehrerer Messwerte vermindert. Dies ist eine Vorgehensweise um Daten zu "glätten".
Die Größe und Komplexität der Verarbeitung spielt dabei keine Rolle. Während unsere Durchschnittsberechnung aus dem vorherigen Beispiel noch sehr klein war, erweitern wir im nächsten Beispiel unsere Berechnung, indem wir den Durchschnitt aus insgesamt 50 Messungen berechnen. Dazu erhöhen wir die Durchläufe unserer For-Schleife auf 50 und ergänzen auch unsere Division für die Durchschnittsberechnung.